1
0
mirror of https://github.com/Radarr/Radarr.git synced 2026-04-25 22:37:27 -04:00

New: Add support for prioritizing indexers (#5000)

This commit is contained in:
nitsua
2020-09-12 02:25:32 -04:00
committed by GitHub
parent 4fafdcabb7
commit 9a46d5165c
14 changed files with 125 additions and 18 deletions
@@ -32,6 +32,7 @@ namespace NzbDrone.Core.DecisionEngine
CompareQuality,
CompareCustomFormatScore,
CompareProtocol,
CompareIndexerPriority,
CompareIndexerFlags,
ComparePeersIfTorrent,
CompareAgeIfUsenet,
@@ -50,11 +51,22 @@ namespace NzbDrone.Core.DecisionEngine
return leftValue.CompareTo(rightValue);
}
private int CompareByReverse<TSubject, TValue>(TSubject left, TSubject right, Func<TSubject, TValue> funcValue)
where TValue : IComparable<TValue>
{
return CompareBy(left, right, funcValue) * -1;
}
private int CompareAll(params int[] comparers)
{
return comparers.Select(comparer => comparer).FirstOrDefault(result => result != 0);
}
private int CompareIndexerPriority(DownloadDecision x, DownloadDecision y)
{
return CompareByReverse(x.RemoteMovie.Release, y.RemoteMovie.Release, release => release.IndexerPriority);
}
private int CompareQuality(DownloadDecision x, DownloadDecision y)
{
if (_configService.DownloadPropersAndRepacks == ProperDownloadTypes.DoNotPrefer)