Triage the classification leaks the metadata rule says it cannot judge

The scan's own header calls reverse-anime leaks "genuine judgment calls" and
reports them as a count. Seventeen of them concealed two live-action crime
dramas filed under anime for as long as nobody read the list. The scan now
persists that bucket as its own verdict, and the sweep asks the model to sort
only those eleven — not the eleven hundred it already classifies correctly.
Files findings for misfiled and uncertain only; donghua and anime-adjacent are
answers, not problems, and filing them would rebuild the undifferentiated list
this exists to break up. Moves nothing — --move stays a flag a human types.
This commit is contained in:
Gmer4Lfe
2026-08-14 22:03:55 -04:00
parent 2c16cc7116
commit 00dee37e22
2 changed files with 164 additions and 0 deletions
+25
View File
@@ -319,6 +319,31 @@ if [[ "$ENABLE_LOGGING" == true ]]; then
" [\(if .forward_anime_miss then "FORWARD-ANIME" elif .forward_kids_miss then "FORWARD-KIDS" elif .reverse_anime_leak then "REVERSE-ANIME" elif .reverse_kids_leak then "REVERSE-KIDS" else "?" end)] \(.title) (root: \(.rootFolderPath), network: \(.network // "n/a"), cert: \(.certification // "n/a"))"'
fi
# ── The reverse leaks, written down ───────────────────────────────────────────────────────────
# This block's own header says it does not act on REVERSE-ANIME leaks because they are genuine
# judgement calls. That is right, and it is also why they are the one result worth persisting:
# every other bucket either self-resolves or is acted on by --move, while these accumulate as a
# number in a summary nobody can do anything with. Seventeen of them hid two live-action dramas
# filed under anime for as long as the count stayed a count.
#
# Written as the script's own verdict so anything reading it — the triage that reads this next —
# inherits the classification rather than computing a second opinion from the same metadata.
# Report-only: this records what was found, it does not change what happens to any of it.
if [[ -n "${STATE_DIR:-}" ]] && [[ "$DRY_RUN" != true ]]; then
_review_file="$STATE_DIR/arr_classification_review.json"
echo "$RESULTS" | jq -c --arg host "$MY_ID" --argjson ts "$(date +%s)" '
{ host: $host, ts: $ts, arr: "sonarr",
reverse_anime: [ .[] | select(.reverse_anime_leak) |
{ title, root: .rootFolderPath, network: (.network // ""), cert: (.certification // ""),
lang: (.originalLanguage.name // .originalLanguage // ""), id: .id } ],
reverse_kids: [ .[] | select(.reverse_kids_leak) |
{ title, root: .rootFolderPath, network: (.network // ""), cert: (.certification // "") } ] }
' > "$_review_file" 2>/dev/null \
&& log "$ICON_GEAR Review list written — $REVERSE_ANIME_COUNT anime leak(s) for triage" \
|| warn "Could not write $_review_file — triage will have nothing to read"
unset _review_file
fi
# ==============================================================================================
# ━━━ Summary ━━━
# ==============================================================================================