From d375b5ffbe03f6939372f59b4e69ae9dcf5c5940 Mon Sep 17 00:00:00 2001 From: epmt7w3ugk Date: Tue, 7 Jan 2025 14:47:13 +0100 Subject: [PATCH] Fixed: Parse GER/DE releases as German language Fix parsing for German language to correctly detect "GER" and "DE" Update test for GER/DE language parsing. --- .../ParserTests/LanguageParserFixture.cs | 6 ++++++ src/NzbDrone.Core/Parser/LanguageParser.cs | 8 +++++++- src/NzbDrone.Core/Parser/Parser.cs | 2 +- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/NzbDrone.Core.Test/ParserTests/LanguageParserFixture.cs b/src/NzbDrone.Core.Test/ParserTests/LanguageParserFixture.cs index ec3c2ce89..c7bb13a64 100644 --- a/src/NzbDrone.Core.Test/ParserTests/LanguageParserFixture.cs +++ b/src/NzbDrone.Core.Test/ParserTests/LanguageParserFixture.cs @@ -87,7 +87,13 @@ namespace NzbDrone.Core.Test.ParserTests } [TestCase("Movie.Title.1994.German.1080p.XviD-LOL")] + [TestCase("Movie.Title.2016.GERMAN.DUBBED.WS.WEBRiP.XviD.REPACK-TVP")] + [TestCase("Movie Title 2016 - Kampfhaehne - mkv - by Videomann")] [TestCase("Movie.Title.2016.Ger.Dub.AAC.1080p.WebDL.x264-TKP21")] + [TestCase("Movie.Title.2016.Ger.AAC.1080p.WebDL.x264-TKP21")] + [TestCase("Movie.Title.2016.Hun/Ger/Ita.AAC.1080p.WebDL.x264-TKP21")] + [TestCase("Movie.Title.2016.1080p.10Bit.HEVC.WEBRip.HIN-ENG-GER.DD5.1.H.265")] + [TestCase("Movie.Title.2016.HU-IT-DE.AAC.1080p.WebDL.x264")] public void should_parse_language_german(string postTitle) { var result = Parser.Parser.ParseMovieTitle(postTitle, true); diff --git a/src/NzbDrone.Core/Parser/LanguageParser.cs b/src/NzbDrone.Core/Parser/LanguageParser.cs index f710e9b15..fd4ebe9ca 100644 --- a/src/NzbDrone.Core/Parser/LanguageParser.cs +++ b/src/NzbDrone.Core/Parser/LanguageParser.cs @@ -16,7 +16,7 @@ namespace NzbDrone.Core.Parser private static readonly Logger Logger = NzbDroneLogger.GetLogger(typeof(LanguageParser)); private static readonly Regex LanguageRegex = new Regex(@"(?:\W|_|^)(?\b(?:ita|italian)\b)| - (?german\b|videomann|ger[. ]dub)| + (?german\b|videomann|ger[. ]dub|\bger\b)| (?flemish)| (?bgaudio)| (?rodubbed)| @@ -44,6 +44,7 @@ namespace NzbDrone.Core.Parser (?\bPL\b)| (?\bBG\b)| (?\bSK\b)| + (?\bDE\b)| (?\b(?[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);