diff --git a/src/NzbDrone.Core.Test/Languages/LanguageFixture.cs b/src/NzbDrone.Core.Test/Languages/LanguageFixture.cs index 3824aec4f..569a157c2 100644 --- a/src/NzbDrone.Core.Test/Languages/LanguageFixture.cs +++ b/src/NzbDrone.Core.Test/Languages/LanguageFixture.cs @@ -49,7 +49,14 @@ public class LanguageFixture : CoreTest new object[] { 34, Language.Bengali }, new object[] { 35, Language.Slovak }, new object[] { 36, Language.Latvian }, - new object[] { 37, Language.SpanishLatino } + new object[] { 37, Language.SpanishLatino }, + new object[] { 38, Language.Catalan }, + new object[] { 39, Language.Croatian }, + new object[] { 40, Language.Serbian }, + new object[] { 41, Language.Bosnian }, + new object[] { 42, Language.Estonian }, + new object[] { 43, Language.Tamil }, + new object[] { 44, Language.Indonesian } }; public static object[] ToIntCases = @@ -93,7 +100,14 @@ public class LanguageFixture : CoreTest new object[] { Language.Bengali, 34 }, new object[] { Language.Slovak, 35 }, new object[] { Language.Latvian, 36 }, - new object[] { Language.SpanishLatino, 37 } + new object[] { Language.SpanishLatino, 37 }, + new object[] { Language.Catalan, 38 }, + new object[] { Language.Croatian, 39 }, + new object[] { Language.Serbian, 40 }, + new object[] { Language.Bosnian, 41 }, + new object[] { Language.Estonian, 42 }, + new object[] { Language.Tamil, 43 }, + new object[] { Language.Indonesian, 44 } }; [Test] diff --git a/src/NzbDrone.Core.Test/ParserTests/IsoLanguagesFixture.cs b/src/NzbDrone.Core.Test/ParserTests/IsoLanguagesFixture.cs index 6d50e65b4..37acf7b7a 100644 --- a/src/NzbDrone.Core.Test/ParserTests/IsoLanguagesFixture.cs +++ b/src/NzbDrone.Core.Test/ParserTests/IsoLanguagesFixture.cs @@ -22,7 +22,6 @@ public void should_return_iso_language_for_English(string isoCode) [TestCase("enus")] [TestCase("enusa")] [TestCase("wo")] - [TestCase("ca-IT")] [TestCase("fr-CA")] public void unknown_or_invalid_code_should_return_null(string isoCode) { diff --git a/src/NzbDrone.Core.Test/ParserTests/LanguageParserFixture.cs b/src/NzbDrone.Core.Test/ParserTests/LanguageParserFixture.cs index 9d0ffddbc..3d08c1aaa 100644 --- a/src/NzbDrone.Core.Test/ParserTests/LanguageParserFixture.cs +++ b/src/NzbDrone.Core.Test/ParserTests/LanguageParserFixture.cs @@ -393,6 +393,14 @@ public void should_parse_language_spanish_latino(string postTitle) result.First().Id.Should().Be(Language.SpanishLatino.Id); } + [TestCase("Movie.Title.1994.Catalan.1080p.XviD-LOL")] + public void should_parse_language_catalan(string postTitle) + { + var result = Parser.Parser.ParseMovieTitle(postTitle, true); + + result.Languages.Should().BeEquivalentTo(Language.Catalan); + } + [TestCase("Movie.Title.en.sub")] [TestCase("Movie Title.eng.sub")] [TestCase("Movie.Title.eng.forced.sub")] diff --git a/src/NzbDrone.Core/Languages/Language.cs b/src/NzbDrone.Core/Languages/Language.cs index b91422a36..3cf57ce71 100644 --- a/src/NzbDrone.Core/Languages/Language.cs +++ b/src/NzbDrone.Core/Languages/Language.cs @@ -108,6 +108,13 @@ public override bool Equals(object obj) public static Language Slovak => new Language(35, "Slovak"); public static Language Latvian => new Language(36, "Latvian"); public static Language SpanishLatino => new Language(37, "Spanish (Latino)"); + public static Language Catalan => new Language(38, "Catalan"); + public static Language Croatian => new Language(39, "Croatian"); + public static Language Serbian => new Language(40, "Serbian"); + public static Language Bosnian => new Language(41, "Bosnian"); + public static Language Estonian => new Language(42, "Estonian"); + public static Language Tamil => new Language(43, "Tamil"); + public static Language Indonesian => new Language(44, "Indonesian"); public static Language Any => new Language(-1, "Any"); public static Language Original => new Language(-2, "Original"); @@ -155,6 +162,13 @@ public static List All Slovak, Latvian, SpanishLatino, + Catalan, + Croatian, + Serbian, + Bosnian, + Estonian, + Tamil, + Indonesian, Any, Original }; diff --git a/src/NzbDrone.Core/Parser/IsoLanguages.cs b/src/NzbDrone.Core/Parser/IsoLanguages.cs index 705543a0f..42d547d03 100644 --- a/src/NzbDrone.Core/Parser/IsoLanguages.cs +++ b/src/NzbDrone.Core/Parser/IsoLanguages.cs @@ -45,7 +45,14 @@ public static class IsoLanguages new IsoLanguage("lt", "", "lit", "Lithuanian", Language.Lithuanian), new IsoLanguage("sk", "", "slk", "Slovak", Language.Slovak), new IsoLanguage("lv", "", "lav", "Latvian", Language.Latvian), - new IsoLanguage("es", "mx", "spa", "Spanish (Latino)", Language.SpanishLatino) + new IsoLanguage("es", "mx", "spa", "Spanish (Latino)", Language.SpanishLatino), + new IsoLanguage("ca", "", "cat", "Catalan", Language.Catalan), + new IsoLanguage("hr", "", "hrv", "Croatian", Language.Croatian), + new IsoLanguage("sr", "", "srp", "Serbian", Language.Serbian), + new IsoLanguage("bs", "", "bos", "Bosnian", Language.Bosnian), + new IsoLanguage("et", "", "est", "Estonian", Language.Estonian), + new IsoLanguage("ta", "", "tam", "Tamil", Language.Tamil), + new IsoLanguage("id", "", "ind", "Indonesian", Language.Indonesian) }; public static IsoLanguage Find(string isoCode) diff --git a/src/NzbDrone.Core/Parser/LanguageParser.cs b/src/NzbDrone.Core/Parser/LanguageParser.cs index 787b2a033..c5051beb3 100644 --- a/src/NzbDrone.Core/Parser/LanguageParser.cs +++ b/src/NzbDrone.Core/Parser/LanguageParser.cs @@ -202,6 +202,16 @@ public static List ParseLanguages(string title) languages.Add(Language.SpanishLatino); } + if (lowerTitle.Contains("catalan")) + { + languages.Add(Language.Catalan); + } + + if (lowerTitle.Contains("tamil")) + { + languages.Add(Language.Tamil); + } + // Case sensitive var caseSensitiveMatchs = CaseSensitiveLanguageRegex.Matches(title);