Fixed: Blacklist Retry logic will now properly handle Sabnzbd changing the unique id.

This commit is contained in:
Taloth Saldono
2014-07-19 19:37:06 +02:00
parent 47089d360d
commit 53e723a301
11 changed files with 116 additions and 47 deletions

View File

@@ -18,6 +18,8 @@ namespace NzbDrone.Core.Download
TrackedDownload[] GetTrackedDownloads();
TrackedDownload[] GetCompletedDownloads();
TrackedDownload[] GetQueuedDownloads();
void MarkAsFailed(Int32 historyId);
}
public class DownloadTrackingService : IDownloadTrackingService, IExecute<CheckForFinishedDownloadCommand>, IHandleAsync<ApplicationStartedEvent>, IHandle<EpisodeGrabbedEvent>
@@ -78,6 +80,22 @@ namespace NzbDrone.Core.Download
}, TimeSpan.FromSeconds(5.0));
}
public void MarkAsFailed(Int32 historyId)
{
var item = _historyService.Get(historyId);
var trackedDownload = GetTrackedDownloads()
.Where(h => h.DownloadItem.DownloadClientId.Equals(item.Data.GetValueOrDefault(DOWNLOAD_CLIENT_ID)))
.FirstOrDefault();
if (trackedDownload != null && trackedDownload.State == TrackedDownloadState.Unknown)
{
ProcessTrackedDownloads();
}
_failedDownloadService.MarkAsFailed(trackedDownload, item);
}
private TrackedDownload[] FilterQueuedDownloads(IEnumerable<TrackedDownload> trackedDownloads)
{
var enabledFailedDownloadHandling = _configService.EnableFailedDownloadHandling;