diff --git a/src/NzbDrone.Core.Test/Languages/LanguageFixture.cs b/src/NzbDrone.Core.Test/Languages/LanguageFixture.cs index 51248dc675..19fdae72e9 100644 --- a/src/NzbDrone.Core.Test/Languages/LanguageFixture.cs +++ b/src/NzbDrone.Core.Test/Languages/LanguageFixture.cs @@ -64,7 +64,8 @@ namespace NzbDrone.Core.Test.Languages new object[] { 49, Language.Kannada }, new object[] { 50, Language.Albanian }, new object[] { 51, Language.Afrikaans }, - new object[] { 52, Language.Marathi } + new object[] { 52, Language.Marathi }, + new object[] { 53, Language.Tagalog }, }; public static object[] ToIntCases = @@ -123,7 +124,8 @@ namespace NzbDrone.Core.Test.Languages new object[] { Language.Kannada, 49 }, new object[] { Language.Albanian, 50 }, new object[] { Language.Afrikaans, 51 }, - new object[] { Language.Marathi, 52 } + new object[] { Language.Marathi, 52 }, + new object[] { Language.Tagalog, 53 }, }; [Test] diff --git a/src/NzbDrone.Core.Test/ParserTests/IsoLanguagesFixture.cs b/src/NzbDrone.Core.Test/ParserTests/IsoLanguagesFixture.cs index a9f37710fc..901bfe8743 100644 --- a/src/NzbDrone.Core.Test/ParserTests/IsoLanguagesFixture.cs +++ b/src/NzbDrone.Core.Test/ParserTests/IsoLanguagesFixture.cs @@ -71,5 +71,14 @@ namespace NzbDrone.Core.Test.ParserTests var result = IsoLanguages.Find(isoCode); result.Language.Should().Be(Language.Marathi); } + + [TestCase("tl")] + [TestCase("tgl")] + [TestCase("tl-PH")] + public void should_return_tagalog(string isoCode) + { + var result = IsoLanguages.Find(isoCode); + result.Language.Should().Be(Language.Tagalog); + } } } diff --git a/src/NzbDrone.Core.Test/ParserTests/LanguageParserFixture.cs b/src/NzbDrone.Core.Test/ParserTests/LanguageParserFixture.cs index 490abd7cc0..ecbdfef12f 100644 --- a/src/NzbDrone.Core.Test/ParserTests/LanguageParserFixture.cs +++ b/src/NzbDrone.Core.Test/ParserTests/LanguageParserFixture.cs @@ -468,6 +468,14 @@ namespace NzbDrone.Core.Test.ParserTests result.Should().Contain(Language.Marathi); } + [TestCase("Movie Title 2024 1080p Tagalog WEB-DL HEVC x265 BONE")] + [TestCase("Movie.Title.2022.720p.Tagalog.WEB-DL.AAC.x264-Mkvking")] + public void should_parse_language_tagalog(string postTitle) + { + var result = LanguageParser.ParseLanguages(postTitle); + result.Should().Contain(Language.Tagalog); + } + [TestCase("Movie.Title.en.sub")] [TestCase("Movie Title.eng.sub")] [TestCase("Movie.Title.eng.forced.sub")] diff --git a/src/NzbDrone.Core/ImportLists/TMDb/TMDbLanguageCodes.cs b/src/NzbDrone.Core/ImportLists/TMDb/TMDbLanguageCodes.cs index 1109fb6bce..b26e5ae634 100644 --- a/src/NzbDrone.Core/ImportLists/TMDb/TMDbLanguageCodes.cs +++ b/src/NzbDrone.Core/ImportLists/TMDb/TMDbLanguageCodes.cs @@ -67,6 +67,8 @@ namespace NzbDrone.Core.ImportLists.TMDb [FieldOption(Hint = "Afrikaans")] af, [FieldOption(Hint = "Marathi")] - mr + mr, + [FieldOption(Hint = "Tagalog")] + tl, } } diff --git a/src/NzbDrone.Core/Languages/Language.cs b/src/NzbDrone.Core/Languages/Language.cs index e1bb5f2f04..1c04dc367d 100644 --- a/src/NzbDrone.Core/Languages/Language.cs +++ b/src/NzbDrone.Core/Languages/Language.cs @@ -123,6 +123,7 @@ namespace NzbDrone.Core.Languages public static Language Albanian => new Language(50, "Albanian"); public static Language Afrikaans => new Language(51, "Afrikaans"); public static Language Marathi => new Language(52, "Marathi"); + public static Language Tagalog => new Language(53, "Tagalog"); public static Language Any => new Language(-1, "Any"); public static Language Original => new Language(-2, "Original"); @@ -185,6 +186,7 @@ namespace NzbDrone.Core.Languages Albanian, Afrikaans, Marathi, + Tagalog, Any, Original }; diff --git a/src/NzbDrone.Core/Parser/IsoLanguages.cs b/src/NzbDrone.Core/Parser/IsoLanguages.cs index 54dbcc5e68..cd1af26e31 100644 --- a/src/NzbDrone.Core/Parser/IsoLanguages.cs +++ b/src/NzbDrone.Core/Parser/IsoLanguages.cs @@ -62,6 +62,7 @@ namespace NzbDrone.Core.Parser new IsoLanguage("sq", "", "sqi", "Albanian", Language.Albanian), new IsoLanguage("af", "", "afr", "Afrikaans", Language.Afrikaans), new IsoLanguage("mr", "", "mar", "Marathi", Language.Marathi), + new IsoLanguage("tl", "", "tgl", "Tagalog", Language.Tagalog), }; private static readonly Dictionary AlternateIsoCodeMappings = new () diff --git a/src/NzbDrone.Core/Parser/LanguageParser.cs b/src/NzbDrone.Core/Parser/LanguageParser.cs index 9e4460e036..60cbda36db 100644 --- a/src/NzbDrone.Core/Parser/LanguageParser.cs +++ b/src/NzbDrone.Core/Parser/LanguageParser.cs @@ -244,6 +244,11 @@ namespace NzbDrone.Core.Parser languages.Add(Language.Marathi); } + if (lowerTitle.Contains("tagalog")) + { + languages.Add(Language.Tagalog); + } + // Case sensitive var caseSensitiveMatches = CaseSensitiveLanguageRegex.Matches(title);