Dedupe releases based on indexer priority
This commit is contained in:
parent
3d6cf24d7c
commit
38c717bcef
|
@ -548,9 +548,10 @@ namespace NzbDrone.Core.IndexerSearch
|
||||||
|
|
||||||
private List<DownloadDecision> DeDupeDecisions(List<DownloadDecision> decisions)
|
private List<DownloadDecision> DeDupeDecisions(List<DownloadDecision> decisions)
|
||||||
{
|
{
|
||||||
// De-dupe reports by guid so duplicate results aren't returned. Pick the one with the least rejections.
|
// De-dupe reports by guid so duplicate results aren't returned. Pick the one with the least rejections and higher indexer priority.
|
||||||
|
return decisions.GroupBy(d => d.RemoteEpisode.Release.Guid)
|
||||||
return decisions.GroupBy(d => d.RemoteEpisode.Release.Guid).Select(d => d.OrderBy(v => v.Rejections.Count()).First()).ToList();
|
.Select(d => d.OrderBy(v => v.Rejections.Count()).ThenBy(v => v.RemoteEpisode?.Release?.IndexerPriority ?? IndexerDefinition.DefaultPriority).First())
|
||||||
|
.ToList();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,6 +4,13 @@ namespace NzbDrone.Core.Indexers
|
||||||
{
|
{
|
||||||
public class IndexerDefinition : ProviderDefinition
|
public class IndexerDefinition : ProviderDefinition
|
||||||
{
|
{
|
||||||
|
public const int DefaultPriority = 25;
|
||||||
|
|
||||||
|
public IndexerDefinition()
|
||||||
|
{
|
||||||
|
Priority = DefaultPriority;
|
||||||
|
}
|
||||||
|
|
||||||
public bool EnableRss { get; set; }
|
public bool EnableRss { get; set; }
|
||||||
public bool EnableAutomaticSearch { get; set; }
|
public bool EnableAutomaticSearch { get; set; }
|
||||||
public bool EnableInteractiveSearch { get; set; }
|
public bool EnableInteractiveSearch { get; set; }
|
||||||
|
@ -11,7 +18,7 @@ namespace NzbDrone.Core.Indexers
|
||||||
public DownloadProtocol Protocol { get; set; }
|
public DownloadProtocol Protocol { get; set; }
|
||||||
public bool SupportsRss { get; set; }
|
public bool SupportsRss { get; set; }
|
||||||
public bool SupportsSearch { get; set; }
|
public bool SupportsSearch { get; set; }
|
||||||
public int Priority { get; set; } = 25;
|
public int Priority { get; set; }
|
||||||
public int SeasonSearchMaximumSingleEpisodeAge { get; set; }
|
public int SeasonSearchMaximumSingleEpisodeAge { get; set; }
|
||||||
|
|
||||||
public override bool Enable => EnableRss || EnableAutomaticSearch || EnableInteractiveSearch;
|
public override bool Enable => EnableRss || EnableAutomaticSearch || EnableInteractiveSearch;
|
||||||
|
|
Loading…
Reference in New Issue