mirror of
https://github.com/Radarr/Radarr.git
synced 2026-04-23 22:25:14 -04:00
Fixed: Respect Quality cutoff if Custom Format cutoff isn't met
(cherry picked from commit 6f51e72d0073444b441bee5508322cc9e52e98e4)
This commit is contained in:
@@ -55,29 +55,44 @@ namespace NzbDrone.Core.DecisionEngine.Specifications
|
||||
continue;
|
||||
}
|
||||
|
||||
var customFormats = _formatService.ParseCustomFormat(remoteMovie, (long)queueItem.Size);
|
||||
var queuedItemCustomFormats = _formatService.ParseCustomFormat(remoteMovie, (long)queueItem.Size);
|
||||
|
||||
_logger.Debug("Checking if existing release in queue meets cutoff. Queued quality is: {0} - {1}",
|
||||
remoteMovie.ParsedMovieInfo.Quality,
|
||||
customFormats.ConcatToString());
|
||||
queuedItemCustomFormats.ConcatToString());
|
||||
|
||||
if (!_upgradableSpecification.CutoffNotMet(qualityProfile,
|
||||
remoteMovie.ParsedMovieInfo.Quality,
|
||||
customFormats,
|
||||
subject.ParsedMovieInfo.Quality))
|
||||
remoteMovie.ParsedMovieInfo.Quality,
|
||||
queuedItemCustomFormats,
|
||||
subject.ParsedMovieInfo.Quality))
|
||||
{
|
||||
return Decision.Reject("Quality for release in queue already meets cutoff: {0}", remoteMovie.ParsedMovieInfo.Quality);
|
||||
}
|
||||
|
||||
_logger.Debug("Checking if release is higher quality than queued release. Queued quality is: {0}", remoteMovie.ParsedMovieInfo.Quality);
|
||||
|
||||
if (!_upgradableSpecification.IsUpgradable(qualityProfile,
|
||||
remoteMovie.ParsedMovieInfo.Quality,
|
||||
remoteMovie.CustomFormats,
|
||||
subject.ParsedMovieInfo.Quality,
|
||||
subject.CustomFormats))
|
||||
var upgradeableRejectReason = _upgradableSpecification.IsUpgradable(qualityProfile,
|
||||
remoteMovie.ParsedMovieInfo.Quality,
|
||||
queuedItemCustomFormats,
|
||||
subject.ParsedMovieInfo.Quality,
|
||||
subject.CustomFormats);
|
||||
|
||||
switch (upgradeableRejectReason)
|
||||
{
|
||||
return Decision.Reject("Quality for release in queue is of equal or higher preference: {0}", remoteMovie.ParsedMovieInfo.Quality);
|
||||
case UpgradeableRejectReason.BetterQuality:
|
||||
return Decision.Reject("Release in queue on disk is of equal or higher preference: {0}", remoteMovie.ParsedMovieInfo.Quality);
|
||||
|
||||
case UpgradeableRejectReason.BetterRevision:
|
||||
return Decision.Reject("Release in queue on disk is of equal or higher revision: {0}", remoteMovie.ParsedMovieInfo.Quality.Revision);
|
||||
|
||||
case UpgradeableRejectReason.QualityCutoff:
|
||||
return Decision.Reject("Release in queue on disk meets quality cutoff: {0}", qualityProfile.Items[qualityProfile.GetIndex(qualityProfile.Cutoff).Index]);
|
||||
|
||||
case UpgradeableRejectReason.CustomFormatCutoff:
|
||||
return Decision.Reject("Release in queue on disk meets Custom Format cutoff: {0}", qualityProfile.CutoffFormatScore);
|
||||
|
||||
case UpgradeableRejectReason.CustomFormatScore:
|
||||
return Decision.Reject("Release in queue on disk has an equal or higher custom format score: {0}", qualityProfile.CalculateCustomFormatScore(queuedItemCustomFormats));
|
||||
}
|
||||
|
||||
_logger.Debug("Checking if profiles allow upgrading. Queued: {0}", remoteMovie.ParsedMovieInfo.Quality);
|
||||
|
||||
Reference in New Issue
Block a user