Fixed: Delay profile being ignored for non-revision upgrades

Signed-off-by: Robin Dadswell <robin@dadswell.email>
This commit is contained in:
Qstick 2020-09-06 22:16:30 -04:00
parent e30c078962
commit 17b5187729
2 changed files with 12 additions and 8 deletions

View file

@ -185,10 +185,17 @@ public void should_be_true_when_release_is_a_real_for_existing_album()
[Test]
public void should_be_false_when_release_is_proper_for_existing_album_of_different_quality()
{
<<<<<<< HEAD
_remoteBook.ParsedBookInfo.Quality = new QualityModel(Quality.AZW3, new Revision(version: 2));
_remoteBook.Release.PublishDate = DateTime.UtcNow;
GivenExistingFile(new QualityModel(Quality.PDF));
=======
_remoteAlbum.ParsedAlbumInfo.Quality = new QualityModel(Quality.MP3_320, new Revision(version: 2));
_remoteAlbum.Release.PublishDate = DateTime.UtcNow;
GivenExistingFile(new QualityModel(Quality.MP3_256));
>>>>>>> Fixed: Delay profile being ignored for non-revision upgrades
_delayProfile.UsenetDelay = 720;

View file

@ -64,16 +64,13 @@ public virtual Decision IsSatisfiedBy(RemoteBook subject, SearchCriteriaBase sea
{
var bookFiles = _mediaFileService.GetFilesByBook(book.Id);
if (bookFiles.Any())
foreach (var file in bookFiles)
{
var currentQualities = bookFiles.Select(c => c.Quality).Distinct().ToList();
var currentQuality = file.Quality;
var newQuality = subject.ParsedBookInfo.Quality;
var qualityCompare = qualityComparer.Compare(newQuality?.Quality, currentQuality.Quality);
var upgradable = _upgradableSpecification.IsUpgradable(qualityProfile,
currentQualities,
_preferredWordServiceCalculator.Calculate(subject.Author, bookFiles[0].GetSceneOrFileName()),
subject.ParsedBookInfo.Quality,
subject.PreferredWordScore);
if (upgradable)
if (qualityCompare == 0 && newQuality?.Revision.CompareTo(currentQuality.Revision) > 0)
{
_logger.Debug("New quality is a better revision for existing quality, skipping delay");
return Decision.Accept();