From 77e9973ff54b0f5485fafb96d164cb07dfb11b5b Mon Sep 17 00:00:00 2001 From: Frank Date: Mon, 2 Nov 2026 18:02:48 -0800 Subject: [PATCH] docs(media): point plan/journal/park paths at .media-campaign and NeedsProcessing The campaign-artifact home moved (42bc482) but the copy-paste surfaces still named the old ones, and a tool's usage block is exactly what an agent runs: - scripts/media-shows.py, media-tv.py, media-tvdupes.py: usage examples wrote plans and journals at the array root. media-apply.py defaults its journal to /media-relayout.jsonl, so any run copied from those lines re-creates the root-level clutter the vault now forbids. Each block now names /mnt/entropy/.media-campaign/ and says why --journal is explicit. - media-shows.py: --park named the retired media-park; the pile is /mnt/entropy/NeedsProcessing/TVShows. - Jellyfin.md: library-coverage law named /data/media-park; names the pile by its current path and records when it moved. - Media TV Relayout.md: the runnable --park path named media-park. bats: 822 seams green. --- scripts/media-shows.py | 14 ++++++++++---- scripts/media-tv.py | 19 +++++++++++++------ scripts/media-tvdupes.py | 14 ++++++++------ serverAppConfigs-docs/Dankserver/Jellyfin.md | 6 +++--- .../Dankserver/Media TV Relayout.md | 2 +- 5 files changed, 35 insertions(+), 20 deletions(-) diff --git a/scripts/media-shows.py b/scripts/media-shows.py index 860a945..51a4599 100755 --- a/scripts/media-shows.py +++ b/scripts/media-shows.py @@ -78,10 +78,16 @@ one journal is one undo: python3 scripts/media-shows.py --root /mnt/entropy/TVShows \ --enum /tmp/tv-enum.tsv --titles /tmp/jellyfin-tv.tsv \ - --tvdb --tmdb --out /mnt/entropy/media-tv-plan.tsv \ - --park /mnt/entropy/media-park/TVShows - python3 scripts/media-apply.py apply --plan /mnt/entropy/media-tv-plan.tsv \ - --root /mnt/entropy --journal /mnt/entropy/media-tv-relayout.jsonl + --tvdb --tmdb --out /mnt/entropy/.media-campaign/media-tv-plan.tsv \ + --park /mnt/entropy/NeedsProcessing/TVShows + python3 scripts/media-apply.py apply \ + --plan /mnt/entropy/.media-campaign/media-tv-plan.tsv \ + --root /mnt/entropy --journal /mnt/entropy/.media-campaign/media-tv-relayout.jsonl + +Every plan, journal and log lives in /mnt/entropy/.media-campaign/ — the array +root holds libraries only. media-apply.py defaults its journal to +/media-relayout.jsonl, so pass --journal explicitly or the run puts the +log back on the root. """ import argparse import collections diff --git a/scripts/media-tv.py b/scripts/media-tv.py index 76ea4b1..d8ce5fb 100755 --- a/scripts/media-tv.py +++ b/scripts/media-tv.py @@ -17,13 +17,20 @@ the executor's own path guard still has teeth, and give it its own journal — one journal is one undo, and a TV move must not be welded to a movie relayout: python3 scripts/media-tv.py --root /mnt/entropy/Movies \ - --library /mnt/entropy/TVShows --out /mnt/entropy/media-tv-plan.tsv - python3 scripts/media-apply.py apply --plan /mnt/entropy/media-tv-plan.tsv \ - --root /mnt/entropy --journal /mnt/entropy/media-relayout-tv.jsonl - python3 scripts/media-apply.py verify --plan /mnt/entropy/media-tv-plan.tsv \ - --root /mnt/entropy --journal /mnt/entropy/media-relayout-tv.jsonl + --library /mnt/entropy/TVShows \ + --out /mnt/entropy/.media-campaign/media-tv-plan.tsv + python3 scripts/media-apply.py apply \ + --plan /mnt/entropy/.media-campaign/media-tv-plan.tsv \ + --root /mnt/entropy --journal /mnt/entropy/.media-campaign/media-relayout-tv.jsonl + python3 scripts/media-apply.py verify \ + --plan /mnt/entropy/.media-campaign/media-tv-plan.tsv \ + --root /mnt/entropy --journal /mnt/entropy/.media-campaign/media-relayout-tv.jsonl python3 scripts/media-apply.py sweep --root /mnt/entropy \ - --journal /mnt/entropy/media-relayout-tv.jsonl --apply + --journal /mnt/entropy/.media-campaign/media-relayout-tv.jsonl --apply + +Plans and journals live in `/mnt/entropy/.media-campaign/`, never loose on the +array root: `media-apply.py` defaults its journal to `/media-relayout.jsonl`, +so `--journal` is always explicit here. Guards, and why each one is here: diff --git a/scripts/media-tvdupes.py b/scripts/media-tvdupes.py index 898ab80..a594620 100755 --- a/scripts/media-tvdupes.py +++ b/scripts/media-tvdupes.py @@ -16,14 +16,16 @@ the journal and frees no space until the hold is purged. python3 scripts/media-tvdupes.py --library /mnt/entropy/TVShows \ --hold /mnt/entropy/.AGENTTRASH/20261102-tv-duplicates \ - --out /mnt/entropy/tv-dupes-plan.tsv - python3 scripts/media-apply.py apply --plan /mnt/entropy/tv-dupes-plan.tsv \ - --root /mnt/entropy --journal /mnt/entropy/tv-dupes.jsonl \ + --out /mnt/entropy/.media-campaign/tv-dupes-plan.tsv + python3 scripts/media-apply.py apply \ + --plan /mnt/entropy/.media-campaign/tv-dupes-plan.tsv \ + --root /mnt/entropy --journal /mnt/entropy/.media-campaign/tv-dupes.jsonl \ --metadata-view /var/lib/media-meta/view --apply - python3 scripts/media-apply.py verify --plan /mnt/entropy/tv-dupes-plan.tsv \ - --root /mnt/entropy --journal /mnt/entropy/tv-dupes.jsonl + python3 scripts/media-apply.py verify \ + --plan /mnt/entropy/.media-campaign/tv-dupes-plan.tsv \ + --root /mnt/entropy --journal /mnt/entropy/.media-campaign/tv-dupes.jsonl python3 scripts/media-apply.py sweep --root /mnt/entropy \ - --journal /mnt/entropy/tv-dupes.jsonl --apply # empty folders only + --journal /mnt/entropy/.media-campaign/tv-dupes.jsonl --apply # empty folders only scripts/media-view.sh reap # ghost sidecars above Then both servers have to be told: the plan moves files on the raw array, and no diff --git a/serverAppConfigs-docs/Dankserver/Jellyfin.md b/serverAppConfigs-docs/Dankserver/Jellyfin.md index c07e093..6c322e2 100644 --- a/serverAppConfigs-docs/Dankserver/Jellyfin.md +++ b/serverAppConfigs-docs/Dankserver/Jellyfin.md @@ -58,9 +58,9 @@ reads — movie art has never existed beside the media on either layer. **Library coverage is the first thing to check when a title is missing.** The four libraries are `movies → /data/Movies`, `tvshows → /data/TVShows`, `music → /data/Music`, `boxsets → /config/data/collections` -(`GET /Library/VirtualFolders`). `/data/media-park` is in **none** of them, so -everything filed under it — the `_unsorted` release bundles and the `extras/` -folders the relayout wrote there — is invisible to Jellyfin by configuration, +(`GET /Library/VirtualFolders`). The review pile — `/data/NeedsProcessing`, the +former `media-park`, drained into it 2026-11-02 — is in **none** of them, so +everything filed there is invisible to Jellyfin by configuration, not by fault: a recursive refresh answers 204, burns CPU for minutes and indexes nothing, because it never looks there. Check coverage before re-scanning. diff --git a/serverAppConfigs-docs/Dankserver/Media TV Relayout.md b/serverAppConfigs-docs/Dankserver/Media TV Relayout.md index 78ccfd9..e6696a8 100644 --- a/serverAppConfigs-docs/Dankserver/Media TV Relayout.md +++ b/serverAppConfigs-docs/Dankserver/Media TV Relayout.md @@ -52,7 +52,7 @@ python3 scripts/media-census.py probe --root /mnt/entropy/TVShows \ python3 scripts/media-shows.py --root /mnt/entropy/TVShows --enum /tmp/tv_enum.tsv \ --titles /tmp/tv_titles.tsv --probed /tmp/tv_probed.tsv \ --tmdb-cache /mnt/entropy/.media-campaign/media-tv-names.json --tmdb --tvdb \ - --park /mnt/entropy/media-park/TVShows \ + --park /mnt/entropy/NeedsProcessing/TVShows \ --out /mnt/entropy/.media-campaign/media-relayout-shows2-plan.tsv \ --exceptions /mnt/entropy/.media-campaign/media-relayout-shows2-exceptions.txt # 4. Read the exceptions file FIRST — it is the review, not a log. Same executor