Include reverse-kids-leak in --move — it's not actually a judgment call

Unlike reverse-anime-leak (deliberate style placements like Castlevania
are common and valid there), reverse-kids-leak's signal is specifically
"adult certification with zero Family/Animation genre" — confirmed live
the 4 titles it catches (Addams Family, Saving Mr. Banks, Dark Shadows,
The DUFF) are all genuinely non-kids content. Moves them to the new
RADARR_GENERAL_ROOT config var (container-path literal for the general
Movies root, needed since RADARR_MOVIES_ROOT is a filesystem path).
This commit is contained in:
Gmer4Lfe
2026-07-17 12:20:23 -04:00
parent e688500cf5
commit 9c05692a24
3 changed files with 27 additions and 6 deletions
+25 -6
View File
@@ -149,6 +149,7 @@ if [[ "$SHOW_STATUS" == true ]]; then
echo "$ICON_HOST Identity: $MY_ID ($LOCAL_SERVER_NAME)"
echo "$ICON_GEAR Radarr URL: $RADARR_URL"
echo "$ICON_GEAR Movies root: $RADARR_MOVIES_ROOT"
echo "$ICON_GEAR General root: ${RADARR_GENERAL_ROOT:-<not configured>}"
echo "$ICON_GEAR Kids root: ${RADARR_KIDS_ROOT:-<not configured>}"
echo "$ICON_GEAR Anime root: ${RADARR_ANIME_ROOT:-<not configured>}"
echo "$ICON_GEAR Anime studios: ${#RADARR_ANIME_STUDIOS[@]} curated"
@@ -335,10 +336,12 @@ fi
# ==============================================================================================
# ━━━ Move Mode ━━━
# ==============================================================================================
# Acts only on FORWARD misplacements (clear-cut: classified anime/kids, sitting in the wrong
# root) and never on REVERSE leaks (those are judgment calls — deliberate style placements
# like Castlevania/Legend of Korra live there, so they're report-only) or JUNK (those need
# removal from Radarr, not a file move — nothing to move for a hasFile=false entry).
# Acts on FORWARD misplacements (clear-cut: classified anime/kids, sitting in the wrong root)
# and on REVERSE-KIDS leaks (adult certification with zero Family/Animation genre sitting in
# the kids root — also clear-cut, moved back to RADARR_GENERAL_ROOT). Does NOT act on
# REVERSE-ANIME leaks — those are genuine judgment calls, since deliberate style placements
# like Castlevania/Legend of Korra legitimately live in the anime root without matching the
# anime signal — or on JUNK (those need removal from Radarr, not a file move).
#
# One movie at a time, verified after each, matching the lesson learned doing this by hand
# for Sonarr earlier: a rapid-fire batch of moves raced Radarr's own file-move worker and
@@ -361,7 +364,14 @@ if [[ "$MOVE_MODE" == true ]]; then
# whenever it does find a release) and kick off an immediate search rather than waiting
# for the next scheduled one. Junk entries are still excluded entirely — nothing to
# search for there, they need removal instead.
MOVE_TARGETS=$(echo "$RESULTS" | jq -c '[.[] | select((.forward_anime_miss or .forward_kids_miss) and (.is_junk | not))]')
#
# reverse_kids_leak is included here (unlike reverse_anime_leak) because its signal is
# specifically "adult certification with zero Family/Animation genre" — there's no
# legitimate stylistic reason for that combination to sit in a curated kids library, unlike
# the anime side where deliberate style placements (Castlevania, Legend of Korra) are
# common and valid. Confirmed live: the 4 titles this caught (The Addams Family, Saving
# Mr. Banks, Dark Shadows, The DUFF) are all genuinely non-kids content, not judgment calls.
MOVE_TARGETS=$(echo "$RESULTS" | jq -c '[.[] | select((.forward_anime_miss or .forward_kids_miss or .reverse_kids_leak) and (.is_junk | not))]')
MOVE_COUNT=$(echo "$MOVE_TARGETS" | jq 'length')
if [[ "$MOVE_COUNT" -eq 0 ]]; then
@@ -379,11 +389,20 @@ if [[ "$MOVE_MODE" == true ]]; then
id=$(echo "$item" | jq -r '.id')
title=$(echo "$item" | jq -r '.title')
is_anime_flag=$(echo "$item" | jq -r '.is_anime')
is_forward_kids=$(echo "$item" | jq -r '.forward_kids_miss')
had_file=$(echo "$item" | jq -r '.hasFile')
if [[ "$is_anime_flag" == "true" ]]; then
target_root="$RADARR_ANIME_ROOT"
else
elif [[ "$is_forward_kids" == "true" ]]; then
target_root="$RADARR_KIDS_ROOT"
else
target_root="$RADARR_GENERAL_ROOT"
fi
if [[ -z "$target_root" ]]; then
error "$title — target root not configured (RADARR_GENERAL_ROOT blank), skipping"
(( FAILED++ ))
continue
fi
# RESULTS only carries the reduced report fields — Radarr's PUT expects the complete