diff --git a/bin/inject-middle-theme.py b/bin/inject-middle-theme.py new file mode 100755 index 0000000..1b70243 --- /dev/null +++ b/bin/inject-middle-theme.py @@ -0,0 +1,140 @@ +#!/usr/bin/env python3 +"""Inject the ARRFLIX middle-theme v6 (logo center, Movies/Series left, search right) +into a Jellyfin web overlay's index.html. Idempotent — run repeatedly without drift. + +Markers: + /* ARRFLIX-MIDDLE-THEME-BEGIN */ ... /* ARRFLIX-MIDDLE-THEME-END */ inside "), "", src, flags=re.DOTALL) +src = re.sub(re.escape(""), "", src, flags=re.DOTALL) +src = re.sub(r".*?", "", src, flags=re.DOTALL) + +PATCH = "" + "" + FAVICON_LINKS +if "" not in src: + sys.exit("no in target") +src2 = src.replace("", PATCH + "", 1) + +backup = target.with_suffix(target.suffix + f".bak.pre-middle-v6.{int(time.time())}") +backup.write_text(target.read_text(encoding="utf-8"), encoding="utf-8") +target.write_text(src2, encoding="utf-8") +print(f"OK v6 wrote {len(src2)} bytes to {target}; backup at {backup}") diff --git a/docs/29-middle-theme-v6-2026-05-09.md b/docs/29-middle-theme-v6-2026-05-09.md new file mode 100644 index 0000000..141d7c3 --- /dev/null +++ b/docs/29-middle-theme-v6-2026-05-09.md @@ -0,0 +1,174 @@ +# 29 — Middle-Theme v6 + Prod Stream Restore (2026-05-09) + +> Outcome: ARRFLIX wordmark logo dead-center, Movies/Series nav left, search right; auth-gated so login page is untouched; header hidden during video playback. Same patch shipped to prod simultaneously with the **branding.xml `