New: Blackhole implemented, allowing clients other than SABnzbd to be used.

This commit is contained in:
Mark McDowall 2012-01-28 15:53:14 -08:00
commit a96ff2519a
6 changed files with 147 additions and 8 deletions

View file

@ -2,6 +2,7 @@
using Ninject;
using NLog;
using NzbDrone.Core.Model;
using NzbDrone.Core.Providers.Core;
using NzbDrone.Core.Repository;
namespace NzbDrone.Core.Providers
@ -12,17 +13,22 @@ namespace NzbDrone.Core.Providers
private readonly HistoryProvider _historyProvider;
private readonly EpisodeProvider _episodeProvider;
private readonly ExternalNotificationProvider _externalNotificationProvider;
private readonly ConfigProvider _configProvider;
private readonly BlackholeProvider _blackholeProvider;
private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
[Inject]
public DownloadProvider(SabProvider sabProvider, HistoryProvider historyProvider,
EpisodeProvider episodeProvider, ExternalNotificationProvider externalNotificationProvider)
EpisodeProvider episodeProvider, ExternalNotificationProvider externalNotificationProvider,
ConfigProvider configProvider, BlackholeProvider blackholeProvider)
{
_sabProvider = sabProvider;
_historyProvider = historyProvider;
_episodeProvider = episodeProvider;
_externalNotificationProvider = externalNotificationProvider;
_configProvider = configProvider;
_blackholeProvider = blackholeProvider;
}
public DownloadProvider()
@ -31,14 +37,22 @@ namespace NzbDrone.Core.Providers
public virtual bool DownloadReport(EpisodeParseResult parseResult)
{
if (_sabProvider.IsInQueue(parseResult))
{
Logger.Warn("Episode {0} is already in sab's queue. skipping.", parseResult);
return false;
}
var sabTitle = _sabProvider.GetSabTitle(parseResult);
var addSuccess = _sabProvider.AddByUrl(parseResult.NzbUrl, sabTitle);
bool addSuccess = false;
if (_configProvider.DownloadClient == DownloadClientType.Blackhole)
addSuccess = _blackholeProvider.DownloadNzb(parseResult, sabTitle);
if (_configProvider.DownloadClient == DownloadClientType.Sabnzbd)
{
if(_sabProvider.IsInQueue(parseResult))
{
Logger.Warn("Episode {0} is already in sab's queue. skipping.", parseResult);
return false;
}
addSuccess = _sabProvider.AddByUrl(parseResult.NzbUrl, sabTitle);
}
if (addSuccess)
{