Fixed: Cutoff Specification not Respecting Profile Order (#660)

* Fixed: Cutoff Specification not Repsecting Profile Order

* Fixed: Incorrect wording in UpgradeAllowed logging

* Fixed: Change Logic to update if upgrade for any, downgrade for none.

* Fixed: Removed Double Preferred Word Logic

* New: Add Test Cases to Disk Upgrade Spec

* Fixed: Cleanup UpgradableSpecification

* Add ConcatToString extension and fix logging

* Fixed: Enum Naming, Commas
This commit is contained in:
Qstick
2019-03-21 18:02:16 -04:00
committed by GitHub
parent 0ebaa90f54
commit 4d8bcd12e3
16 changed files with 602 additions and 169 deletions
@@ -69,11 +69,13 @@ namespace NzbDrone.Core.DecisionEngine.Specifications.RssSync
if (trackFiles.Any())
{
var lowestQuality = trackFiles.Select(c => c.Quality).OrderBy(c => c.Quality.Id).First();
var currentQualities = trackFiles.Select(c => c.Quality).Distinct().ToList();
var currentLanguages = trackFiles.Select(c => c.Language).Distinct().ToList();
var upgradable = _upgradableSpecification.IsUpgradable(qualityProfile,
languageProfile,
lowestQuality,
trackFiles[0].Language,
currentQualities,
currentLanguages,
_preferredWordServiceCalculator.Calculate(subject.Artist, trackFiles[0].GetSceneOrFileName()),
subject.ParsedAlbumInfo.Quality,
subject.ParsedAlbumInfo.Language,
@@ -1,11 +1,14 @@
using System;
using System.Collections.Generic;
using NLog;
using NzbDrone.Common.Extensions;
using NzbDrone.Core.Configuration;
using NzbDrone.Core.History;
using NzbDrone.Core.IndexerSearch.Definitions;
using NzbDrone.Core.Languages;
using NzbDrone.Core.Parser.Model;
using NzbDrone.Core.Profiles.Releases;
using NzbDrone.Core.Qualities;
namespace NzbDrone.Core.DecisionEngine.Specifications.RssSync
{
@@ -59,8 +62,8 @@ namespace NzbDrone.Core.DecisionEngine.Specifications.RssSync
var cutoffUnmet = _upgradableSpecification.CutoffNotMet(
subject.Artist.QualityProfile,
subject.Artist.LanguageProfile,
mostRecent.Quality,
mostRecent.Language,
new List<QualityModel> { mostRecent.Quality },
new List<Language> { mostRecent.Language },
preferredWordScore,
subject.ParsedAlbumInfo.Quality,
subject.PreferredWordScore);
@@ -68,8 +71,8 @@ namespace NzbDrone.Core.DecisionEngine.Specifications.RssSync
var upgradeable = _upgradableSpecification.IsUpgradable(
subject.Artist.QualityProfile,
subject.Artist.LanguageProfile,
mostRecent.Quality,
mostRecent.Language,
new List<QualityModel> { mostRecent.Quality },
new List<Language> { mostRecent.Language },
preferredWordScore,
subject.ParsedAlbumInfo.Quality,
subject.ParsedAlbumInfo.Language,