From c813215f3e1e013fd99953188c6336f3b24f6eb4 Mon Sep 17 00:00:00 2001 From: Marius Nechifor Date: Tue, 28 Jan 2025 19:10:07 +0200 Subject: [PATCH] Add more Lidarr checks for failed imports (#48) --- code/Infrastructure/Verticals/Arr/ArrClient.cs | 8 ++++++-- .../Infrastructure/Verticals/QueueCleaner/QueueCleaner.cs | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/code/Infrastructure/Verticals/Arr/ArrClient.cs b/code/Infrastructure/Verticals/Arr/ArrClient.cs index 95b8d81..a37b207 100644 --- a/code/Infrastructure/Verticals/Arr/ArrClient.cs +++ b/code/Infrastructure/Verticals/Arr/ArrClient.cs @@ -66,7 +66,7 @@ public abstract class ArrClient return queueResponse; } - public virtual bool ShouldRemoveFromQueue(QueueRecord record, bool isPrivateDownload) + public virtual bool ShouldRemoveFromQueue(InstanceType instanceType, QueueRecord record, bool isPrivateDownload) { if (_queueCleanerConfig.ImportFailedIgnorePrivate && isPrivateDownload) { @@ -83,8 +83,12 @@ public abstract class ArrClient .Equals("importPending", StringComparison.InvariantCultureIgnoreCase); bool isImportFailed() => record.TrackedDownloadState .Equals("importFailed", StringComparison.InvariantCultureIgnoreCase); + bool isFailedLidarr() => instanceType is InstanceType.Lidarr && + (record.Status.Equals("failed", StringComparison.InvariantCultureIgnoreCase) || + record.Status.Equals("completed", StringComparison.InvariantCultureIgnoreCase)) && + hasWarn(); - if (hasWarn() && (isImportBlocked() || isImportPending() || isImportFailed())) + if (hasWarn() && (isImportBlocked() || isImportPending() || isImportFailed()) || isFailedLidarr()) { if (HasIgnoredPatterns(record)) { diff --git a/code/Infrastructure/Verticals/QueueCleaner/QueueCleaner.cs b/code/Infrastructure/Verticals/QueueCleaner/QueueCleaner.cs index 0133c52..3098a51 100644 --- a/code/Infrastructure/Verticals/QueueCleaner/QueueCleaner.cs +++ b/code/Infrastructure/Verticals/QueueCleaner/QueueCleaner.cs @@ -75,7 +75,7 @@ public sealed class QueueCleaner : GenericHandler } // failed import check - bool shouldRemoveFromArr = arrClient.ShouldRemoveFromQueue(record, stalledCheckResult.IsPrivate); + bool shouldRemoveFromArr = arrClient.ShouldRemoveFromQueue(instanceType, record, stalledCheckResult.IsPrivate); if (!shouldRemoveFromArr && !stalledCheckResult.ShouldRemove) {