From cf7ce9804fc6e0ab5e376e94fc43871e9d655682 Mon Sep 17 00:00:00 2001 From: Mark McDowall Date: Wed, 17 May 2017 21:15:21 -0700 Subject: [PATCH] Fixed: Ignore file quality matching release quality for unknown quality releases --- .../Specifications/GrabbedReleaseQualityFixture.cs | 14 ++++++++++++++ .../GrabbedReleaseQualitySpecification.cs | 3 ++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/NzbDrone.Core.Test/MediaFiles/EpisodeImport/Specifications/GrabbedReleaseQualityFixture.cs b/src/NzbDrone.Core.Test/MediaFiles/EpisodeImport/Specifications/GrabbedReleaseQualityFixture.cs index 4a3ea1a7c..ba7d0e1d2 100644 --- a/src/NzbDrone.Core.Test/MediaFiles/EpisodeImport/Specifications/GrabbedReleaseQualityFixture.cs +++ b/src/NzbDrone.Core.Test/MediaFiles/EpisodeImport/Specifications/GrabbedReleaseQualityFixture.cs @@ -78,6 +78,20 @@ namespace NzbDrone.Core.Test.MediaFiles.EpisodeImport.Specifications Subject.IsSatisfiedBy(_localEpisode, _downloadClientItem).Accepted.Should().BeTrue(); } + [Test] + public void should_be_accepted_if_grabbed_history_quality_is_unknown() + { + var history = Builder.CreateListOfSize(1) + .All() + .With(h => h.EventType = HistoryEventType.Grabbed) + .With(h => h.Quality = new QualityModel(Quality.Unknown)) + .BuildList(); + + GivenHistory(history); + + Subject.IsSatisfiedBy(_localEpisode, _downloadClientItem).Accepted.Should().BeTrue(); + } + [Test] public void should_be_accepted_if_grabbed_history_quality_matches() { diff --git a/src/NzbDrone.Core/MediaFiles/EpisodeImport/Specifications/GrabbedReleaseQualitySpecification.cs b/src/NzbDrone.Core/MediaFiles/EpisodeImport/Specifications/GrabbedReleaseQualitySpecification.cs index 0b12d6d41..1ea418d74 100644 --- a/src/NzbDrone.Core/MediaFiles/EpisodeImport/Specifications/GrabbedReleaseQualitySpecification.cs +++ b/src/NzbDrone.Core/MediaFiles/EpisodeImport/Specifications/GrabbedReleaseQualitySpecification.cs @@ -5,6 +5,7 @@ using NzbDrone.Core.DecisionEngine; using NzbDrone.Core.Download; using NzbDrone.Core.History; using NzbDrone.Core.Parser.Model; +using NzbDrone.Core.Qualities; namespace NzbDrone.Core.MediaFiles.EpisodeImport.Specifications { @@ -46,7 +47,7 @@ namespace NzbDrone.Core.MediaFiles.EpisodeImport.Specifications foreach (var item in grabbedHistory) { - if (item.Quality != localEpisode.Quality) + if (item.Quality.Quality != Quality.Unknown && item.Quality != localEpisode.Quality) { _logger.Debug("Quality for grabbed release ({0}) does not match the quality of the file ({1})", item.Quality, localEpisode.Quality); return Decision.Reject("File quality does not match quality of the grabbed release");