From a0050fedd3bb4800a135da2e7fa28a9f123238e2 Mon Sep 17 00:00:00 2001 From: Leonardo Galli Date: Wed, 22 Feb 2017 13:40:06 +0100 Subject: [PATCH] Fixed language parsing of movies with language in movie name. Fixes #793 --- .../ParserTests/LanguageParserFixture.cs | 10 ++++++++-- src/NzbDrone.Core.Test/ParserTests/ParserFixture.cs | 6 ++++++ src/NzbDrone.Core/Parser/Parser.cs | 2 +- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/NzbDrone.Core.Test/ParserTests/LanguageParserFixture.cs b/src/NzbDrone.Core.Test/ParserTests/LanguageParserFixture.cs index 4b430e171..769ac925a 100644 --- a/src/NzbDrone.Core.Test/ParserTests/LanguageParserFixture.cs +++ b/src/NzbDrone.Core.Test/ParserTests/LanguageParserFixture.cs @@ -46,10 +46,16 @@ namespace NzbDrone.Core.Test.ParserTests [TestCase("Castle.2009.S01E14.HDTV.XviD.HUNDUB-LOL", Language.Hungarian)] [TestCase("Castle.2009.S01E14.HDTV.XviD.ENG.HUN-LOL", Language.Hungarian)] [TestCase("Castle.2009.S01E14.HDTV.XviD.HUN-LOL", Language.Hungarian)] + [TestCase("The Danish Girl 2015", Language.English)] public void should_parse_language(string postTitle, Language language) { - var result = LanguageParser.ParseLanguage(postTitle); - result.Should().Be(language); + var result = Parser.Parser.ParseMovieTitle(postTitle); + if (result == null) + { + Parser.Parser.ParseTitle(postTitle).Language.Should().Be(language); + return; + } + result.Language.Should().Be(language); } [TestCase("2 Broke Girls - S01E01 - Pilot.en.sub", Language.English)] diff --git a/src/NzbDrone.Core.Test/ParserTests/ParserFixture.cs b/src/NzbDrone.Core.Test/ParserTests/ParserFixture.cs index 41a14325d..fbc344945 100644 --- a/src/NzbDrone.Core.Test/ParserTests/ParserFixture.cs +++ b/src/NzbDrone.Core.Test/ParserTests/ParserFixture.cs @@ -81,5 +81,11 @@ namespace NzbDrone.Core.Test.ParserTests { Parser.Parser.ParseMovieTitle(postTitle).Year.Should().Be(year); } + + [TestCase("The Danish Girl 2015")] + public void should_not_parse_language_in_movie_title(string postTitle) + { + Parser.Parser.ParseMovieTitle(postTitle).Language.Should().Be(Language.English); + } } } diff --git a/src/NzbDrone.Core/Parser/Parser.cs b/src/NzbDrone.Core/Parser/Parser.cs index 75e9bfeba..b866eb790 100644 --- a/src/NzbDrone.Core/Parser/Parser.cs +++ b/src/NzbDrone.Core/Parser/Parser.cs @@ -406,7 +406,7 @@ namespace NzbDrone.Core.Parser if (result != null) { - result.Language = LanguageParser.ParseLanguage(title); + result.Language = LanguageParser.ParseLanguage(simpleTitle.Replace(result.MovieTitle, "A Movie")); Logger.Debug("Language parsed: {0}", result.Language); result.Quality = QualityParser.ParseQuality(title);