From 3bfb08c3ffbf636f076af9d5c0399c9dbf60362a Mon Sep 17 00:00:00 2001 From: tenshiak <75363841+tenshiak@users.noreply.github.com> Date: Mon, 25 Jan 2021 05:53:15 +0100 Subject: [PATCH] Treat subbed as unknown language (#5677) * Subbed releases shouldn't report as different lang * Add tests for subbed releases * Remove whitespace --- .../ParserTests/LanguageParserFixture.cs | 10 ++++++++++ src/NzbDrone.Core/Parser/LanguageParser.cs | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/NzbDrone.Core.Test/ParserTests/LanguageParserFixture.cs b/src/NzbDrone.Core.Test/ParserTests/LanguageParserFixture.cs index 6cb167293..94da98cf4 100644 --- a/src/NzbDrone.Core.Test/ParserTests/LanguageParserFixture.cs +++ b/src/NzbDrone.Core.Test/ParserTests/LanguageParserFixture.cs @@ -173,6 +173,16 @@ namespace NzbDrone.Core.Test.ParserTests result.Languages.Should().BeEquivalentTo(Language.Polish); } + [TestCase("Pulp.Fiction.1994.PL-SUB.1080p.XviD-LOL")] + [TestCase("Pulp.Fiction.1994.PLSUB.1080p.XviD-LOL")] + [TestCase("Pulp.Fiction.1994.SUB-PL.1080p.XviD-LOL")] + public void should_parse_language_polish_subbed(string postTitle) + { + var result = Parser.Parser.ParseMovieTitle(postTitle, true); + + result.Languages.Should().BeEquivalentTo(Language.Unknown); + } + [TestCase("Pulp.Fiction.1994.Vietnamese.1080p.XviD-LOL")] public void should_parse_language_vietnamese(string postTitle) { diff --git a/src/NzbDrone.Core/Parser/LanguageParser.cs b/src/NzbDrone.Core/Parser/LanguageParser.cs index fb09661e6..90f8b3ae9 100644 --- a/src/NzbDrone.Core/Parser/LanguageParser.cs +++ b/src/NzbDrone.Core/Parser/LanguageParser.cs @@ -17,7 +17,7 @@ namespace NzbDrone.Core.Parser private static readonly Regex LanguageRegex = new Regex(@"(?:\W|_|^)(?\b(?:ita|italian)\b)|(?\b(?:german|videomann|ger)\b)|(?flemish)|(?bgaudio)|(?dublado)|(?greek)|(?(?:\W|_)(?:FR|VO|VFF|VFQ|VFI|VF2|TRUEFRENCH)(?:\W|_))|(?\brus\b)|(?\beng\b)|(?\b(?:HUNDUB|HUN)\b)|(?\bHebDub\b)|(?\b(?:PL\W?DUB|DUB\W?PL|LEK\W?PL|PL\W?LEK)\b)|(?\[(?:CH[ST]|BIG5|GB)\]|简|繁|字幕)", RegexOptions.IgnoreCase | RegexOptions.Compiled); - private static readonly Regex CaseSensitiveLanguageRegex = new Regex(@"(?\bLT\b)|(?\bCZ\b)|(?\bPL\b)", + private static readonly Regex CaseSensitiveLanguageRegex = new Regex(@"(?:(?i)(?\bLT\b)|(?\bCZ\b)|(?\bPL\b))(?:(?i)(?![\W|_|^]SUB))", RegexOptions.Compiled); private static readonly Regex SubtitleLanguageRegex = new Regex(".+?[-_. ](?[a-z]{2,3})(?:[-_. ]forced)?$", RegexOptions.Compiled | RegexOptions.IgnoreCase);