From a2f62a5dcdb8cad5a3d50acfc21ffb85611d5226 Mon Sep 17 00:00:00 2001 From: Mark McDowall Date: Thu, 3 Sep 2015 18:38:10 -0700 Subject: [PATCH] Hide completed downloads when CDH is disabled New: Only show completed downloads in queue when Completed Download Handling is enabled --- .../DownloadMonitoringService.cs | 25 ++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/src/NzbDrone.Core/Download/TrackedDownloads/DownloadMonitoringService.cs b/src/NzbDrone.Core/Download/TrackedDownloads/DownloadMonitoringService.cs index 22156255c..f708e7976 100644 --- a/src/NzbDrone.Core/Download/TrackedDownloads/DownloadMonitoringService.cs +++ b/src/NzbDrone.Core/Download/TrackedDownloads/DownloadMonitoringService.cs @@ -58,15 +58,17 @@ namespace NzbDrone.Core.Download.TrackedDownloads { var downloadClients = _downloadClientProvider.GetDownloadClients(); - var trackedDownload = new List(); + var trackedDownloads = new List(); foreach (var downloadClient in downloadClients) { var clientTrackedDownloads = ProcessClientDownloads(downloadClient); - trackedDownload.AddRange(clientTrackedDownloads.Where(c => c.State == TrackedDownloadStage.Downloading)); + + // Only track completed downloads if + trackedDownloads.AddRange(clientTrackedDownloads.Where(DownloadIsTrackable)); } - _eventAggregator.PublishEvent(new TrackedDownloadRefreshedEvent(trackedDownload)); + _eventAggregator.PublishEvent(new TrackedDownloadRefreshedEvent(trackedDownloads)); } finally { @@ -139,6 +141,23 @@ namespace NzbDrone.Core.Download.TrackedDownloads return trackedDownloads; } + private bool DownloadIsTrackable(TrackedDownload trackedDownload) + { + // If the download has already been imported or failed don't track it + if (trackedDownload.State != TrackedDownloadStage.Downloading) + { + return false; + } + + // If CDH is disabled and the download status is complete don't track it + if (!_configService.EnableCompletedDownloadHandling && trackedDownload.DownloadItem.Status == DownloadItemStatus.Completed) + { + return false; + } + + return true; + } + public void Execute(CheckForFinishedDownloadCommand message) { Refresh();