diff --git a/src/NzbDrone.Core/Download/Clients/Aria2/Aria2.cs b/src/NzbDrone.Core/Download/Clients/Aria2/Aria2.cs index cdf869695..ae076c14b 100644 --- a/src/NzbDrone.Core/Download/Clients/Aria2/Aria2.cs +++ b/src/NzbDrone.Core/Download/Clients/Aria2/Aria2.cs @@ -5,8 +5,8 @@ using FluentValidation.Results; using NLog; using NzbDrone.Common.Disk; using NzbDrone.Common.Extensions; -using NzbDrone.Common.Http; using NzbDrone.Core.Configuration; +using NzbDrone.Core.Indexers; using NzbDrone.Core.Parser.Model; using NzbDrone.Core.Validation; @@ -22,11 +22,11 @@ namespace NzbDrone.Core.Download.Clients.Aria2 public Aria2(IAria2Proxy proxy, ITorrentFileInfoReader torrentFileInfoReader, - IHttpClient httpClient, + ISeedConfigProvider seedConfigProvider, IConfigService configService, IDiskProvider diskProvider, Logger logger) - : base(torrentFileInfoReader, httpClient, configService, diskProvider, logger) + : base(torrentFileInfoReader, seedConfigProvider, configService, diskProvider, logger) { _proxy = proxy; } diff --git a/src/NzbDrone.Core/Download/Clients/Blackhole/TorrentBlackhole.cs b/src/NzbDrone.Core/Download/Clients/Blackhole/TorrentBlackhole.cs index 5505233e5..f8fd44e97 100644 --- a/src/NzbDrone.Core/Download/Clients/Blackhole/TorrentBlackhole.cs +++ b/src/NzbDrone.Core/Download/Clients/Blackhole/TorrentBlackhole.cs @@ -6,8 +6,8 @@ using FluentValidation.Results; using NLog; using NzbDrone.Common.Disk; using NzbDrone.Common.Extensions; -using NzbDrone.Common.Http; using NzbDrone.Core.Configuration; +using NzbDrone.Core.Indexers; using NzbDrone.Core.Parser.Model; namespace NzbDrone.Core.Download.Clients.Blackhole @@ -17,11 +17,11 @@ namespace NzbDrone.Core.Download.Clients.Blackhole public override bool PreferTorrentFile => true; public TorrentBlackhole(ITorrentFileInfoReader torrentFileInfoReader, - IHttpClient httpClient, + ISeedConfigProvider seedConfigProvider, IConfigService configService, IDiskProvider diskProvider, Logger logger) - : base(torrentFileInfoReader, httpClient, configService, diskProvider, logger) + : base(torrentFileInfoReader, seedConfigProvider, configService, diskProvider, logger) { } diff --git a/src/NzbDrone.Core/Download/Clients/Deluge/Deluge.cs b/src/NzbDrone.Core/Download/Clients/Deluge/Deluge.cs index 8f862525b..ca63ba0e7 100644 --- a/src/NzbDrone.Core/Download/Clients/Deluge/Deluge.cs +++ b/src/NzbDrone.Core/Download/Clients/Deluge/Deluge.cs @@ -7,8 +7,8 @@ using FluentValidation.Results; using NLog; using NzbDrone.Common.Disk; using NzbDrone.Common.Extensions; -using NzbDrone.Common.Http; using NzbDrone.Core.Configuration; +using NzbDrone.Core.Indexers; using NzbDrone.Core.Parser.Model; using NzbDrone.Core.Validation; @@ -20,11 +20,11 @@ namespace NzbDrone.Core.Download.Clients.Deluge public Deluge(IDelugeProxy proxy, ITorrentFileInfoReader torrentFileInfoReader, - IHttpClient httpClient, + ISeedConfigProvider seedConfigProvider, IConfigService configService, IDiskProvider diskProvider, Logger logger) - : base(torrentFileInfoReader, httpClient, configService, diskProvider, logger) + : base(torrentFileInfoReader, seedConfigProvider, configService, diskProvider, logger) { _proxy = proxy; } diff --git a/src/NzbDrone.Core/Download/Clients/DownloadStation/TorrentDownloadStation.cs b/src/NzbDrone.Core/Download/Clients/DownloadStation/TorrentDownloadStation.cs index b2d89a0c7..09db5a136 100644 --- a/src/NzbDrone.Core/Download/Clients/DownloadStation/TorrentDownloadStation.cs +++ b/src/NzbDrone.Core/Download/Clients/DownloadStation/TorrentDownloadStation.cs @@ -7,9 +7,9 @@ using FluentValidation.Results; using NLog; using NzbDrone.Common.Disk; using NzbDrone.Common.Extensions; -using NzbDrone.Common.Http; using NzbDrone.Core.Configuration; using NzbDrone.Core.Download.Clients.DownloadStation.Proxies; +using NzbDrone.Core.Indexers; using NzbDrone.Core.Parser.Model; using NzbDrone.Core.ThingiProvider; using NzbDrone.Core.Validation; @@ -30,11 +30,11 @@ namespace NzbDrone.Core.Download.Clients.DownloadStation IDownloadStationInfoProxy dsInfoProxy, IDownloadStationTaskProxy dsTaskProxy, ITorrentFileInfoReader torrentFileInfoReader, - IHttpClient httpClient, + ISeedConfigProvider seedConfigProvider, IConfigService configService, IDiskProvider diskProvider, Logger logger) - : base(torrentFileInfoReader, httpClient, configService, diskProvider, logger) + : base(torrentFileInfoReader, seedConfigProvider, configService, diskProvider, logger) { _dsInfoProxy = dsInfoProxy; _dsTaskProxy = dsTaskProxy; diff --git a/src/NzbDrone.Core/Download/Clients/Flood/Flood.cs b/src/NzbDrone.Core/Download/Clients/Flood/Flood.cs index 5506edeac..73c6de8a2 100644 --- a/src/NzbDrone.Core/Download/Clients/Flood/Flood.cs +++ b/src/NzbDrone.Core/Download/Clients/Flood/Flood.cs @@ -4,9 +4,9 @@ using System.Linq; using FluentValidation.Results; using NLog; using NzbDrone.Common.Disk; -using NzbDrone.Common.Http; using NzbDrone.Core.Configuration; using NzbDrone.Core.Download.Clients.Flood.Models; +using NzbDrone.Core.Indexers; using NzbDrone.Core.Parser.Model; using NzbDrone.Core.ThingiProvider; @@ -18,11 +18,11 @@ namespace NzbDrone.Core.Download.Clients.Flood public Flood(IFloodProxy proxy, ITorrentFileInfoReader torrentFileInfoReader, - IHttpClient httpClient, + ISeedConfigProvider seedConfigProvider, IConfigService configService, IDiskProvider diskProvider, Logger logger) - : base(torrentFileInfoReader, httpClient, configService, diskProvider, logger) + : base(torrentFileInfoReader, seedConfigProvider, configService, diskProvider, logger) { _proxy = proxy; } diff --git a/src/NzbDrone.Core/Download/Clients/FreeboxDownload/TorrentFreeboxDownload.cs b/src/NzbDrone.Core/Download/Clients/FreeboxDownload/TorrentFreeboxDownload.cs index 13c992443..8f23e93b6 100644 --- a/src/NzbDrone.Core/Download/Clients/FreeboxDownload/TorrentFreeboxDownload.cs +++ b/src/NzbDrone.Core/Download/Clients/FreeboxDownload/TorrentFreeboxDownload.cs @@ -5,9 +5,9 @@ using FluentValidation.Results; using NLog; using NzbDrone.Common.Disk; using NzbDrone.Common.Extensions; -using NzbDrone.Common.Http; using NzbDrone.Core.Configuration; using NzbDrone.Core.Download.Clients.FreeboxDownload.Responses; +using NzbDrone.Core.Indexers; using NzbDrone.Core.Parser.Model; namespace NzbDrone.Core.Download.Clients.FreeboxDownload @@ -18,11 +18,11 @@ namespace NzbDrone.Core.Download.Clients.FreeboxDownload public TorrentFreeboxDownload(IFreeboxDownloadProxy proxy, ITorrentFileInfoReader torrentFileInfoReader, - IHttpClient httpClient, + ISeedConfigProvider seedConfigProvider, IConfigService configService, IDiskProvider diskProvider, Logger logger) - : base(torrentFileInfoReader, httpClient, configService, diskProvider, logger) + : base(torrentFileInfoReader, seedConfigProvider, configService, diskProvider, logger) { _proxy = proxy; } diff --git a/src/NzbDrone.Core/Download/Clients/Hadouken/Hadouken.cs b/src/NzbDrone.Core/Download/Clients/Hadouken/Hadouken.cs index f3aa2c93b..b5aa1eb06 100644 --- a/src/NzbDrone.Core/Download/Clients/Hadouken/Hadouken.cs +++ b/src/NzbDrone.Core/Download/Clients/Hadouken/Hadouken.cs @@ -4,8 +4,8 @@ using FluentValidation.Results; using NLog; using NzbDrone.Common.Disk; using NzbDrone.Common.Extensions; -using NzbDrone.Common.Http; using NzbDrone.Core.Configuration; +using NzbDrone.Core.Indexers; using NzbDrone.Core.Parser.Model; using NzbDrone.Core.Validation; @@ -17,11 +17,11 @@ namespace NzbDrone.Core.Download.Clients.Hadouken public Hadouken(IHadoukenProxy proxy, ITorrentFileInfoReader torrentFileInfoReader, - IHttpClient httpClient, + ISeedConfigProvider seedConfigProvider, IConfigService configService, IDiskProvider diskProvider, Logger logger) - : base(torrentFileInfoReader, httpClient, configService, diskProvider, logger) + : base(torrentFileInfoReader, seedConfigProvider, configService, diskProvider, logger) { _proxy = proxy; } diff --git a/src/NzbDrone.Core/Download/Clients/QBittorrent/QBittorrent.cs b/src/NzbDrone.Core/Download/Clients/QBittorrent/QBittorrent.cs index a2513ae06..6555ce6cc 100644 --- a/src/NzbDrone.Core/Download/Clients/QBittorrent/QBittorrent.cs +++ b/src/NzbDrone.Core/Download/Clients/QBittorrent/QBittorrent.cs @@ -6,8 +6,8 @@ using NLog; using NzbDrone.Common.Cache; using NzbDrone.Common.Disk; using NzbDrone.Common.Extensions; -using NzbDrone.Common.Http; using NzbDrone.Core.Configuration; +using NzbDrone.Core.Indexers; using NzbDrone.Core.Parser.Model; using NzbDrone.Core.Validation; @@ -26,12 +26,12 @@ namespace NzbDrone.Core.Download.Clients.QBittorrent public QBittorrent(IQBittorrentProxySelector proxySelector, ITorrentFileInfoReader torrentFileInfoReader, - IHttpClient httpClient, + ISeedConfigProvider seedConfigProvider, IConfigService configService, IDiskProvider diskProvider, ICacheManager cacheManager, Logger logger) - : base(torrentFileInfoReader, httpClient, configService, diskProvider, logger) + : base(torrentFileInfoReader, seedConfigProvider, configService, diskProvider, logger) { _proxySelector = proxySelector; diff --git a/src/NzbDrone.Core/Download/Clients/Transmission/Transmission.cs b/src/NzbDrone.Core/Download/Clients/Transmission/Transmission.cs index fac544a20..a2bd2bf91 100644 --- a/src/NzbDrone.Core/Download/Clients/Transmission/Transmission.cs +++ b/src/NzbDrone.Core/Download/Clients/Transmission/Transmission.cs @@ -3,8 +3,8 @@ using System.Text.RegularExpressions; using FluentValidation.Results; using NLog; using NzbDrone.Common.Disk; -using NzbDrone.Common.Http; using NzbDrone.Core.Configuration; +using NzbDrone.Core.Indexers; namespace NzbDrone.Core.Download.Clients.Transmission { @@ -12,11 +12,11 @@ namespace NzbDrone.Core.Download.Clients.Transmission { public Transmission(ITransmissionProxy proxy, ITorrentFileInfoReader torrentFileInfoReader, - IHttpClient httpClient, + ISeedConfigProvider seedConfigProvider, IConfigService configService, IDiskProvider diskProvider, Logger logger) - : base(proxy, torrentFileInfoReader, httpClient, configService, diskProvider, logger) + : base(proxy, torrentFileInfoReader, seedConfigProvider, configService, diskProvider, logger) { } diff --git a/src/NzbDrone.Core/Download/Clients/Transmission/TransmissionBase.cs b/src/NzbDrone.Core/Download/Clients/Transmission/TransmissionBase.cs index 51af63ee9..5ed105d77 100644 --- a/src/NzbDrone.Core/Download/Clients/Transmission/TransmissionBase.cs +++ b/src/NzbDrone.Core/Download/Clients/Transmission/TransmissionBase.cs @@ -4,8 +4,8 @@ using FluentValidation.Results; using NLog; using NzbDrone.Common.Disk; using NzbDrone.Common.Extensions; -using NzbDrone.Common.Http; using NzbDrone.Core.Configuration; +using NzbDrone.Core.Indexers; using NzbDrone.Core.Parser.Model; using NzbDrone.Core.Validation; @@ -17,11 +17,11 @@ namespace NzbDrone.Core.Download.Clients.Transmission public TransmissionBase(ITransmissionProxy proxy, ITorrentFileInfoReader torrentFileInfoReader, - IHttpClient httpClient, + ISeedConfigProvider seedConfigProvider, IConfigService configService, IDiskProvider diskProvider, Logger logger) - : base(torrentFileInfoReader, httpClient, configService, diskProvider, logger) + : base(torrentFileInfoReader, seedConfigProvider, configService, diskProvider, logger) { _proxy = proxy; } diff --git a/src/NzbDrone.Core/Download/Clients/Vuze/Vuze.cs b/src/NzbDrone.Core/Download/Clients/Vuze/Vuze.cs index 66e4dedf1..107b299cb 100644 --- a/src/NzbDrone.Core/Download/Clients/Vuze/Vuze.cs +++ b/src/NzbDrone.Core/Download/Clients/Vuze/Vuze.cs @@ -1,9 +1,9 @@ using FluentValidation.Results; using NLog; using NzbDrone.Common.Disk; -using NzbDrone.Common.Http; using NzbDrone.Core.Configuration; using NzbDrone.Core.Download.Clients.Transmission; +using NzbDrone.Core.Indexers; namespace NzbDrone.Core.Download.Clients.Vuze { @@ -13,11 +13,11 @@ namespace NzbDrone.Core.Download.Clients.Vuze public Vuze(ITransmissionProxy proxy, ITorrentFileInfoReader torrentFileInfoReader, - IHttpClient httpClient, + ISeedConfigProvider seedConfigProvider, IConfigService configService, IDiskProvider diskProvider, Logger logger) - : base(proxy, torrentFileInfoReader, httpClient, configService, diskProvider, logger) + : base(proxy, torrentFileInfoReader, seedConfigProvider, configService, diskProvider, logger) { } diff --git a/src/NzbDrone.Core/Download/Clients/rTorrent/RTorrent.cs b/src/NzbDrone.Core/Download/Clients/rTorrent/RTorrent.cs index e4ae67767..5218f9ebe 100644 --- a/src/NzbDrone.Core/Download/Clients/rTorrent/RTorrent.cs +++ b/src/NzbDrone.Core/Download/Clients/rTorrent/RTorrent.cs @@ -6,10 +6,10 @@ using FluentValidation.Results; using NLog; using NzbDrone.Common.Disk; using NzbDrone.Common.Extensions; -using NzbDrone.Common.Http; using NzbDrone.Core.Configuration; using NzbDrone.Core.Download.Clients.rTorrent; using NzbDrone.Core.Exceptions; +using NzbDrone.Core.Indexers; using NzbDrone.Core.Parser.Model; using NzbDrone.Core.ThingiProvider; using NzbDrone.Core.Validation; @@ -23,12 +23,12 @@ namespace NzbDrone.Core.Download.Clients.RTorrent public RTorrent(IRTorrentProxy proxy, ITorrentFileInfoReader torrentFileInfoReader, - IHttpClient httpClient, + ISeedConfigProvider seedConfigProvider, IConfigService configService, IDiskProvider diskProvider, IRTorrentDirectoryValidator rTorrentDirectoryValidator, Logger logger) - : base(torrentFileInfoReader, httpClient, configService, diskProvider, logger) + : base(torrentFileInfoReader, seedConfigProvider, configService, diskProvider, logger) { _proxy = proxy; _rTorrentDirectoryValidator = rTorrentDirectoryValidator; diff --git a/src/NzbDrone.Core/Download/Clients/uTorrent/UTorrent.cs b/src/NzbDrone.Core/Download/Clients/uTorrent/UTorrent.cs index 2f4206ffb..ef12042fb 100644 --- a/src/NzbDrone.Core/Download/Clients/uTorrent/UTorrent.cs +++ b/src/NzbDrone.Core/Download/Clients/uTorrent/UTorrent.cs @@ -5,8 +5,8 @@ using FluentValidation.Results; using NLog; using NzbDrone.Common.Disk; using NzbDrone.Common.Extensions; -using NzbDrone.Common.Http; using NzbDrone.Core.Configuration; +using NzbDrone.Core.Indexers; using NzbDrone.Core.Parser.Model; using NzbDrone.Core.Validation; @@ -18,11 +18,11 @@ namespace NzbDrone.Core.Download.Clients.UTorrent public UTorrent(IUTorrentProxy proxy, ITorrentFileInfoReader torrentFileInfoReader, - IHttpClient httpClient, + ISeedConfigProvider seedConfigProvider, IConfigService configService, IDiskProvider diskProvider, Logger logger) - : base(torrentFileInfoReader, httpClient, configService, diskProvider, logger) + : base(torrentFileInfoReader, seedConfigProvider, configService, diskProvider, logger) { _proxy = proxy; } diff --git a/src/NzbDrone.Core/Download/DownloadService.cs b/src/NzbDrone.Core/Download/DownloadService.cs index 0f28b3511..d0a15115e 100644 --- a/src/NzbDrone.Core/Download/DownloadService.cs +++ b/src/NzbDrone.Core/Download/DownloadService.cs @@ -29,7 +29,6 @@ namespace NzbDrone.Core.Download private readonly IIndexerStatusService _indexerStatusService; private readonly IRateLimitService _rateLimitService; private readonly IEventAggregator _eventAggregator; - private readonly ISeedConfigProvider _seedConfigProvider; private readonly Logger _logger; public DownloadService(IProvideDownloadClient downloadClientProvider, @@ -38,7 +37,6 @@ namespace NzbDrone.Core.Download IIndexerStatusService indexerStatusService, IRateLimitService rateLimitService, IEventAggregator eventAggregator, - ISeedConfigProvider seedConfigProvider, Logger logger) { _downloadClientProvider = downloadClientProvider; @@ -47,7 +45,6 @@ namespace NzbDrone.Core.Download _indexerStatusService = indexerStatusService; _rateLimitService = rateLimitService; _eventAggregator = eventAggregator; - _seedConfigProvider = seedConfigProvider; _logger = logger; } @@ -61,14 +58,6 @@ namespace NzbDrone.Core.Download throw new DownloadClientUnavailableException($"{release.DownloadProtocol} Download client isn't configured yet"); } - // Get the seed configuration for this release. - var seedConfiguration = _seedConfigProvider.GetSeedConfiguration(release); - - if (seedConfiguration != null) - { - ((TorrentInfo)release).SeedConfiguration = _seedConfigProvider.GetSeedConfiguration(release); - } - var indexer = _indexerFactory.GetInstance(_indexerFactory.Get(release.IndexerId)); var grabEvent = new IndexerDownloadEvent(release, true, source, host, release.Title, release.DownloadUrl) diff --git a/src/NzbDrone.Core/Download/TorrentClientBase.cs b/src/NzbDrone.Core/Download/TorrentClientBase.cs index 2bcc4382e..d9d7f7133 100644 --- a/src/NzbDrone.Core/Download/TorrentClientBase.cs +++ b/src/NzbDrone.Core/Download/TorrentClientBase.cs @@ -5,7 +5,6 @@ using MonoTorrent; using NLog; using NzbDrone.Common.Disk; using NzbDrone.Common.Extensions; -using NzbDrone.Common.Http; using NzbDrone.Core.Configuration; using NzbDrone.Core.Exceptions; using NzbDrone.Core.Indexers; @@ -18,18 +17,18 @@ namespace NzbDrone.Core.Download public abstract class TorrentClientBase : DownloadClientBase where TSettings : IProviderConfig, new() { - protected readonly IHttpClient _httpClient; - protected readonly ITorrentFileInfoReader _torrentFileInfoReader; + private readonly ITorrentFileInfoReader _torrentFileInfoReader; + private readonly ISeedConfigProvider _seedConfigProvider; protected TorrentClientBase(ITorrentFileInfoReader torrentFileInfoReader, - IHttpClient httpClient, + ISeedConfigProvider seedConfigProvider, IConfigService configService, IDiskProvider diskProvider, Logger logger) : base(configService, diskProvider, logger) { - _httpClient = httpClient; _torrentFileInfoReader = torrentFileInfoReader; + _seedConfigProvider = seedConfigProvider; } public override DownloadProtocol Protocol => DownloadProtocol.Torrent; @@ -44,6 +43,12 @@ namespace NzbDrone.Core.Download { var torrentInfo = release as TorrentInfo; + if (torrentInfo != null) + { + // Get the seed configuration for this release. + torrentInfo.SeedConfiguration = _seedConfigProvider.GetSeedConfiguration(release); + } + string magnetUrl = null; string torrentUrl = null; @@ -67,7 +72,7 @@ namespace NzbDrone.Core.Download { try { - return await DownloadFromWebUrl(release, indexer, torrentUrl); + return await DownloadFromWebUrl(torrentInfo, indexer, torrentUrl); } catch (Exception ex) { @@ -84,7 +89,7 @@ namespace NzbDrone.Core.Download { try { - return DownloadFromMagnetUrl(release, magnetUrl); + return DownloadFromMagnetUrl(torrentInfo, magnetUrl); } catch (NotSupportedException ex) { @@ -98,7 +103,7 @@ namespace NzbDrone.Core.Download { try { - return DownloadFromMagnetUrl(release, magnetUrl); + return DownloadFromMagnetUrl(torrentInfo, magnetUrl); } catch (NotSupportedException ex) { @@ -113,14 +118,14 @@ namespace NzbDrone.Core.Download if (torrentUrl.IsNotNullOrWhiteSpace()) { - return await DownloadFromWebUrl(release, indexer, torrentUrl); + return await DownloadFromWebUrl(torrentInfo, indexer, torrentUrl); } } return null; } - private async Task DownloadFromWebUrl(ReleaseInfo release, IIndexer indexer, string torrentUrl) + private async Task DownloadFromWebUrl(TorrentInfo release, IIndexer indexer, string torrentUrl) { byte[] torrentFile = null; @@ -142,7 +147,7 @@ namespace NzbDrone.Core.Download var filename = string.Format("{0}.torrent", StringUtil.CleanFileName(release.Title)); var hash = _torrentFileInfoReader.GetHashFromTorrentFile(torrentFile); - var actualHash = AddFromTorrentFile((TorrentInfo)release, hash, filename, torrentFile); + var actualHash = AddFromTorrentFile(release, hash, filename, torrentFile); if (actualHash.IsNotNullOrWhiteSpace() && hash != actualHash) { @@ -155,7 +160,7 @@ namespace NzbDrone.Core.Download return actualHash; } - private string DownloadFromMagnetUrl(ReleaseInfo release, string magnetUrl) + private string DownloadFromMagnetUrl(TorrentInfo release, string magnetUrl) { string hash = null; string actualHash = null; @@ -173,7 +178,7 @@ namespace NzbDrone.Core.Download if (hash != null) { - actualHash = AddFromMagnetLink((TorrentInfo)release, hash, magnetUrl); + actualHash = AddFromMagnetLink(release, hash, magnetUrl); } if (actualHash.IsNotNullOrWhiteSpace() && hash != actualHash)