diff --git a/src/NzbDrone.Core.Test/ParserTests/LanguageParserFixture.cs b/src/NzbDrone.Core.Test/ParserTests/LanguageParserFixture.cs index 56dbd2367d..a1f73c64a1 100644 --- a/src/NzbDrone.Core.Test/ParserTests/LanguageParserFixture.cs +++ b/src/NzbDrone.Core.Test/ParserTests/LanguageParserFixture.cs @@ -537,6 +537,16 @@ public void should_not_add_original_language_to_german_release_when_title_contai result.Languages.Should().Contain(Language.German); } + [TestCase("Movie.Title.2025.Original.1080P.WEB.H264-RlsGrp")] + [TestCase("Movie.Title.2025.Orig.1080P.WEB.H264-RlsGrp")] + [TestCase("Movie Title 2025 [HEVC, HDR10, Dolby Vision, WEB-DL 2160p] [Hybrid] 3 XX + Original")] + public void should_parse_original_title_from_release_name(string postTitle) + { + var result = Parser.Parser.ParseMovieTitle(postTitle); + result.Languages.Count.Should().Be(1); + result.Languages.Should().Contain(Language.Original); + } + [TestCase("The.Movie.Name.2023.German.ML.EAC3.720p.NF.WEB.H264-RlsGrp")] public void should_add_original_language_and_english_to_german_release_with_ml_tag(string postTitle) { diff --git a/src/NzbDrone.Core/Parser/LanguageParser.cs b/src/NzbDrone.Core/Parser/LanguageParser.cs index 5ce9cacd0a..f07e807720 100644 --- a/src/NzbDrone.Core/Parser/LanguageParser.cs +++ b/src/NzbDrone.Core/Parser/LanguageParser.cs @@ -37,7 +37,8 @@ public static class LanguageParser (?\bVIE\b)| (?\bJPN\b)| (?\bKOR\b)| - (?\burdu\b)", + (?\burdu\b)| + (?\b(?:orig|original)\b)", RegexOptions.IgnoreCase | RegexOptions.Compiled | RegexOptions.IgnorePatternWhitespace); private static readonly Regex CaseSensitiveLanguageRegex = new Regex(@"(?:(?i)(?\bLT\b)| @@ -253,7 +254,7 @@ public static List ParseLanguages(string title) languages.Add(Language.Tagalog); } - // Case sensitive + // Case-sensitive var caseSensitiveMatches = CaseSensitiveLanguageRegex.Matches(title); foreach (Match match in caseSensitiveMatches) @@ -294,6 +295,7 @@ public static List ParseLanguages(string title) } } + // Case-insensitive var matches = LanguageRegex.Matches(title); foreach (Match match in matches) @@ -417,6 +419,11 @@ public static List ParseLanguages(string title) { languages.Add(Language.Urdu); } + + if (match.Groups["original"].Success) + { + languages.Add(Language.Original); + } } if (!languages.Any())