From 5cce5d774ba517f62a3d75a214c85b395673c943 Mon Sep 17 00:00:00 2001 From: Stevie Robinson Date: Mon, 29 Jan 2024 22:08:24 +0100 Subject: [PATCH] Add additional On Manual Interaction Required notifications --- .../Download/CompletedDownloadService.cs | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/src/NzbDrone.Core/Download/CompletedDownloadService.cs b/src/NzbDrone.Core/Download/CompletedDownloadService.cs index 3fd5008cb..82a4c2eb8 100644 --- a/src/NzbDrone.Core/Download/CompletedDownloadService.cs +++ b/src/NzbDrone.Core/Download/CompletedDownloadService.cs @@ -96,6 +96,17 @@ namespace NzbDrone.Core.Download if (series == null) { trackedDownload.Warn("Series title mismatch; automatic import is not possible. Check the download troubleshooting entry on the wiki for common causes."); + + if (!trackedDownload.HasNotifiedManualInteractionRequired) + { + trackedDownload.HasNotifiedManualInteractionRequired = true; + + var releaseInfo = new GrabbedReleaseInfo(grabbedHistories); + var manualInteractionEvent = new ManualInteractionRequiredEvent(trackedDownload, releaseInfo); + + _eventAggregator.PublishEvent(manualInteractionEvent); + } + return; } @@ -133,9 +144,27 @@ namespace NzbDrone.Core.Download return; } + var grabbedHistories = _historyService.FindByDownloadId(trackedDownload.DownloadItem.DownloadId).Where(h => h.EventType == EpisodeHistoryEventType.Grabbed).ToList(); + + if (grabbedHistories.Count == 0) + { + grabbedHistories = new List { new EpisodeHistory() }; + } + if (trackedDownload.RemoteEpisode == null) { trackedDownload.Warn("Unable to parse download, automatic import is not possible."); + + if (!trackedDownload.HasNotifiedManualInteractionRequired) + { + trackedDownload.HasNotifiedManualInteractionRequired = true; + + var releaseInfo = new GrabbedReleaseInfo(grabbedHistories); + var manualInteractionEvent = new ManualInteractionRequiredEvent(trackedDownload, releaseInfo); + + _eventAggregator.PublishEvent(manualInteractionEvent); + } + return; } @@ -192,6 +221,16 @@ namespace NzbDrone.Core.Download if (statusMessages.Any()) { trackedDownload.Warn(statusMessages.ToArray()); + + if (!trackedDownload.HasNotifiedManualInteractionRequired) + { + trackedDownload.HasNotifiedManualInteractionRequired = true; + + var releaseInfo = new GrabbedReleaseInfo(grabbedHistories); + var manualInteractionEvent = new ManualInteractionRequiredEvent(trackedDownload, releaseInfo); + + _eventAggregator.PublishEvent(manualInteractionEvent); + } } }