Added: Hebrew language (#1909)

This commit is contained in:
Rotem 2017-08-12 01:48:57 +03:00 committed by Leonardo Galli
commit 7c4c6ccd5c
4 changed files with 12 additions and 3 deletions

View file

@ -54,6 +54,7 @@ namespace NzbDrone.Core.Test.ParserTests
[TestCase("Der.Soldat.James.German.Bluray.FuckYou.Pso.Why.cant.you.follow.scene.rules.1998", Language.German)] [TestCase("Der.Soldat.James.German.Bluray.FuckYou.Pso.Why.cant.you.follow.scene.rules.1998", Language.German)]
[TestCase("Passengers.German.DL.AC3.Dubbed..BluRay.x264-PsO", Language.German)] [TestCase("Passengers.German.DL.AC3.Dubbed..BluRay.x264-PsO", Language.German)]
[TestCase("Valana la Legende FRENCH BluRay 720p 2016 kjhlj", Language.French)] [TestCase("Valana la Legende FRENCH BluRay 720p 2016 kjhlj", Language.French)]
[TestCase("Smurfs.The.Lost.Village.2017.1080p.BluRay.HebDub.x264-iSrael",Language.Hebrew)]
public void should_parse_language(string postTitle, Language language) public void should_parse_language(string postTitle, Language language)
{ {
var result = Parser.Parser.ParseMovieTitle(postTitle, true); var result = Parser.Parser.ParseMovieTitle(postTitle, true);

View file

@ -28,7 +28,8 @@ namespace NzbDrone.Core.Parser
// new IsoLanguage("nl", "nld", Language.Flemish), // new IsoLanguage("nl", "nld", Language.Flemish),
new IsoLanguage("el", "ell", Language.Greek), new IsoLanguage("el", "ell", Language.Greek),
new IsoLanguage("ko", "kor", Language.Korean), 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) public static IsoLanguage Find(string isoCode)

View file

@ -24,6 +24,7 @@
Flemish = 19, Flemish = 19,
Greek = 20, Greek = 20,
Korean = 21, Korean = 21,
Hungarian = 22 Hungarian = 22,
Hebrew = 23
} }
} }

View file

@ -11,7 +11,7 @@ namespace NzbDrone.Core.Parser
{ {
private static readonly Logger Logger = NzbDroneLogger.GetLogger(typeof(LanguageParser)); private static readonly Logger Logger = NzbDroneLogger.GetLogger(typeof(LanguageParser));
private static readonly Regex LanguageRegex = new Regex(@"(?:\W|_)(?<italian>\b(?:ita|italian)\b)|(?<german>german\b|videomann)|(?<flemish>flemish)|(?<greek>greek)|(?<french>(?:\W|_)(?:FR|VOSTFR|VO|VFF|VFQ|TRUEFRENCH)(?:\W|_))|(?<russian>\brus\b)|(?<dutch>nl\W?subs?)|(?<hungarian>\b(?:HUNDUB|HUN)\b)", private static readonly Regex LanguageRegex = new Regex(@"(?:\W|_)(?<italian>\b(?:ita|italian)\b)|(?<german>german\b|videomann)|(?<flemish>flemish)|(?<greek>greek)|(?<french>(?:\W|_)(?:FR|VOSTFR|VO|VFF|VFQ|TRUEFRENCH)(?:\W|_))|(?<russian>\brus\b)|(?<dutch>nl\W?subs?)|(?<hungarian>\b(?:HUNDUB|HUN)\b)|(?<hebrew>\bHebDub\b)",
RegexOptions.IgnoreCase | RegexOptions.Compiled); RegexOptions.IgnoreCase | RegexOptions.Compiled);
private static readonly Regex SubtitleLanguageRegex = new Regex(".+?[-_. ](?<iso_code>[a-z]{2,3})$", RegexOptions.Compiled | RegexOptions.IgnoreCase); private static readonly Regex SubtitleLanguageRegex = new Regex(".+?[-_. ](?<iso_code>[a-z]{2,3})$", RegexOptions.Compiled | RegexOptions.IgnoreCase);
@ -77,6 +77,9 @@ namespace NzbDrone.Core.Parser
if (lowerTitle.Contains("hungarian")) if (lowerTitle.Contains("hungarian"))
return Language.Hungarian; return Language.Hungarian;
if (lowerTitle.Contains("hebrew"))
return Language.Hebrew;
var match = LanguageRegex.Match(title); var match = LanguageRegex.Match(title);
if (match.Groups["italian"].Captures.Cast<Capture>().Any()) if (match.Groups["italian"].Captures.Cast<Capture>().Any())
@ -103,6 +106,9 @@ namespace NzbDrone.Core.Parser
if (match.Groups["hungarian"].Success) if (match.Groups["hungarian"].Success)
return Language.Hungarian; return Language.Hungarian;
if (match.Groups["hebrew"].Success)
return Language.Hebrew;
return Language.English; return Language.English;
} }