From 3ceda1bcdafd81971ee33f034d955cd4b92de97c Mon Sep 17 00:00:00 2001 From: Bogdan Date: Mon, 20 Jan 2025 03:59:38 +0200 Subject: [PATCH] New: Parse releases with JPN as Japanese and KOR as Korean --- .../ParserTests/LanguageParserFixture.cs | 4 ++++ src/NzbDrone.Core/Parser/LanguageParser.cs | 14 +++++++++++++- src/NzbDrone.Core/Parser/Parser.cs | 2 +- 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/NzbDrone.Core.Test/ParserTests/LanguageParserFixture.cs b/src/NzbDrone.Core.Test/ParserTests/LanguageParserFixture.cs index ecbdfef12..ec3c2ce89 100644 --- a/src/NzbDrone.Core.Test/ParserTests/LanguageParserFixture.cs +++ b/src/NzbDrone.Core.Test/ParserTests/LanguageParserFixture.cs @@ -120,6 +120,8 @@ namespace NzbDrone.Core.Test.ParserTests } [TestCase("Movie.Title.1994.Japanese.1080p.XviD-LOL")] + [TestCase("Movie.Title (1988) 2160p HDR 5.1 Eng - Jpn x265 10bit")] + [TestCase("Movie Title (1985) (1080p.AC3 ITA-ENG-JPN)")] public void should_parse_language_japanese(string postTitle) { var result = Parser.Parser.ParseMovieTitle(postTitle, true); @@ -291,6 +293,8 @@ namespace NzbDrone.Core.Test.ParserTests } [TestCase("Movie.Title.1994.Korean.1080p.XviD-LOL")] + [TestCase("Movie Title [2006] BDRip 720p [Kor Rus] GROUP")] + [TestCase("Movie.Title.2019.KOR.1080p.HDRip.H264.AAC-GROUP")] public void should_parse_language_korean(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 60cbda36d..f710e9b15 100644 --- a/src/NzbDrone.Core/Parser/LanguageParser.cs +++ b/src/NzbDrone.Core/Parser/LanguageParser.cs @@ -34,7 +34,9 @@ namespace NzbDrone.Core.Parser (?\b(?:catalan?|catalán|català)\b)| (?\b(?:lat|lav|lv)\b)| (?\btel\b)| - (?\bVIE\b)", + (?\bVIE\b)| + (?\bJPN\b)| + (?\bKOR\b)", RegexOptions.IgnoreCase | RegexOptions.Compiled | RegexOptions.IgnorePatternWhitespace); private static readonly Regex CaseSensitiveLanguageRegex = new Regex(@"(?:(?i)(?\bLT\b)| @@ -393,6 +395,16 @@ namespace NzbDrone.Core.Parser { languages.Add(Language.Vietnamese); } + + if (match.Groups["japanese"].Success) + { + languages.Add(Language.Japanese); + } + + if (match.Groups["korean"].Success) + { + languages.Add(Language.Korean); + } } if (!languages.Any()) diff --git a/src/NzbDrone.Core/Parser/Parser.cs b/src/NzbDrone.Core/Parser/Parser.cs index 76011eab7..e943feb6b 100644 --- a/src/NzbDrone.Core/Parser/Parser.cs +++ b/src/NzbDrone.Core/Parser/Parser.cs @@ -142,7 +142,7 @@ namespace NzbDrone.Core.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);