New: Add Mongolian language

Co-authored-by: Bogdan <mynameisbogdan@users.noreply.github.com>
This commit is contained in:
Elerir 2025-05-21 11:08:15 +02:00 committed by GitHub
parent cc8bffc272
commit b823ad8e65
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
9 changed files with 41 additions and 5 deletions

View file

@ -67,7 +67,8 @@ public class LanguageFixture : CoreTest
new object[] { 52, Language.Marathi },
new object[] { 53, Language.Tagalog },
new object[] { 54, Language.Urdu },
new object[] { 55, Language.Romansh }
new object[] { 55, Language.Romansh },
new object[] { 56, Language.Mongolian }
};
public static object[] ToIntCases =
@ -129,7 +130,8 @@ public class LanguageFixture : CoreTest
new object[] { Language.Marathi, 52 },
new object[] { Language.Tagalog, 53 },
new object[] { Language.Urdu, 54 },
new object[] { Language.Romansh, 55 }
new object[] { Language.Romansh, 55 },
new object[] { Language.Mongolian, 56 }
};
[Test]

View file

@ -405,6 +405,8 @@ public void should_format_mediainfo_properly()
[TestCase("ice", "IS")]
[TestCase("dut", "NL")]
[TestCase("nor", "NO")]
[TestCase("khk", "MN")]
[TestCase("mvf", "MN")]
public void should_format_languagecodes_properly(string language, string code)
{
_namingConfig.StandardMovieFormat = "{Movie.Title}.{MEDIAINFO.FULL}";

View file

@ -98,5 +98,16 @@ public void should_return_romansh(string isoCode)
var result = IsoLanguages.Find(isoCode);
result.Language.Should().Be(Language.Romansh);
}
[TestCase("mn")]
[TestCase("mon")]
[TestCase("khk")]
[TestCase("mvf")]
[TestCase("mn-Cyrl")]
public void should_return_mongolian(string isoCode)
{
var result = IsoLanguages.Find(isoCode);
result.Language.Should().Be(Language.Mongolian);
}
}
}

View file

@ -513,6 +513,14 @@ public void should_parse_language_romansh(string postTitle)
result.Should().Contain(Language.Romansh);
}
[TestCase("Movie.Title.2025.Mongolian.WEB-DL.h264")]
[TestCase("Movie.Title.2025.Khalkha.WEB-DL.h264")]
public void should_parse_language_mongolian(string postTitle)
{
var result = LanguageParser.ParseLanguages(postTitle);
result.Should().Contain(Language.Mongolian);
}
[TestCase("Movie.Title.en.sub")]
[TestCase("Movie Title.eng.sub")]
[TestCase("Movie.Title.eng.forced.sub")]

View file

@ -73,6 +73,8 @@ public enum TMDbLanguageCodes
[FieldOption(Hint = "Urdu")]
ur,
[FieldOption(Hint = "Raeto-Romance")]
rm
rm,
[FieldOption(Hint = "Mongolian")]
mn
}
}

View file

@ -126,6 +126,7 @@ public override bool Equals(object obj)
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 Mongolian => new Language(56, "Mongolian");
public static Language Any => new Language(-1, "Any");
public static Language Original => new Language(-2, "Original");
@ -191,6 +192,7 @@ public static List<Language> All
Tagalog,
Urdu,
Romansh,
Mongolian,
Any,
Original
};

View file

@ -79,7 +79,9 @@ public class FileNameBuilder : IBuildFileNames
{ "rum", "ron" },
{ "slo", "slk" },
{ "tib", "bod" },
{ "wel", "cym" }
{ "wel", "cym" },
{ "khk", "mon" },
{ "mvf", "mon" }
}.ToImmutableDictionary();
public static readonly ImmutableArray<string> BadCharacters = ImmutableArray.Create("\\", "/", "<", ">", "?", "*", "|", "\"");

View file

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

View file

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