Fixed: Improve rejected download handling

This commit is contained in:
Stevie Robinson 2025-03-08 21:33:59 +01:00 committed by Mark McDowall
parent 6f1fc1686f
commit 7193acb5ee
No known key found for this signature in database

View file

@ -1,4 +1,5 @@
using System.Linq; using System.Linq;
using NLog;
using NzbDrone.Core.Download.TrackedDownloads; using NzbDrone.Core.Download.TrackedDownloads;
using NzbDrone.Core.Indexers; using NzbDrone.Core.Indexers;
using NzbDrone.Core.MediaFiles.EpisodeImport; using NzbDrone.Core.MediaFiles.EpisodeImport;
@ -13,15 +14,17 @@ public interface IRejectedImportService
public class RejectedImportService : IRejectedImportService public class RejectedImportService : IRejectedImportService
{ {
private readonly ICachedIndexerSettingsProvider _cachedIndexerSettingsProvider; private readonly ICachedIndexerSettingsProvider _cachedIndexerSettingsProvider;
private readonly Logger _logger;
public RejectedImportService(ICachedIndexerSettingsProvider cachedIndexerSettingsProvider) public RejectedImportService(ICachedIndexerSettingsProvider cachedIndexerSettingsProvider, Logger logger)
{ {
_cachedIndexerSettingsProvider = cachedIndexerSettingsProvider; _cachedIndexerSettingsProvider = cachedIndexerSettingsProvider;
_logger = logger;
} }
public bool Process(TrackedDownload trackedDownload, ImportResult importResult) public bool Process(TrackedDownload trackedDownload, ImportResult importResult)
{ {
if (importResult.Result != ImportResultType.Rejected || importResult.ImportDecision.LocalEpisode == null || trackedDownload.RemoteEpisode?.Release == null) if (importResult.Result != ImportResultType.Rejected || trackedDownload.RemoteEpisode?.Release == null)
{ {
return false; return false;
} }
@ -38,11 +41,13 @@ public bool Process(TrackedDownload trackedDownload, ImportResult importResult)
if (rejectionReason == ImportRejectionReason.DangerousFile && if (rejectionReason == ImportRejectionReason.DangerousFile &&
indexerSettings.FailDownloads.Contains(FailDownloads.PotentiallyDangerous)) indexerSettings.FailDownloads.Contains(FailDownloads.PotentiallyDangerous))
{ {
_logger.Trace("Download '{0}' contains potentially dangerous file, marking as failed", trackedDownload.DownloadItem.Title);
trackedDownload.Fail(); trackedDownload.Fail();
} }
else if (rejectionReason == ImportRejectionReason.ExecutableFile && else if (rejectionReason == ImportRejectionReason.ExecutableFile &&
indexerSettings.FailDownloads.Contains(FailDownloads.Executables)) indexerSettings.FailDownloads.Contains(FailDownloads.Executables))
{ {
_logger.Trace("Download '{0}' contains executable file, marking as failed", trackedDownload.DownloadItem.Title);
trackedDownload.Fail(); trackedDownload.Fail();
} }
else else