diff --git a/src/NzbDrone.Core/Download/DownloadFailedEvent.cs b/src/NzbDrone.Core/Download/DownloadFailedEvent.cs index 1c0ca855a..57b423b14 100644 --- a/src/NzbDrone.Core/Download/DownloadFailedEvent.cs +++ b/src/NzbDrone.Core/Download/DownloadFailedEvent.cs @@ -13,6 +13,7 @@ public DownloadFailedEvent() } public int SeriesId { get; set; } + public int MovieId { get; set; } public List EpisodeIds { get; set; } public QualityModel Quality { get; set; } public string SourceTitle { get; set; } diff --git a/src/NzbDrone.Core/Download/FailedDownloadService.cs b/src/NzbDrone.Core/Download/FailedDownloadService.cs index d56349f7f..e084f2c3b 100644 --- a/src/NzbDrone.Core/Download/FailedDownloadService.cs +++ b/src/NzbDrone.Core/Download/FailedDownloadService.cs @@ -88,6 +88,7 @@ private void PublishDownloadFailedEvent(List historyItems, stri var downloadFailedEvent = new DownloadFailedEvent { SeriesId = historyItem.SeriesId, + MovieId = historyItem.MovieId, EpisodeIds = historyItems.Select(h => h.EpisodeId).ToList(), Quality = historyItem.Quality, SourceTitle = historyItem.SourceTitle, diff --git a/src/NzbDrone.Core/Download/RedownloadFailedDownloadService.cs b/src/NzbDrone.Core/Download/RedownloadFailedDownloadService.cs index d85729775..0e5b3a13a 100644 --- a/src/NzbDrone.Core/Download/RedownloadFailedDownloadService.cs +++ b/src/NzbDrone.Core/Download/RedownloadFailedDownloadService.cs @@ -34,6 +34,15 @@ public void HandleAsync(DownloadFailedEvent message) return; } + if (message.MovieId != 0) + { + _logger.Debug("Failed download contains a movie, searching again."); + + _commandQueueManager.Push(new MoviesSearchCommand { MovieId = message.MovieId }); + + return; + } + if (message.EpisodeIds.Count == 1) { _logger.Debug("Failed download only contains one episode, searching again");