From 4f4e6c494d139b301c604b01b4a486f545fcaf11 Mon Sep 17 00:00:00 2001 From: Leonardo Galli Date: Mon, 15 Oct 2018 09:53:33 +0200 Subject: [PATCH] Fixed: MPEG-2 remuxes being detected as "Raw-HD" quality Fixes #2986 --- .../ParserTests/QualityParserFixture.cs | 7 ++++++- src/NzbDrone.Core/Parser/QualityParser.cs | 14 +++++++------- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/src/NzbDrone.Core.Test/ParserTests/QualityParserFixture.cs b/src/NzbDrone.Core.Test/ParserTests/QualityParserFixture.cs index 7e50e6946..97772a131 100644 --- a/src/NzbDrone.Core.Test/ParserTests/QualityParserFixture.cs +++ b/src/NzbDrone.Core.Test/ParserTests/QualityParserFixture.cs @@ -236,6 +236,8 @@ namespace NzbDrone.Core.Test.ParserTests [TestCase("Contract.to.Kill.2016.REMUX.1080p.BluRay.AVC.DTS-HD.MA.5.1-iFT")] [TestCase("27.Dresses.2008.REMUX.1080p.Bluray.AVC.DTS-HR.MA.5.1-LEGi0N")] [TestCase("27.Dresses.2008.BDREMUX.1080p.Bluray.AVC.DTS-HR.MA.5.1-LEGi0N")] + [TestCase("The.Stoning.of.Soraya.M.2008.USA.BluRay.Remux.1080p.MPEG-2.DD.5.1-TDD")] + [TestCase("Wildling.2018.1080p.BluRay.REMUX.MPEG-2.DTS-HD.MA.5.1-EPSiLON")] public void should_parse_remux1080p_quality(string title) { ParseAndVerifyQuality(title, Source.BLURAY, false, Resolution.R1080P, Modifier.REMUX); @@ -344,7 +346,10 @@ namespace NzbDrone.Core.Test.ParserTests private void ParseAndVerifyQuality(string title, Source source, bool proper, Resolution resolution, Modifier modifier = Modifier.NONE) { var result = QualityParser.ParseQuality(title); - result.Resolution.Should().Be(resolution); + if (resolution != Resolution.Unknown) + { + result.Resolution.Should().Be(resolution); + } result.Source.Should().Be(source); if (modifier != Modifier.NONE) { diff --git a/src/NzbDrone.Core/Parser/QualityParser.cs b/src/NzbDrone.Core/Parser/QualityParser.cs index 1b635cd05..e498b2d5e 100644 --- a/src/NzbDrone.Core/Parser/QualityParser.cs +++ b/src/NzbDrone.Core/Parser/QualityParser.cs @@ -104,13 +104,6 @@ namespace NzbDrone.Core.Parser } } - if (RawHDRegex.IsMatch(normalizedName)) - { - result.Modifier = Modifier.RAWHD; - result.Source = Source.TV; - return result; - } - var sourceMatch = SourceRegex.Matches(normalizedName).OfType().LastOrDefault(); var resolution = ParseResolution(normalizedName); var codecRegex = CodecRegex.Match(normalizedName); @@ -129,6 +122,13 @@ namespace NzbDrone.Core.Parser result.Source = Source.BLURAY; return result; //We found remux! } + + if (RawHDRegex.IsMatch(normalizedName) && result.Modifier != Modifier.BRDISK) + { + result.Modifier = Modifier.RAWHD; + result.Source = Source.TV; + return result; + } if (sourceMatch != null && sourceMatch.Success) {