|
|
|
@ -1,4 +1,5 @@
|
|
|
|
|
using System.Linq;
|
|
|
|
|
using NLog;
|
|
|
|
|
using NzbDrone.Core.Download.TrackedDownloads;
|
|
|
|
|
using NzbDrone.Core.Indexers;
|
|
|
|
|
using NzbDrone.Core.MediaFiles.EpisodeImport;
|
|
|
|
@ -13,15 +14,17 @@ public interface IRejectedImportService
|
|
|
|
|
public class RejectedImportService : IRejectedImportService
|
|
|
|
|
{
|
|
|
|
|
private readonly ICachedIndexerSettingsProvider _cachedIndexerSettingsProvider;
|
|
|
|
|
private readonly Logger _logger;
|
|
|
|
|
|
|
|
|
|
public RejectedImportService(ICachedIndexerSettingsProvider cachedIndexerSettingsProvider)
|
|
|
|
|
public RejectedImportService(ICachedIndexerSettingsProvider cachedIndexerSettingsProvider, Logger logger)
|
|
|
|
|
{
|
|
|
|
|
_cachedIndexerSettingsProvider = cachedIndexerSettingsProvider;
|
|
|
|
|
_logger = logger;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
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;
|
|
|
|
|
}
|
|
|
|
@ -38,11 +41,13 @@ public class RejectedImportService : IRejectedImportService
|
|
|
|
|
if (rejectionReason == ImportRejectionReason.DangerousFile &&
|
|
|
|
|
indexerSettings.FailDownloads.Contains(FailDownloads.PotentiallyDangerous))
|
|
|
|
|
{
|
|
|
|
|
_logger.Trace("Download '{0}' contains potentially dangerous file, marking as failed", trackedDownload.DownloadItem.Title);
|
|
|
|
|
trackedDownload.Fail();
|
|
|
|
|
}
|
|
|
|
|
else if (rejectionReason == ImportRejectionReason.ExecutableFile &&
|
|
|
|
|
indexerSettings.FailDownloads.Contains(FailDownloads.Executables))
|
|
|
|
|
{
|
|
|
|
|
_logger.Trace("Download '{0}' contains executable file, marking as failed", trackedDownload.DownloadItem.Title);
|
|
|
|
|
trackedDownload.Fail();
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|