mirror of
https://github.com/Radarr/Radarr.git
synced 2025-04-24 22:47:05 -04:00
Added: Support for Ukrainian language. (#3594)
This commit is contained in:
parent
b5e1b83de3
commit
dbdda0da13
4 changed files with 10 additions and 1 deletions
|
@ -26,6 +26,8 @@ namespace NzbDrone.Core.Test.ParserTests
|
||||||
[TestCase("Castle.2009.S01E14.Mandarin.HDTV.XviD-LOL", Language.Mandarin)]
|
[TestCase("Castle.2009.S01E14.Mandarin.HDTV.XviD-LOL", Language.Mandarin)]
|
||||||
[TestCase("Castle.2009.S01E14.Korean.HDTV.XviD-LOL", Language.Korean)]
|
[TestCase("Castle.2009.S01E14.Korean.HDTV.XviD-LOL", Language.Korean)]
|
||||||
[TestCase("Castle.2009.S01E14.Russian.HDTV.XviD-LOL", Language.Russian)]
|
[TestCase("Castle.2009.S01E14.Russian.HDTV.XviD-LOL", Language.Russian)]
|
||||||
|
[TestCase("Castle.2009.S01E14.Ukrainian.HDTV.XviD-LOL", Language.Ukrainian)]
|
||||||
|
[TestCase("Castle.2009.S01E14.Ukr.HDTV.XviD-LOL", Language.Ukrainian)]
|
||||||
[TestCase("Castle.2009.S01E14.Polish.HDTV.XviD-LOL", Language.Polish)]
|
[TestCase("Castle.2009.S01E14.Polish.HDTV.XviD-LOL", Language.Polish)]
|
||||||
[TestCase("Castle.2009.S01E14.Vietnamese.HDTV.XviD-LOL", Language.Vietnamese)]
|
[TestCase("Castle.2009.S01E14.Vietnamese.HDTV.XviD-LOL", Language.Vietnamese)]
|
||||||
[TestCase("Castle.2009.S01E14.Swedish.HDTV.XviD-LOL", Language.Swedish)]
|
[TestCase("Castle.2009.S01E14.Swedish.HDTV.XviD-LOL", Language.Swedish)]
|
||||||
|
|
|
@ -31,6 +31,7 @@ namespace NzbDrone.Core.Parser
|
||||||
new IsoLanguage("hu", "hun", Language.Hungarian),
|
new IsoLanguage("hu", "hun", Language.Hungarian),
|
||||||
new IsoLanguage("he", "heb", Language.Hebrew),
|
new IsoLanguage("he", "heb", Language.Hebrew),
|
||||||
new IsoLanguage("cs", "ces", Language.Czech),
|
new IsoLanguage("cs", "ces", Language.Czech),
|
||||||
|
new IsoLanguage("ua", "ukr", Language.Ukrainian),
|
||||||
new IsoLanguage("an", "any", Language.Any)
|
new IsoLanguage("an", "any", Language.Any)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -30,6 +30,7 @@ namespace NzbDrone.Core.Parser
|
||||||
Hungarian = 22,
|
Hungarian = 22,
|
||||||
Hebrew = 23,
|
Hebrew = 23,
|
||||||
Czech = 24,
|
Czech = 24,
|
||||||
|
Ukrainian = 25,
|
||||||
Any = -1,
|
Any = -1,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,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|VF2|TRUEFRENCH)(?:\W|_))|(?<russian>\brus\b)|(?<dutch>nl\W?subs?)|(?<hungarian>\b(?:HUNDUB|HUN)\b)|(?<hebrew>\bHebDub\b)|(?<czech>\b(?:CZ|SK)\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|VF2|TRUEFRENCH)(?:\W|_))|(?<russian>\brus\b)|(?<dutch>nl\W?subs?)|(?<hungarian>\b(?:HUNDUB|HUN)\b)|(?<hebrew>\bHebDub\b)|(?<czech>\b(?:CZ|SK)\b)|(?<ukrainian>\bukr\b)",
|
||||||
RegexOptions.IgnoreCase | RegexOptions.Compiled);
|
RegexOptions.IgnoreCase | RegexOptions.Compiled);
|
||||||
|
|
||||||
private static readonly Regex SubtitleLanguageRegex = new Regex(".+?[-_. ](?<iso_code>[a-z]{2,3})(?:[-_. ]forced)?$", RegexOptions.Compiled | RegexOptions.IgnoreCase);
|
private static readonly Regex SubtitleLanguageRegex = new Regex(".+?[-_. ](?<iso_code>[a-z]{2,3})(?:[-_. ]forced)?$", RegexOptions.Compiled | RegexOptions.IgnoreCase);
|
||||||
|
@ -86,6 +86,9 @@ namespace NzbDrone.Core.Parser
|
||||||
if (lowerTitle.Contains("czech"))
|
if (lowerTitle.Contains("czech"))
|
||||||
languages.Add( Language.Czech);
|
languages.Add( Language.Czech);
|
||||||
|
|
||||||
|
if (lowerTitle.Contains("ukrainian"))
|
||||||
|
languages.Add(Language.Ukrainian);
|
||||||
|
|
||||||
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())
|
||||||
|
@ -118,6 +121,8 @@ namespace NzbDrone.Core.Parser
|
||||||
if (match.Groups["czech"].Success)
|
if (match.Groups["czech"].Success)
|
||||||
languages.Add( Language.Czech);
|
languages.Add( Language.Czech);
|
||||||
|
|
||||||
|
if (match.Groups["ukrainian"].Success)
|
||||||
|
languages.Add( Language.Ukrainian);
|
||||||
|
|
||||||
return languages.DistinctBy(l => (int)l).ToList();
|
return languages.DistinctBy(l => (int)l).ToList();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue