New: Add Latvian language

This commit is contained in:
Krisjanis Lejejs 2022-09-04 22:13:29 +03:00 committed by Qstick
parent 90d0d8bec8
commit 61979bff7a
5 changed files with 30 additions and 2 deletions

View File

@ -47,6 +47,8 @@ namespace NzbDrone.Core.Test.Languages
new object[] { 32, Language.Ukrainian },
new object[] { 33, Language.Persian },
new object[] { 34, Language.Bengali },
new object[] { 35, Language.Slovak },
new object[] { 36, Language.Latvian },
};
public static object[] ToIntCases =
@ -88,6 +90,8 @@ namespace NzbDrone.Core.Test.Languages
new object[] { Language.Ukrainian, 32 },
new object[] { Language.Persian, 33 },
new object[] { Language.Bengali, 34 },
new object[] { Language.Slovak, 35 },
new object[] { Language.Latvian, 36 },
};
[Test]

View File

@ -368,6 +368,16 @@ namespace NzbDrone.Core.Test.ParserTests
result.Languages.Should().BeEquivalentTo(Language.Slovak);
}
[TestCase("Movie.Title.2022.LV.WEBRip.XviD-LOL")]
[TestCase("Movie.Title.2022.lv.WEBRip.XviD-LOL")]
[TestCase("Movie.Title.2022.LATVIAN.WEBRip.XviD-LOL")]
[TestCase("Movie.Title.2022.Latvian.WEBRip.XviD-LOL")]
public void should_parse_language_latvian(string postTitle)
{
var result = Parser.Parser.ParseMovieTitle(postTitle);
result.Languages.Should().BeEquivalentTo(Language.Latvian);
}
[TestCase("Movie.Title.en.sub")]
[TestCase("Movie Title.eng.sub")]
[TestCase("Movie.Title.eng.forced.sub")]

View File

@ -106,6 +106,7 @@ namespace NzbDrone.Core.Languages
public static Language Persian => new Language(33, "Persian");
public static Language Bengali => new Language(34, "Bengali");
public static Language Slovak => new Language(35, "Slovak");
public static Language Latvian => new Language(36, "Latvian");
public static Language Any => new Language(-1, "Any");
public static Language Original => new Language(-2, "Original");
@ -151,6 +152,7 @@ namespace NzbDrone.Core.Languages
Persian,
Bengali,
Slovak,
Latvian,
Any,
Original
};

View File

@ -43,7 +43,8 @@ namespace NzbDrone.Core.Parser
new IsoLanguage("fa", "", "fas", "Persian", Language.Persian),
new IsoLanguage("be", "", "ben", "Bengali", Language.Bengali),
new IsoLanguage("lt", "", "lit", "Lithuanian", Language.Lithuanian),
new IsoLanguage("sk", "", "slk", "Slovak", Language.Slovak)
new IsoLanguage("sk", "", "slk", "Slovak", Language.Slovak),
new IsoLanguage("lv", "", "lav", "Latvian", Language.Latvian)
};
public static IsoLanguage Find(string isoCode)

View File

@ -27,7 +27,8 @@ namespace NzbDrone.Core.Parser
(?<hebrew>\bHebDub\b)|
(?<polish>\b(?:PL\W?DUB|DUB\W?PL|LEK\W?PL|PL\W?LEK)\b)|
(?<chinese>\[(?:CH[ST]|BIG5|GB)\]|||)|
(?<ukrainian>(?:(?:\dx)?UKR))",
(?<ukrainian>(?:(?:\dx)?UKR))|
(?<latvian>\bLV\b)",
RegexOptions.IgnoreCase | RegexOptions.Compiled | RegexOptions.IgnorePatternWhitespace);
private static readonly Regex CaseSensitiveLanguageRegex = new Regex(@"(?:(?i)(?<!SUB[\W|_|^]))(?:(?<lithuanian>\bLT\b)|
@ -189,6 +190,11 @@ namespace NzbDrone.Core.Parser
languages.Add(Language.Slovak);
}
if (lowerTitle.Contains("latvian"))
{
languages.Add(Language.Latvian);
}
// Case sensitive
var caseSensitiveMatch = CaseSensitiveLanguageRegex.Match(title);
@ -295,6 +301,11 @@ namespace NzbDrone.Core.Parser
{
languages.Add(Language.Ukrainian);
}
if (match.Groups["latvian"].Success)
{
languages.Add(Language.Latvian);
}
}
if (!languages.Any())