New: Add Romansh language

This commit is contained in:
v3DJG6GL 2025-05-11 12:36:26 +02:00 committed by GitHub
parent 042308c319
commit 5303a1992c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 35 additions and 4 deletions

View file

@ -66,7 +66,8 @@ public class LanguageFixture : CoreTest
new object[] { 51, Language.Afrikaans },
new object[] { 52, Language.Marathi },
new object[] { 53, Language.Tagalog },
new object[] { 54, Language.Urdu }
new object[] { 54, Language.Urdu },
new object[] { 55, Language.Romansh }
};
public static object[] ToIntCases =
@ -127,7 +128,8 @@ public class LanguageFixture : CoreTest
new object[] { Language.Afrikaans, 51 },
new object[] { Language.Marathi, 52 },
new object[] { Language.Tagalog, 53 },
new object[] { Language.Urdu, 54 }
new object[] { Language.Urdu, 54 },
new object[] { Language.Romansh, 55 }
};
[Test]

View file

@ -89,5 +89,14 @@ public void should_return_urdu(string isoCode)
var result = IsoLanguages.Find(isoCode);
result.Language.Should().Be(Language.Urdu);
}
[TestCase("rm")]
[TestCase("roh")]
[TestCase("rm-CH")]
public void should_return_romansh(string isoCode)
{
var result = IsoLanguages.Find(isoCode);
result.Language.Should().Be(Language.Romansh);
}
}
}

View file

@ -503,6 +503,15 @@ public void should_parse_language_urdu(string postTitle)
result.Should().Contain(Language.Urdu);
}
[TestCase("The.Movie.Name.2016.Romansh.WEB-DL.h264-RlsGrp")]
[TestCase("The.Movie.Name.2016.Rumantsch.WEB.DL.h264-RlsGrp")]
[TestCase("The Movie Name 2016 Romansch WEB DL h264-RlsGrp")]
public void should_parse_language_romansh(string postTitle)
{
var result = LanguageParser.ParseLanguages(postTitle);
result.Should().Contain(Language.Romansh);
}
[TestCase("Movie.Title.en.sub")]
[TestCase("Movie Title.eng.sub")]
[TestCase("Movie.Title.eng.forced.sub")]

View file

@ -71,6 +71,8 @@ public enum TMDbLanguageCodes
[FieldOption(Hint = "Tagalog")]
tl,
[FieldOption(Hint = "Urdu")]
ur
ur,
[FieldOption(Hint = "Raeto-Romance")]
rm
}
}

View file

@ -125,6 +125,7 @@ public override bool Equals(object obj)
public static Language Marathi => new Language(52, "Marathi");
public static Language Tagalog => new Language(53, "Tagalog");
public static Language Urdu => new Language(54, "Urdu");
public static Language Romansh => new Language(55, "Romansh");
public static Language Any => new Language(-1, "Any");
public static Language Original => new Language(-2, "Original");
@ -189,6 +190,7 @@ public static List<Language> All
Marathi,
Tagalog,
Urdu,
Romansh,
Any,
Original
};

View file

@ -63,7 +63,8 @@ public static class IsoLanguages
new IsoLanguage("af", "", "afr", "Afrikaans", Language.Afrikaans),
new IsoLanguage("mr", "", "mar", "Marathi", Language.Marathi),
new IsoLanguage("tl", "", "tgl", "Tagalog", Language.Tagalog),
new IsoLanguage("ur", "", "urd", "Urdu", Language.Urdu)
new IsoLanguage("ur", "", "urd", "Urdu", Language.Urdu),
new IsoLanguage("rm", "", "roh", "Romansh", Language.Romansh)
};
private static readonly Dictionary<string, Language> AlternateIsoCodeMappings = new ()

View file

@ -38,6 +38,7 @@ public static class LanguageParser
(?<japanese>\bJAP\b)|
(?<korean>\bKOR\b)|
(?<urdu>\burdu\b)|
(?<romansh>\b(?:romansh|rumantsch|romansch)\b)|
(?<original>\b(?:orig|original)\b)",
RegexOptions.IgnoreCase | RegexOptions.Compiled | RegexOptions.IgnorePatternWhitespace);
@ -426,6 +427,11 @@ public static List<Language> ParseLanguages(string title)
languages.Add(Language.Urdu);
}
if (match.Groups["romansh"].Success)
{
languages.Add(Language.Romansh);
}
if (match.Groups["original"].Success)
{
languages.Add(Language.Original);