don't blow up if a single download is not trackable.

pull/4/head
Keivan Beigi 10 years ago
parent dcf434abd3
commit 907023ca10

@ -33,7 +33,7 @@ namespace NzbDrone.Core.Download
private readonly IEventAggregator _eventAggregator; private readonly IEventAggregator _eventAggregator;
private readonly IConfigService _configService; private readonly IConfigService _configService;
private readonly IFailedDownloadService _failedDownloadService; private readonly IFailedDownloadService _failedDownloadService;
private readonly ICompletedDownloadService _completedDownloadService; private readonly ICompletedDownloadService _completedDownloadService;
private readonly IParsingService _parsingService; private readonly IParsingService _parsingService;
private readonly Logger _logger; private readonly Logger _logger;
@ -140,24 +140,32 @@ namespace NzbDrone.Core.Download
var downloadClientHistory = downloadClient.GetItems().ToList(); var downloadClientHistory = downloadClient.GetItems().ToList();
foreach (var downloadItem in downloadClientHistory) foreach (var downloadItem in downloadClientHistory)
{ {
var trackingId = String.Format("{0}-{1}", downloadClient.Definition.Id, downloadItem.DownloadClientId); try
TrackedDownload trackedDownload; {
var trackingId = String.Format("{0}-{1}", downloadClient.Definition.Id, downloadItem.DownloadClientId);
TrackedDownload trackedDownload;
if (newTrackedDownloads.ContainsKey(trackingId)) continue; if (newTrackedDownloads.ContainsKey(trackingId)) continue;
if (!oldTrackedDownloads.TryGetValue(trackingId, out trackedDownload)) if (!oldTrackedDownloads.TryGetValue(trackingId, out trackedDownload))
{ {
trackedDownload = GetTrackedDownload(trackingId, downloadClient.Definition.Id, downloadItem, grabbedHistory); trackedDownload = GetTrackedDownload(trackingId, downloadClient.Definition.Id, downloadItem,
grabbedHistory);
if (trackedDownload == null) continue; if (trackedDownload == null) continue;
_logger.Debug("[{0}] Started tracking download with id {1}.", downloadItem.Title, trackingId); _logger.Debug("[{0}] Started tracking download with id {1}.", downloadItem.Title, trackingId);
stateChanged = true; stateChanged = true;
} }
trackedDownload.DownloadItem = downloadItem; trackedDownload.DownloadItem = downloadItem;
newTrackedDownloads[trackingId] = trackedDownload; newTrackedDownloads[trackingId] = trackedDownload;
}
catch (Exception e)
{
_logger.ErrorException("An error occured while tracking download." + downloadItem.Title, e);
}
} }
} }

Loading…
Cancel
Save