1
0
mirror of https://github.com/Radarr/Radarr.git synced 2024-09-19 07:52:33 +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,7 +29,8 @@ 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,
IDownloadClientFactory downloadClientFactory,
IEventAggregator eventAggregator, IEventAggregator eventAggregator,
IManageCommandQueue manageCommandQueue, IManageCommandQueue manageCommandQueue,
IConfigService configService, IConfigService configService,
@ -37,7 +39,8 @@ public DownloadMonitoringService(IProvideDownloadClient downloadClientProvider,
ITrackedDownloadService trackedDownloadService, ITrackedDownloadService trackedDownloadService,
Logger logger) 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);
} }