READY page: the weekly worship checklist, checked against Planning Center

- readiness.py looks every 2 minutes (never while a HyperDeck records) at this weekend's PCO plan
  and what is in place for it: the Ableton set (songs, mix, routing, lighting cues), ProPresenter
  (every PCO item, MC announcements, baptism names, timelines, backgrounds), the LTC note of every
  song against the timecode the tracks play, the Band Lineup TV, Resolume's LED cross, and the
  tracks and ProP bundles for the locations.
- READY key on the Status page (row 2, col 7; SPOTIFY now shows inside SHOW) opens page 24.
  Amber until done, blinking red from Saturday noon; not part of ALL. Tap keys for BOH mix,
  mics and stage reset every Monday.
- Holds fix what can be fixed: re-sync the lineup, put the cross back up, write LTC into PCO,
  copy tracks to locations, look again. Hold READY fixes everything.
- Settings page: a READY page tab (live keys, drag to move, why each key is amber), and Apply
  re-imports page 24.
- Auto-fix: "while_muted" fixes keep running with ALARMS muted (Spotify playlist).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-14 20:28:43 -04:00
co-authored by Claude Opus 5.5
parent 9b33abb570
commit d5ede0c91e
15 changed files with 2392 additions and 68 deletions
+6 -2
View File
@@ -1,5 +1,5 @@
#!/usr/bin/env python3
"""Import the status page (19) or the Restart page (20; both numbers come from config.json) into Companion without clicking through the UI.
"""Import the status page (19), the Restart page (20) or the READY page (24; the numbers come from config.json) into Companion without clicking through the UI.
Does exactly what Import/Export -> Import -> "import into page N" does, over the
same internal API the Companion web UI uses (tRPC over a WebSocket at /trpc):
@@ -12,6 +12,7 @@ A key someone added is named by its position, so it can be moved first.
python3 push_page.py # the status page, from config.json
python3 push_page.py --which restart # the Restart page
python3 push_page.py --which ready # the READY page (the weekly checklist)
python3 push_page.py --host 10.6.3.222 --page 19 --file status-page.companionconfig
Stdlib only (a minimal WebSocket client is included). Written against Companion 5.0.7.
@@ -210,7 +211,7 @@ def push(host, port, page, file_path, expected_name):
def main():
cfg = json.load(open(os.path.join(HERE, "config.json")))
ap = argparse.ArgumentParser(description=__doc__.splitlines()[0])
ap.add_argument("--which", choices=("status", "restart"), default="status")
ap.add_argument("--which", choices=("status", "restart", "ready"), default="status")
ap.add_argument("--host", default=cfg.get("site", {}).get("ingest_hostname") or cfg["companion"].get("host", "127.0.0.1"))
ap.add_argument("--port", type=int, default=cfg["companion"].get("port", 8000))
ap.add_argument("--page", type=int)
@@ -220,6 +221,9 @@ def main():
if args.which == "restart":
page, expected = cfg["restart_page"]["page"], cfg["restart_page"]["page_name"]
default_file = "restart-page.companionconfig"
elif args.which == "ready":
page, expected = cfg["ready_page"]["page"], cfg["ready_page"]["page_name"]
default_file = "ready-page.companionconfig"
else:
page, expected, default_file = cfg["page"], cfg["page_name"], "status-page.companionconfig"
args.page = args.page or page