diff --git a/src/NzbDrone.Core.Test/ParserTests/QualityParserFixture.cs b/src/NzbDrone.Core.Test/ParserTests/QualityParserFixture.cs index 81c0cb20f..17d4e59ea 100644 --- a/src/NzbDrone.Core.Test/ParserTests/QualityParserFixture.cs +++ b/src/NzbDrone.Core.Test/ParserTests/QualityParserFixture.cs @@ -62,7 +62,6 @@ namespace NzbDrone.Core.Test.ParserTests ParseAndVerifyQuality(title, Source.TV, proper, Resolution.R480p); } - [TestCase("The.Shield.S01E13.NTSC.x264-CtrlSD", false)] [TestCase("The.Girls.Next.Door.S03E06.DVDRip.XviD-WiDE", false)] [TestCase("The.Girls.Next.Door.S03E06.DVD.Rip.XviD-WiDE", false)] [TestCase("the.shield.1x13.circles.ws.xvidvd-tns", false)] @@ -73,6 +72,15 @@ namespace NzbDrone.Core.Test.ParserTests ParseAndVerifyQuality(title, Source.DVD, proper, Resolution.R480p); } + [TestCase("Barbie.Fairytopia.Magic.of.the.Rainbow.2007.DVD5.NTSC", false)] + [TestCase("Barbie.Fairytopia.Magic.of.the.Rainbow.2007.DVD9.NTSC", false)] + [TestCase("Barbie.Fairytopia.Magic.of.the.Rainbow.2007.DVDR.NTSC", false)] + [TestCase("Barbie.Fairytopia.Magic.of.the.Rainbow.2007.DVD-R.NTSC", false)] + public void should_parse_dvdr_quality(string title, bool proper) + { + ParseAndVerifyQuality(title, Source.DVD, proper, Resolution.R480p, Modifier.REMUX); + } + [TestCase("Elementary.S01E10.The.Leviathan.480p.WEB-DL.x264-mSD", false)] [TestCase("Glee.S04E10.Glee.Actually.480p.WEB-DL.x264-mSD", false)] [TestCase("The.Big.Bang.Theory.S06E11.The.Santa.Simulation.480p.WEB-DL.x264-mSD", false)] diff --git a/src/NzbDrone.Core/Parser/QualityParser.cs b/src/NzbDrone.Core/Parser/QualityParser.cs index e8a6e51eb..0894a1637 100644 --- a/src/NzbDrone.Core/Parser/QualityParser.cs +++ b/src/NzbDrone.Core/Parser/QualityParser.cs @@ -21,8 +21,8 @@ namespace NzbDrone.Core.Parser (?HDTV)| (?BDRip)| (?BRRip)| - (?DVD-R|DVDR)| - (?DVD|DVDRip|NTSC|PAL|xvidvd)| + (?DVD-R|DVDR|DVD5|DVD9)| + (?DVD(?!-R)|DVDRip|xvidvd)| (?WS[-_. ]DSR|DSR)| (?R[0-9]{1}|REGIONAL)| (?SCR|SCREENER|DVDSCR|DVDSCREENER)| @@ -317,6 +317,12 @@ namespace NzbDrone.Core.Parser } } + if (sourceMatch.Groups["dvdr"].Success) + { + result.Quality = Quality.DVDR; + return result; + } + if (sourceMatch.Groups["dvd"].Success) { result.Quality = Quality.DVD;