From 7d21585f50cc57d4e6c6048584150a2114bb9530 Mon Sep 17 00:00:00 2001 From: "ECB\\rotem.shoshan" Date: Fri, 11 Aug 2017 13:16:47 +0300 Subject: [PATCH] Added Hebrew lanugage New: Added Hebrew language Closes #2115 --- .../ParserTests/LanguageParserFixture.cs | 1 + src/NzbDrone.Core/Parser/IsoLanguages.cs | 3 ++- src/NzbDrone.Core/Parser/Language.cs | 3 ++- src/NzbDrone.Core/Parser/LanguageParser.cs | 8 +++++++- 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/NzbDrone.Core.Test/ParserTests/LanguageParserFixture.cs b/src/NzbDrone.Core.Test/ParserTests/LanguageParserFixture.cs index c86948b17..34c65f0d9 100644 --- a/src/NzbDrone.Core.Test/ParserTests/LanguageParserFixture.cs +++ b/src/NzbDrone.Core.Test/ParserTests/LanguageParserFixture.cs @@ -46,6 +46,7 @@ namespace NzbDrone.Core.Test.ParserTests [TestCase("Castle.2009.S01E14.HDTV.XviD.HUNDUB-LOL", Language.Hungarian)] [TestCase("Castle.2009.S01E14.HDTV.XviD.ENG.HUN-LOL", Language.Hungarian)] [TestCase("Castle.2009.S01E14.HDTV.XviD.HUN-LOL", Language.Hungarian)] + [TestCase("Avatar.The.Last.Airbender.S01-03.DVDRip.HebDub",Language.Hebrew)] public void should_parse_language(string postTitle, Language language) { var result = LanguageParser.ParseLanguage(postTitle); diff --git a/src/NzbDrone.Core/Parser/IsoLanguages.cs b/src/NzbDrone.Core/Parser/IsoLanguages.cs index ddbbe74c2..7aeee15df 100644 --- a/src/NzbDrone.Core/Parser/IsoLanguages.cs +++ b/src/NzbDrone.Core/Parser/IsoLanguages.cs @@ -28,7 +28,8 @@ namespace NzbDrone.Core.Parser // new IsoLanguage("nl", "nld", Language.Flemish), new IsoLanguage("el", "ell", Language.Greek), new IsoLanguage("ko", "kor", Language.Korean), - new IsoLanguage("hu", "hun", Language.Hungarian) + new IsoLanguage("hu", "hun", Language.Hungarian), + new IsoLanguage("he", "heb", Language.Hebrew) }; public static IsoLanguage Find(string isoCode) diff --git a/src/NzbDrone.Core/Parser/Language.cs b/src/NzbDrone.Core/Parser/Language.cs index f85281dd1..e720890e7 100644 --- a/src/NzbDrone.Core/Parser/Language.cs +++ b/src/NzbDrone.Core/Parser/Language.cs @@ -24,6 +24,7 @@ Flemish = 19, Greek = 20, Korean = 21, - Hungarian = 22 + Hungarian = 22, + Hebrew = 23 } } diff --git a/src/NzbDrone.Core/Parser/LanguageParser.cs b/src/NzbDrone.Core/Parser/LanguageParser.cs index a2de40b84..2889589b4 100644 --- a/src/NzbDrone.Core/Parser/LanguageParser.cs +++ b/src/NzbDrone.Core/Parser/LanguageParser.cs @@ -11,7 +11,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)|(?flemish)|(?greek)|(?(?:\W|_)(?:FR|VOSTFR)(?:\W|_))|(?\brus\b)|(?nl\W?subs?)|(?\b(?:HUNDUB|HUN)\b)", + private static readonly Regex LanguageRegex = new Regex(@"(?:\W|_)(?\b(?:ita|italian)\b)|(?german\b|videomann)|(?flemish)|(?greek)|(?(?:\W|_)(?:FR|VOSTFR)(?:\W|_))|(?\brus\b)|(?nl\W?subs?)|(?\b(?:HUNDUB|HUN)\b)|(?\bHebDub\b)", RegexOptions.IgnoreCase | RegexOptions.Compiled); private static readonly Regex SubtitleLanguageRegex = new Regex(".+?[-_. ](?[a-z]{2,3})$", RegexOptions.Compiled | RegexOptions.IgnoreCase); @@ -77,6 +77,9 @@ namespace NzbDrone.Core.Parser if (lowerTitle.Contains("hungarian")) return Language.Hungarian; + if (lowerTitle.Contains("hebrew")) + return Language.Hebrew; + var match = LanguageRegex.Match(title); if (match.Groups["italian"].Captures.Cast().Any()) @@ -103,6 +106,9 @@ namespace NzbDrone.Core.Parser if (match.Groups["hungarian"].Success) return Language.Hungarian; + if (match.Groups["hebrew"].Success) + return Language.Hebrew; + return Language.English; }