From 37c1b5b28c2701a71d4168bccf19595b52974e7f Mon Sep 17 00:00:00 2001 From: Qstick Date: Tue, 6 Oct 2020 00:05:15 -0400 Subject: [PATCH] New: Add Bulgarian Language Fixes #4111 --- .../ParserTests/LanguageParserFixture.cs | 9 +++++++++ src/NzbDrone.Core/Languages/Language.cs | 2 ++ src/NzbDrone.Core/Parser/IsoLanguages.cs | 1 + src/NzbDrone.Core/Parser/LanguageParser.cs | 12 +++++++++++- 4 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/NzbDrone.Core.Test/ParserTests/LanguageParserFixture.cs b/src/NzbDrone.Core.Test/ParserTests/LanguageParserFixture.cs index 7d6bcabbd..f7a8dfe3d 100644 --- a/src/NzbDrone.Core.Test/ParserTests/LanguageParserFixture.cs +++ b/src/NzbDrone.Core.Test/ParserTests/LanguageParserFixture.cs @@ -139,6 +139,15 @@ namespace NzbDrone.Core.Test.ParserTests result.Languages.Should().BeEquivalentTo(Language.Thai); } + [TestCase("Pulp.Fiction.1994.Bulgarian.1080p.XviD-LOL")] + [TestCase("Pulp.Fiction.1994.BGAUDIO.1080p.XviD-LOL")] + public void should_parse_language_bulgarian(string postTitle) + { + var result = Parser.Parser.ParseMovieTitle(postTitle, true); + + result.Languages.Should().BeEquivalentTo(Language.Bulgarian); + } + [TestCase("Pulp.Fiction.1994.Polish.1080p.XviD-LOL")] public void should_parse_language_polish(string postTitle) { diff --git a/src/NzbDrone.Core/Languages/Language.cs b/src/NzbDrone.Core/Languages/Language.cs index 796d8ae22..87de7e019 100644 --- a/src/NzbDrone.Core/Languages/Language.cs +++ b/src/NzbDrone.Core/Languages/Language.cs @@ -99,6 +99,7 @@ namespace NzbDrone.Core.Languages public static Language Hindi => new Language(26, "Hindi"); public static Language Romanian => new Language(27, "Romanian"); public static Language Thai => new Language(28, "Thai"); + public static Language Bulgarian => new Language(29, "Bulgarian"); public static Language Any => new Language(-1, "Any"); public static Language Original => new Language(-2, "Original"); @@ -137,6 +138,7 @@ namespace NzbDrone.Core.Languages Romanian, Hindi, Thai, + Bulgarian, Any, Original }; diff --git a/src/NzbDrone.Core/Parser/IsoLanguages.cs b/src/NzbDrone.Core/Parser/IsoLanguages.cs index 8baad8219..ecd0d92b5 100644 --- a/src/NzbDrone.Core/Parser/IsoLanguages.cs +++ b/src/NzbDrone.Core/Parser/IsoLanguages.cs @@ -34,6 +34,7 @@ namespace NzbDrone.Core.Parser new IsoLanguage("cs", "", "ces", "Czech", Language.Czech), new IsoLanguage("hi", "", "hin", "Hindi", Language.Hindi), new IsoLanguage("th", "", "tha", "Thai", Language.Thai), + new IsoLanguage("bg", "", "bul", "Bulgarian", Language.Bulgarian), new IsoLanguage("ro", "", "ron", "Romanian", Language.Romanian) }; diff --git a/src/NzbDrone.Core/Parser/LanguageParser.cs b/src/NzbDrone.Core/Parser/LanguageParser.cs index 03a2714c5..e7c262fc8 100644 --- a/src/NzbDrone.Core/Parser/LanguageParser.cs +++ b/src/NzbDrone.Core/Parser/LanguageParser.cs @@ -14,7 +14,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)|(?\b(?:german|videomann|ger)\b)|(?flemish)|(?greek)|(?(?:\W|_)(?:FR|VO|VFF|VFQ|VFI|VF2|TRUEFRENCH)(?:\W|_))|(?\brus\b)|(?\beng\b)|(?\b(?:HUNDUB|HUN)\b)|(?\bHebDub\b)|(?\[(?:CH[ST]|BIG5|GB)\]|简|繁|字幕)", + private static readonly Regex LanguageRegex = new Regex(@"(?:\W|_|^)(?\b(?:ita|italian)\b)|(?\b(?:german|videomann|ger)\b)|(?flemish)|(?bgaudio)|(?greek)|(?(?:\W|_)(?:FR|VO|VFF|VFQ|VFI|VF2|TRUEFRENCH)(?:\W|_))|(?\brus\b)|(?\beng\b)|(?\b(?:HUNDUB|HUN)\b)|(?\bHebDub\b)|(?\[(?:CH[ST]|BIG5|GB)\]|简|繁|字幕)", RegexOptions.IgnoreCase | RegexOptions.Compiled); private static readonly Regex CaseSensitiveLanguageRegex = new Regex(@"(?\bLT\b)|(?\bCZ\b)", @@ -92,6 +92,11 @@ namespace NzbDrone.Core.Parser languages.Add(Language.Thai); } + if (lowerTitle.Contains("bulgarian")) + { + languages.Add(Language.Bulgarian); + } + if (lowerTitle.Contains("polish")) { languages.Add(Language.Polish); @@ -189,6 +194,11 @@ namespace NzbDrone.Core.Parser languages.Add(Language.English); } + if (match.Groups["bulgarian"].Success) + { + languages.Add(Language.Bulgarian); + } + if (match.Groups["dutch"].Success) { languages.Add(Language.Dutch);