1
0
mirror of https://github.com/Radarr/Radarr.git synced 2024-09-17 15:02:34 +02:00

Allow DownloadMonitoring to report client status

This commit is contained in:
Qstick 2020-05-03 16:29:58 -04:00
parent 91ed949a47
commit cb97f90b9e

View File

@ -18,7 +18,8 @@ public class DownloadMonitoringService : IExecute<RefreshMonitoredDownloadsComma
IHandle<DownloadsProcessedEvent>, IHandle<DownloadsProcessedEvent>,
IHandle<TrackedDownloadsRemovedEvent> IHandle<TrackedDownloadsRemovedEvent>
{ {
private readonly IProvideDownloadClient _downloadClientProvider; private readonly IDownloadClientStatusService _downloadClientStatusService;
private readonly IDownloadClientFactory _downloadClientFactory;
private readonly IEventAggregator _eventAggregator; private readonly IEventAggregator _eventAggregator;
private readonly IManageCommandQueue _manageCommandQueue; private readonly IManageCommandQueue _manageCommandQueue;
private readonly IConfigService _configService; private readonly IConfigService _configService;
@ -28,16 +29,18 @@ public class DownloadMonitoringService : IExecute<RefreshMonitoredDownloadsComma
private readonly Logger _logger; private readonly Logger _logger;
private readonly Debouncer _refreshDebounce; private readonly Debouncer _refreshDebounce;
public DownloadMonitoringService(IProvideDownloadClient downloadClientProvider, public DownloadMonitoringService(IDownloadClientStatusService downloadClientStatusService,
IEventAggregator eventAggregator, IDownloadClientFactory downloadClientFactory,
IManageCommandQueue manageCommandQueue, IEventAggregator eventAggregator,
IConfigService configService, IManageCommandQueue manageCommandQueue,
IFailedDownloadService failedDownloadService, IConfigService configService,
ICompletedDownloadService completedDownloadService, IFailedDownloadService failedDownloadService,
ITrackedDownloadService trackedDownloadService, ICompletedDownloadService completedDownloadService,
Logger logger) ITrackedDownloadService trackedDownloadService,
Logger logger)
{ {
_downloadClientProvider = downloadClientProvider; _downloadClientStatusService = downloadClientStatusService;
_downloadClientFactory = downloadClientFactory;
_eventAggregator = eventAggregator; _eventAggregator = eventAggregator;
_manageCommandQueue = manageCommandQueue; _manageCommandQueue = manageCommandQueue;
_configService = configService; _configService = configService;
@ -59,7 +62,7 @@ private void Refresh()
_refreshDebounce.Pause(); _refreshDebounce.Pause();
try try
{ {
var downloadClients = _downloadClientProvider.GetDownloadClients(); var downloadClients = _downloadClientFactory.DownloadHandlingEnabled();
var trackedDownloads = new List<TrackedDownload>(); var trackedDownloads = new List<TrackedDownload>();
@ -88,9 +91,13 @@ private List<TrackedDownload> ProcessClientDownloads(IDownloadClient downloadCli
try try
{ {
downloadClientItems = downloadClient.GetItems().ToList(); downloadClientItems = downloadClient.GetItems().ToList();
_downloadClientStatusService.RecordSuccess(downloadClient.Definition.Id);
} }
catch (Exception ex) catch (Exception ex)
{ {
// TODO: Stop tracking items for the offline client
_downloadClientStatusService.RecordFailure(downloadClient.Definition.Id);
_logger.Warn(ex, "Unable to retrieve queue and history items from " + downloadClient.Definition.Name); _logger.Warn(ex, "Unable to retrieve queue and history items from " + downloadClient.Definition.Name);
} }