Build download requests from indexer implementation

(cherry picked from commit a0b08f6c6f106d92cdb12fbb959dd2605c22fe6a)
This commit is contained in:
Bogdan
2023-04-30 07:09:11 +03:00
parent 1978a726bb
commit 7a7039b1f7
26 changed files with 132 additions and 91 deletions
@@ -22,6 +22,7 @@ namespace NzbDrone.Core.Download
{
private readonly IProvideDownloadClient _downloadClientProvider;
private readonly IDownloadClientStatusService _downloadClientStatusService;
private readonly IIndexerFactory _indexerFactory;
private readonly IIndexerStatusService _indexerStatusService;
private readonly IRateLimitService _rateLimitService;
private readonly IEventAggregator _eventAggregator;
@@ -30,6 +31,7 @@ namespace NzbDrone.Core.Download
public DownloadService(IProvideDownloadClient downloadClientProvider,
IDownloadClientStatusService downloadClientStatusService,
IIndexerFactory indexerFactory,
IIndexerStatusService indexerStatusService,
IRateLimitService rateLimitService,
IEventAggregator eventAggregator,
@@ -38,6 +40,7 @@ namespace NzbDrone.Core.Download
{
_downloadClientProvider = downloadClientProvider;
_downloadClientStatusService = downloadClientStatusService;
_indexerFactory = indexerFactory;
_indexerStatusService = indexerStatusService;
_rateLimitService = rateLimitService;
_eventAggregator = eventAggregator;
@@ -60,6 +63,7 @@ namespace NzbDrone.Core.Download
// Get the seed configuration for this release.
remoteBook.SeedConfiguration = _seedConfigProvider.GetSeedConfiguration(remoteBook);
var indexer = _indexerFactory.GetInstance(_indexerFactory.Get(remoteBook.Release.IndexerId));
// Limit grabs to 2 per second.
if (remoteBook.Release.DownloadUrl.IsNotNullOrWhiteSpace() && !remoteBook.Release.DownloadUrl.StartsWith("magnet:"))
@@ -71,7 +75,7 @@ namespace NzbDrone.Core.Download
string downloadClientId;
try
{
downloadClientId = downloadClient.Download(remoteBook);
downloadClientId = downloadClient.Download(remoteBook, indexer);
_downloadClientStatusService.RecordSuccess(downloadClient.Definition.Id);
_indexerStatusService.RecordSuccess(remoteBook.Release.IndexerId);
}