using System; using System.Collections.Generic; using NzbDrone.Core.DecisionEngine; using Readarr.Http.REST; namespace Readarr.Api.V1.Indexers { public abstract class ReleaseControllerBase : RestController { protected override ReleaseResource GetResourceById(int id) { throw new NotImplementedException(); } protected virtual List MapDecisions(IEnumerable decisions) { var result = new List(); foreach (var downloadDecision in decisions) { var release = MapDecision(downloadDecision, result.Count); result.Add(release); } return result; } protected virtual ReleaseResource MapDecision(DownloadDecision decision, int initialWeight) { var release = decision.ToResource(); release.ReleaseWeight = initialWeight; if (decision.RemoteBook.Author != null) { release.QualityWeight = decision.RemoteBook .Author .QualityProfile.Value.GetIndex(release.Quality.Quality).Index * 100; } release.QualityWeight += release.Quality.Revision.Real * 10; release.QualityWeight += release.Quality.Revision.Version; return release; } } }