Add smart-import decision for importBlocked items before blocklisting

Most importBlocked downloads are junk/duplicates and still fall straight
through to blocklist+research unchanged. But some are releases arr already
correctly parsed (episode/movie, quality, language all known) that just
trip the title-vs-grab-history safety net — those get imported directly
if the target has no file yet, or the candidate is a same-language
resolution upgrade over what's already there. Sonarr/Radarr only; Lidarr's
manual-import matching doesn't reliably resolve album/track context.

Gated by ARR_SMART_IMPORT_ENABLED (default true) and
ARR_SMART_IMPORT_PREFERRED_LANGUAGE (default English).
This commit is contained in:
Gmer4Lfe
2026-07-15 17:30:18 -04:00
parent f30863f452
commit 8bdf7eeb9c
2 changed files with 185 additions and 11 deletions
+10 -1
View File
@@ -1205,9 +1205,12 @@
# Auto blocklist + re-search failed imports and stalled downloads.
# Runs every 6 hours — schedule: 0 */6 * * *
#
# Targets four problem types:
# Targets five problem types:
# importFailed — downloaded but arr couldn't import
# importPending — downloaded, stuck waiting to import (won't self-resolve)
# importBlocked — arr matched the release by grab-history ID, not title, and
# refuses to auto-import — gets a smart-import check first,
# see ARR_SMART_IMPORT_ENABLED below
# error status — serious failure not covered above
# stalled — download stuck with no connections or progress
#
@@ -1217,6 +1220,12 @@
# matches cron interval — items eligible after one missed cycle
ARR_RECOVERY_MAX_ATTEMPTS=3 # consecutive failures before an item is flagged chronic
# and auto re-search stops (still blocklisted/cleaned up)
ARR_SMART_IMPORT_ENABLED=true # importBlocked items: try importing a clean same-language
# upgrade/gap-fill directly before falling back to blocklist
# + re-search. Sonarr/Radarr only — see try_smart_import()
ARR_SMART_IMPORT_PREFERRED_LANGUAGE="English" # only treated as a match/upgrade if the
# candidate is this language; an existing file in a
# different language is always considered upgradeable
# ==============================================================================================
# ── TRANSCODES ────────────────────────────────────────────────────────────────────────────────