From cfba047d80b568c419a07e8c4fd4210c3961a2bc Mon Sep 17 00:00:00 2001 From: Bogdan Date: Wed, 26 Feb 2025 00:24:51 +0200 Subject: [PATCH] Fixed: Parsing some titles with FRA as French --- .../ParserTests/LanguageParserFixture.cs | 2 ++ src/NzbDrone.Core/Parser/LanguageParser.cs | 14 +++++++------- src/NzbDrone.Core/Parser/Parser.cs | 2 +- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/NzbDrone.Core.Test/ParserTests/LanguageParserFixture.cs b/src/NzbDrone.Core.Test/ParserTests/LanguageParserFixture.cs index 059542f99a..afa29523df 100644 --- a/src/NzbDrone.Core.Test/ParserTests/LanguageParserFixture.cs +++ b/src/NzbDrone.Core.Test/ParserTests/LanguageParserFixture.cs @@ -52,6 +52,8 @@ public void should_parse_subtitle_language_english(string fileName) [TestCase("Movie Title : Other Title 2010 x264.720p.Blu-ray Rip HD.VOSTFR.VFF. ONLY")] [TestCase("Movie Title 2019 HEVC.2160p.Blu-ray 4K.VOSTFR.VFF. JATO")] [TestCase("Movie.Title.1956.MULTi.VF.Bluray.1080p.REMUX.AC3.x264")] + [TestCase("Movie.Title.2016.ENG-ITA-FRA.AAC.1080p.WebDL.x264")] + [TestCase("Movie Title 2016 (BDrip 1080p ENG-ITA-FRA) Multisub x264")] [TestCase("Movie.Title.2016.ENG-ITA-FRE.AAC.1080p.WebDL.x264")] [TestCase("Movie Title 2016 (BDrip 1080p ENG-ITA-FRE) Multisub x264")] public void should_parse_language_french(string postTitle) diff --git a/src/NzbDrone.Core/Parser/LanguageParser.cs b/src/NzbDrone.Core/Parser/LanguageParser.cs index fd4ebe9ca3..006ffea990 100644 --- a/src/NzbDrone.Core/Parser/LanguageParser.cs +++ b/src/NzbDrone.Core/Parser/LanguageParser.cs @@ -15,7 +15,8 @@ public static class LanguageParser { private static readonly Logger Logger = NzbDroneLogger.GetLogger(typeof(LanguageParser)); - private static readonly Regex LanguageRegex = new Regex(@"(?:\W|_|^)(?\b(?:ita|italian)\b)| + private static readonly Regex LanguageRegex = new Regex(@"(?:\W|_|^)(?\beng\b)| + (?\b(?:ita|italian)\b)| (?german\b|videomann|ger[. ]dub|\bger\b)| (?flemish)| (?bgaudio)| @@ -24,7 +25,6 @@ public static class LanguageParser (?greek)| (?\b(?:FR|VO|VF|VFF|VFQ|VFI|VF2|TRUEFRENCH|FRENCH|FRE|FRA)\b)| (?\b(?:rus|ru)\b)| - (?\beng\b)| (?\b(?:HUNDUB|HUN)\b)| (?\b(?:HebDub|HebDubbed)\b)| (?\b(?:PL\W?DUB|DUB\W?PL|LEK\W?PL|PL\W?LEK)\b)| @@ -297,6 +297,11 @@ public static List ParseLanguages(string title) foreach (Match match in matches) { + if (match.Groups["english"].Success) + { + languages.Add(Language.English); + } + if (match.Groups["italian"].Captures.Any()) { languages.Add(Language.Italian); @@ -327,11 +332,6 @@ public static List ParseLanguages(string title) languages.Add(Language.Russian); } - if (match.Groups["english"].Success) - { - languages.Add(Language.English); - } - if (match.Groups["bulgarian"].Success) { languages.Add(Language.Bulgarian); diff --git a/src/NzbDrone.Core/Parser/Parser.cs b/src/NzbDrone.Core/Parser/Parser.cs index 3badfc6977..c9f4668d29 100644 --- a/src/NzbDrone.Core/Parser/Parser.cs +++ b/src/NzbDrone.Core/Parser/Parser.cs @@ -142,7 +142,7 @@ public static class Parser private static readonly Regex CleanQualityBracketsRegex = new Regex(@"\[[a-z0-9 ._-]+\]$", RegexOptions.IgnoreCase | RegexOptions.Compiled); - private static readonly Regex ReleaseGroupRegex = new Regex(@"-(?[a-z0-9]+(?-[a-z0-9]+)?(?!.+?(?:480p|576p|720p|1080p|2160p)))(?\d+)|(?tt\d{7,8}))(?:\k)?)(?:\b|[-._ ]|$)|[-._ ]\[(?[a-z0-9]+)\]$", + private static readonly Regex ReleaseGroupRegex = new Regex(@"-(?[a-z0-9]+(?-[a-z0-9]+)?(?!.+?(?:480p|576p|720p|1080p|2160p)))(?\d+)|(?tt\d{7,8}))(?:\k)?)(?:\b|[-._ ]|$)|[-._ ]\[(?[a-z0-9]+)\]$", RegexOptions.IgnoreCase | RegexOptions.Compiled); private static readonly Regex InvalidReleaseGroupRegex = new Regex(@"^([se]\d+|[0-9a-f]{8})$", RegexOptions.IgnoreCase | RegexOptions.Compiled);