mirror of
https://github.com/Sonarr/Sonarr.git
synced 2026-03-05 13:20:20 -05:00
Compare commits
4 Commits
log-files-
...
v4.0.13.29
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c8cb74a976 | ||
|
|
7193acb5ee | ||
|
|
6f1fc1686f | ||
|
|
b7407837b7 |
@@ -1,5 +1,5 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using NLog;
|
||||
using NzbDrone.Core.Download.TrackedDownloads;
|
||||
using NzbDrone.Core.Indexers;
|
||||
using NzbDrone.Core.MediaFiles.EpisodeImport;
|
||||
@@ -14,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)
|
||||
if (importResult.Result != ImportResultType.Rejected || trackedDownload.RemoteEpisode?.Release == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
@@ -30,19 +32,27 @@ public class RejectedImportService : IRejectedImportService
|
||||
var indexerSettings = _cachedIndexerSettingsProvider.GetSettings(trackedDownload.RemoteEpisode.Release.IndexerId);
|
||||
var rejectionReason = importResult.ImportDecision.Rejections.FirstOrDefault()?.Reason;
|
||||
|
||||
if (indexerSettings == null)
|
||||
{
|
||||
trackedDownload.Warn(new TrackedDownloadStatusMessage(trackedDownload.DownloadItem.Title, importResult.Errors));
|
||||
return true;
|
||||
}
|
||||
|
||||
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
|
||||
{
|
||||
trackedDownload.Warn(new TrackedDownloadStatusMessage(importResult.Errors.First(), new List<string>()));
|
||||
trackedDownload.Warn(new TrackedDownloadStatusMessage(trackedDownload.DownloadItem.Title, importResult.Errors));
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
@@ -40,6 +40,9 @@ namespace NzbDrone.Core.Download.TrackedDownloads
|
||||
{
|
||||
Status = TrackedDownloadStatus.Error;
|
||||
State = TrackedDownloadState.FailedPending;
|
||||
|
||||
// Set CanBeRemoved to allow the failed item to be removed from the client
|
||||
DownloadItem.CanBeRemoved = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user