Added the ability to skip redownload when marking an item as failed in the activity queue

This commit is contained in:
PearsonFlyer 2023-07-14 07:07:36 -04:00
parent 2cce6af436
commit 9c79fc3267
6 changed files with 18 additions and 18 deletions

View File

@ -49,7 +49,7 @@ class RemoveQueueItemModal extends Component {
this.setState({ blocklist: value }); this.setState({ blocklist: value });
}; };
onSkipReDownloadChange = ({ value }) => { onSkipRedownloadChange = ({ value }) => {
this.setState({ skipredownload: value }); this.setState({ skipredownload: value });
}; };

View File

@ -50,7 +50,7 @@ class RemoveQueueItemsModal extends Component {
this.setState({ blocklist: value }); this.setState({ blocklist: value });
}; };
onSkipReDownloadChange = ({ value }) => { onSkipRedownloadChange = ({ value }) => {
this.setState({ skipredownload: value }); this.setState({ skipredownload: value });
}; };

View File

@ -23,6 +23,6 @@ namespace NzbDrone.Core.Download
public Dictionary<string, string> Data { get; set; } public Dictionary<string, string> Data { get; set; }
public TrackedDownload TrackedDownload { get; set; } public TrackedDownload TrackedDownload { get; set; }
public List<Language> Languages { get; set; } public List<Language> Languages { get; set; }
public bool SkipReDownload { get; set; } public bool SkipRedownload { get; set; }
} }
} }

View File

@ -9,8 +9,8 @@ namespace NzbDrone.Core.Download
{ {
public interface IFailedDownloadService public interface IFailedDownloadService
{ {
void MarkAsFailed(int historyId, bool skipReDownload = false); void MarkAsFailed(int historyId, bool skipRedownload = false);
void MarkAsFailed(string downloadId, bool skipReDownload = false); void MarkAsFailed(string downloadId, bool skipRedownload = false);
void Check(TrackedDownload trackedDownload); void Check(TrackedDownload trackedDownload);
void ProcessFailed(TrackedDownload trackedDownload); void ProcessFailed(TrackedDownload trackedDownload);
} }
@ -30,14 +30,14 @@ namespace NzbDrone.Core.Download
_eventAggregator = eventAggregator; _eventAggregator = eventAggregator;
} }
public void MarkAsFailed(int historyId, bool skipReDownload = false) public void MarkAsFailed(int historyId, bool skipRedownload = false)
{ {
var history = _historyService.Get(historyId); var history = _historyService.Get(historyId);
var downloadId = history.DownloadId; var downloadId = history.DownloadId;
if (downloadId.IsNullOrWhiteSpace()) if (downloadId.IsNullOrWhiteSpace())
{ {
PublishDownloadFailedEvent(new List<EpisodeHistory> { history }, "Manually marked as failed", skipReDownload: skipReDownload); PublishDownloadFailedEvent(new List<EpisodeHistory> { history }, "Manually marked as failed", skipRedownload: skipRedownload);
return; return;
} }
@ -57,7 +57,7 @@ namespace NzbDrone.Core.Download
PublishDownloadFailedEvent(grabbedHistory, "Manually marked as failed"); PublishDownloadFailedEvent(grabbedHistory, "Manually marked as failed");
} }
public void MarkAsFailed(string downloadId, bool skipReDownload = false) public void MarkAsFailed(string downloadId, bool skipRedownload = false)
{ {
var history = _historyService.Find(downloadId, EpisodeHistoryEventType.Grabbed); var history = _historyService.Find(downloadId, EpisodeHistoryEventType.Grabbed);
@ -65,7 +65,7 @@ namespace NzbDrone.Core.Download
{ {
var trackedDownload = _trackedDownloadService.Find(downloadId); var trackedDownload = _trackedDownloadService.Find(downloadId);
PublishDownloadFailedEvent(history, "Manually marked as failed", trackedDownload, skipReDownload: skipReDownload); PublishDownloadFailedEvent(history, "Manually marked as failed", trackedDownload, skipRedownload: skipRedownload);
} }
} }
@ -125,7 +125,7 @@ namespace NzbDrone.Core.Download
PublishDownloadFailedEvent(grabbedItems, failure, trackedDownload); PublishDownloadFailedEvent(grabbedItems, failure, trackedDownload);
} }
private void PublishDownloadFailedEvent(List<EpisodeHistory> historyItems, string message, TrackedDownload trackedDownload = null, bool skipReDownload = false) private void PublishDownloadFailedEvent(List<EpisodeHistory> historyItems, string message, TrackedDownload trackedDownload = null, bool skipRedownload = false)
{ {
var historyItem = historyItems.First(); var historyItem = historyItems.First();
@ -141,7 +141,7 @@ namespace NzbDrone.Core.Download
Data = historyItem.Data, Data = historyItem.Data,
TrackedDownload = trackedDownload, TrackedDownload = trackedDownload,
Languages = historyItem.Languages, Languages = historyItem.Languages,
SkipReDownload = skipReDownload SkipRedownload = skipRedownload
}; };
_eventAggregator.PublishEvent(downloadFailedEvent); _eventAggregator.PublishEvent(downloadFailedEvent);

View File

@ -30,7 +30,7 @@ namespace NzbDrone.Core.Download
[EventHandleOrder(EventHandleOrder.Last)] [EventHandleOrder(EventHandleOrder.Last)]
public void Handle(DownloadFailedEvent message) public void Handle(DownloadFailedEvent message)
{ {
if (message.SkipReDownload) if (message.SkipRedownload)
{ {
_logger.Debug("Skip redownloading requested by user"); _logger.Debug("Skip redownloading requested by user");
return; return;

View File

@ -70,7 +70,7 @@ namespace Sonarr.Api.V3.Queue
} }
[RestDeleteById] [RestDeleteById]
public void RemoveAction(int id, bool removeFromClient = true, bool blocklist = false, bool skipReDownload = false) public void RemoveAction(int id, bool removeFromClient = true, bool blocklist = false, bool skipRedownload = false)
{ {
var pendingRelease = _pendingReleaseService.FindPendingQueueItem(id); var pendingRelease = _pendingReleaseService.FindPendingQueueItem(id);
@ -88,12 +88,12 @@ namespace Sonarr.Api.V3.Queue
throw new NotFoundException(); throw new NotFoundException();
} }
Remove(trackedDownload, removeFromClient, blocklist, skipReDownload); Remove(trackedDownload, removeFromClient, blocklist, skipRedownload);
_trackedDownloadService.StopTracking(trackedDownload.DownloadItem.DownloadId); _trackedDownloadService.StopTracking(trackedDownload.DownloadItem.DownloadId);
} }
[HttpDelete("bulk")] [HttpDelete("bulk")]
public object RemoveMany([FromBody] QueueBulkResource resource, [FromQuery] bool removeFromClient = true, [FromQuery] bool blocklist = false, [FromQuery] bool skipReDownload = false) public object RemoveMany([FromBody] QueueBulkResource resource, [FromQuery] bool removeFromClient = true, [FromQuery] bool blocklist = false, [FromQuery] bool skipRedownload = false)
{ {
var trackedDownloadIds = new List<string>(); var trackedDownloadIds = new List<string>();
var pendingToRemove = new List<NzbDrone.Core.Queue.Queue>(); var pendingToRemove = new List<NzbDrone.Core.Queue.Queue>();
@ -124,7 +124,7 @@ namespace Sonarr.Api.V3.Queue
foreach (var trackedDownload in trackedToRemove.DistinctBy(t => t.DownloadItem.DownloadId)) foreach (var trackedDownload in trackedToRemove.DistinctBy(t => t.DownloadItem.DownloadId))
{ {
Remove(trackedDownload, removeFromClient, blocklist, skipReDownload); Remove(trackedDownload, removeFromClient, blocklist, skipRedownload);
trackedDownloadIds.Add(trackedDownload.DownloadItem.DownloadId); trackedDownloadIds.Add(trackedDownload.DownloadItem.DownloadId);
} }
@ -255,7 +255,7 @@ namespace Sonarr.Api.V3.Queue
_pendingReleaseService.RemovePendingQueueItems(pendingRelease.Id); _pendingReleaseService.RemovePendingQueueItems(pendingRelease.Id);
} }
private TrackedDownload Remove(TrackedDownload trackedDownload, bool removeFromClient, bool blocklist, bool skipReDownload) private TrackedDownload Remove(TrackedDownload trackedDownload, bool removeFromClient, bool blocklist, bool skipRedownload)
{ {
if (removeFromClient) if (removeFromClient)
{ {
@ -271,7 +271,7 @@ namespace Sonarr.Api.V3.Queue
if (blocklist) if (blocklist)
{ {
_failedDownloadService.MarkAsFailed(trackedDownload.DownloadItem.DownloadId, skipReDownload); _failedDownloadService.MarkAsFailed(trackedDownload.DownloadItem.DownloadId, skipRedownload);
} }
if (!removeFromClient && !blocklist) if (!removeFromClient && !blocklist)