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:
@@ -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
|
||||
|
||||
@@ -448,6 +448,7 @@
|
||||
HOSTN_RADARR_API_KEY=""
|
||||
HOSTN_TMDB_API_KEY=""
|
||||
HOSTN_RADARR_MOVIES_ROOT="/mnt/user/Movies"
|
||||
HOSTN_RADARR_GENERAL_ROOT="" # rootFolderPath literal for the general root (e.g. "/movies") — target for reverse-kids-leak moves; leave blank to disable
|
||||
HOSTN_RADARR_KIDS_ROOT="" # rootFolderPath literal, as reported by Radarr API — leave blank if no dedicated kids root
|
||||
HOSTN_RADARR_ANIME_ROOT="" # rootFolderPath literal, as reported by Radarr API — leave blank if no dedicated anime root
|
||||
|
||||
|
||||
@@ -593,6 +593,7 @@ detect_hosts() {
|
||||
RADARR_URL_VAR="${MY_ID}_RADARR_URL"; RADARR_URL="${!RADARR_URL_VAR:-}"
|
||||
RADARR_API_KEY_VAR="${MY_ID}_RADARR_API_KEY"; RADARR_API_KEY="${!RADARR_API_KEY_VAR:-}"
|
||||
RADARR_MOVIES_ROOT_VAR="${MY_ID}_RADARR_MOVIES_ROOT"; RADARR_MOVIES_ROOT="${!RADARR_MOVIES_ROOT_VAR:-}"
|
||||
RADARR_GENERAL_ROOT_VAR="${MY_ID}_RADARR_GENERAL_ROOT"; RADARR_GENERAL_ROOT="${!RADARR_GENERAL_ROOT_VAR:-}"
|
||||
RADARR_KIDS_ROOT_VAR="${MY_ID}_RADARR_KIDS_ROOT"; RADARR_KIDS_ROOT="${!RADARR_KIDS_ROOT_VAR:-}"
|
||||
RADARR_ANIME_ROOT_VAR="${MY_ID}_RADARR_ANIME_ROOT"; RADARR_ANIME_ROOT="${!RADARR_ANIME_ROOT_VAR:-}"
|
||||
RADARR_RECOVERY_VAR="${MY_ID}_RADARR_RECOVERY"; RADARR_RECOVERY="${!RADARR_RECOVERY_VAR:-true}"
|
||||
|
||||
Reference in New Issue
Block a user