Fixed: Delay profile being ignored for non-revision upgrades

pull/1689/head
Qstick 4 years ago
parent dbdc805e80
commit 5bca13b21f

@ -48,7 +48,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.RssSync
_profile.Items = new List<QualityProfileQualityItem>(); _profile.Items = new List<QualityProfileQualityItem>();
_profile.Items.Add(new QualityProfileQualityItem { Allowed = true, Quality = Quality.MP3_256 }); _profile.Items.Add(new QualityProfileQualityItem { Allowed = true, Quality = Quality.MP3_256 });
_profile.Items.Add(new QualityProfileQualityItem { Allowed = true, Quality = Quality.MP3_320 }); _profile.Items.Add(new QualityProfileQualityItem { Allowed = true, Quality = Quality.MP3_320 });
_profile.Items.Add(new QualityProfileQualityItem { Allowed = true, Quality = Quality.MP3_320 }); _profile.Items.Add(new QualityProfileQualityItem { Allowed = true, Quality = Quality.FLAC });
_profile.Cutoff = Quality.MP3_320.Id; _profile.Cutoff = Quality.MP3_320.Id;
@ -185,10 +185,10 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.RssSync
[Test] [Test]
public void should_be_false_when_release_is_proper_for_existing_album_of_different_quality() public void should_be_false_when_release_is_proper_for_existing_album_of_different_quality()
{ {
_remoteAlbum.ParsedAlbumInfo.Quality = new QualityModel(Quality.MP3_256, new Revision(version: 2)); _remoteAlbum.ParsedAlbumInfo.Quality = new QualityModel(Quality.MP3_320, new Revision(version: 2));
_remoteAlbum.Release.PublishDate = DateTime.UtcNow; _remoteAlbum.Release.PublishDate = DateTime.UtcNow;
GivenExistingFile(new QualityModel(Quality.MP3_192)); GivenExistingFile(new QualityModel(Quality.MP3_256));
_delayProfile.UsenetDelay = 720; _delayProfile.UsenetDelay = 720;

@ -64,16 +64,13 @@ namespace NzbDrone.Core.DecisionEngine.Specifications.RssSync
{ {
var trackFiles = _mediaFileService.GetFilesByAlbum(album.Id); var trackFiles = _mediaFileService.GetFilesByAlbum(album.Id);
if (trackFiles.Any()) foreach (var file in trackFiles)
{ {
var currentQualities = trackFiles.Select(c => c.Quality).Distinct().ToList(); var currentQuality = file.Quality;
var newQuality = subject.ParsedAlbumInfo.Quality;
var upgradable = _upgradableSpecification.IsUpgradable(qualityProfile, var qualityCompare = qualityComparer.Compare(newQuality?.Quality, currentQuality.Quality);
currentQualities,
_preferredWordServiceCalculator.Calculate(subject.Artist, trackFiles[0].GetSceneOrFileName()), if (qualityCompare == 0 && newQuality?.Revision.CompareTo(currentQuality.Revision) > 0)
subject.ParsedAlbumInfo.Quality,
subject.PreferredWordScore);
if (upgradable)
{ {
_logger.Debug("New quality is a better revision for existing quality, skipping delay"); _logger.Debug("New quality is a better revision for existing quality, skipping delay");
return Decision.Accept(); return Decision.Accept();

Loading…
Cancel
Save