diff --git a/src/NzbDrone.Core.Test/ParserTests/LanguageParserFixture.cs b/src/NzbDrone.Core.Test/ParserTests/LanguageParserFixture.cs index 9aabfa820..5e0b38cef 100644 --- a/src/NzbDrone.Core.Test/ParserTests/LanguageParserFixture.cs +++ b/src/NzbDrone.Core.Test/ParserTests/LanguageParserFixture.cs @@ -1,5 +1,3 @@ -using System; -using System.Linq; using FluentAssertions; using NUnit.Framework; using NzbDrone.Core.Parser; @@ -42,6 +40,8 @@ public class LanguageParserFixture : CoreTest [TestCase("The.Trip.To.Italy.S02E01.720p.HDTV.x264-TLA", Language.English)] [TestCase("Revolution S01E03 No Quarter 2012 WEB-DL 720p Nordic-philipo mkv", Language.Norwegian)] [TestCase("Extant.S01E01.VOSTFR.HDTV.x264-RiDERS", Language.French)] + [TestCase("Constantine.2014.S01E01.WEBRiP.H264.AAC.5.1-NL.SUBS", Language.Dutch)] + [TestCase("Elementary - S02E16 - Kampfhaehne - mkv - by Videomann", Language.German)] public void should_parse_language(string postTitle, Language language) { var result = Parser.Parser.ParseTitle(postTitle); diff --git a/src/NzbDrone.Core/Parser/Parser.cs b/src/NzbDrone.Core/Parser/Parser.cs index 01706f069..ef26e2590 100644 --- a/src/NzbDrone.Core/Parser/Parser.cs +++ b/src/NzbDrone.Core/Parser/Parser.cs @@ -144,7 +144,7 @@ public static class Parser private static readonly Regex MultiPartCleanupRegex = new Regex(@"\(\d+\)$", RegexOptions.Compiled); - private static readonly Regex LanguageRegex = new Regex(@"(?:\W|_)(?\bita\b|italian)|(?german\b)|(?flemish)|(?greek)|(?(?:\W|_)(?:FR|VOSTFR)(?:\W|_))|(?\brus\b)", + private static readonly Regex LanguageRegex = new Regex(@"(?:\W|_)(?\bita\b|italian)|(?german\b|videomann)|(?flemish)|(?greek)|(?(?:\W|_)(?:FR|VOSTFR)(?:\W|_))|(?\brus\b)|(?nl\W?subs?)", RegexOptions.IgnoreCase | RegexOptions.Compiled); private static readonly Regex YearInTitleRegex = new Regex(@"^(?.+?)(?:\W|_)?(?<year>\d{4})", @@ -527,9 +527,6 @@ private static Language ParseLanguage(string title) if (lowerTitle.Contains("dutch")) return Language.Dutch; - if (lowerTitle.Contains("nlsub")) - return Language.Dutch; - if (lowerTitle.Contains("japanese")) return Language.Japanese; @@ -589,6 +586,9 @@ private static Language ParseLanguage(string title) if (match.Groups["russian"].Success) return Language.Russian; + if (match.Groups["dutch"].Success) + return Language.Dutch; + return Language.English; }