Compare commits

..

2 commits

Author SHA1 Message Date
1f1e3ff6b4 Merge pull request 'Allow serienen/videoen categories in movetdarr' (#5) from fix/movetdarr-en-categories-20260916 into main 2026-09-16 11:55:25 +02:00
Trulla
5b4dd2384e Allow serienen/videoen categories in movetdarr
Die Kategorie-Whitelist kannte nur serien4k|serien|video4k|video. Die
englischen Arr-Instanzen sonarrEN (Port 8991, Root /data/FHD/serienen) und
radarrEN (Port 7880, Root /data/FHD/videoen) nutzen aber serienen/videoen.

Folge: Downloads dieser Kategorien wurden mit "nicht unterstuetzte Kategorie"
abgewiesen und blieben in /usenet/complete liegen, ohne je in den
FileFlows/Arr-Flow zu gelangen. Gefunden: Mutiny.2026 x2 (08./09.09.2026,
zusammen ~21 GB), beide Filme in radarrEN weiter monitored/hasFile=false.

/tdarr/complete/{serienen,videoen} existieren bereits; die FileFlows-Library
scannt /tdarr/complete rekursiv, es braucht also nur die Whitelist.

2 neue Testfaelle (serienen + videoen), test_movetdarr.py und
test_movetdarr_parallel.py gruen.
2026-09-16 11:55:01 +02:00
2 changed files with 17 additions and 2 deletions

View file

@ -50,7 +50,7 @@ if [ "$STATUS" != "0" ]; then
fi
case "$CATEGORY" in
serien4k|serien|video4k|video) ;;
serien4k|serien|serienen|video4k|video|videoen) ;;
*)
log "FEHLER: nicht unterstuetzte Kategorie '$CATEGORY' - Quelle bleibt unangetastet"
exit 1

View file

@ -103,7 +103,22 @@ try:
assert result.returncode == 0 and not source.exists()
assert not (target / "leftover.nfo").exists() and (target / "episode.mkv").exists()
print("PASS: success lease, category fail-closed, no-overwrite, stale-directory cleanup")
# 16.09.2026: serienen/videoen (englische Arr-Instanzen sonarrEN:8991 /
# radarrEN:7880 mit Root-Foldern /data/FHD/serienen bzw. /data/FHD/videoen)
# fehlten in der Kategorie-Whitelist. Folge: Mutiny.2026 x2 blieben am
# 08./09.09.2026 mit "nicht unterstuetzte Kategorie 'videoen'" in
# /usenet/complete liegen und wurden nie importiert.
for extra_category in ("serienen", "videoen"):
with tempfile.TemporaryDirectory() as td:
actions.clear()
status_polls = 0
result, source, target = run_case(Path(td), category=extra_category)
assert result.returncode == 0, (extra_category, result.stdout, result.stderr)
assert not source.exists(), extra_category
assert (target / "episode.mkv").exists(), extra_category
assert [a["action"] for a in actions] == ["start", "moved", "status", "status"], extra_category
print("PASS: success lease, category fail-closed, no-overwrite, stale-directory cleanup, EN-Kategorien")
finally:
server.shutdown()
server.server_close()