Lucas BergerandClaude Opus 5 eaf91b157b Fix poster scan losing items whose title contains a quote
posters_scan passed each line to the worker with `xargs -I{}`, which splices
the text straight into the shell command. Any title containing an apostrophe
or a quote became a shell syntax error and that item was dropped — silently,
since the error went to stderr while the audit counted only what came back.

No show title happened to trigger it, so this survived the show-level work.
The first episode-level scan hit it immediately: titles like "That's a shirt?"
and "WAIT A MINUTE, ..." produced `unexpected EOF while looking for matching
quote`, which means that episode run reported nothing trustworthy.

Lines are now passed as a positional argument, so the shell never parses their
content. Regression-tested with titles containing apostrophes, double quotes,
commas, backticks and $(...) — all handled, and the $(...) case confirmed not
to execute.

Also tightens the check itself: a poster is OK only if the response is 200
*and* an image content-type. Plex answers some paths with 200 and an XML body,
which the status-only check counted as a working poster.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-15 21:40:06 -04:00

scripts

Operational scripts for my self-hosted environment (odin, an Unraid host running Docker Compose behind Authelia and a Pangolin/Newt tunnel).

Each script collection lives in its own top-level folder and is fully self-contained — its own README, config, and dependencies. Collections never import from each other.

See CLAUDE.md for the environment details and repo conventions, and docs/odin-access.md for how to reach odin and drive its API.

Collections

Collection What it does Runs on
plex Health checks and library-artwork repair for the Plex server this workstation, targeting odin

Adding a collection

cp -r _template <collection-name>

Fill in its README.md, then add a line to the table above.

S
Description
Random scripts
Readme
83 KiB
Languages
Shell 100%