Campus kit for other ProPresenter Macs (v1.3.0)

- settings.py: per-Mac settings.json (campus code, youtube); ProPresenter
  folder, network port and template library read from ProPresenter itself
- First run / --setup / y asks the campus; YouTube text only at NA
- Preacher picked for this campus from the notes email; a lone surname
  ("Pastor Geyser") matches the most recent speaker with it
- Never restart ProPresenter when its network API is off or not answering
- tools/make_kit.sh builds "Message Notes Kit <version>.zip" (installer,
  program, launcher, READ ME FIRST); deploy.sh writes NA's settings
- Email setup text no longer names media@

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-14 12:57:44 -04:00
co-authored by Claude Opus 5.5
parent 1c30753743
commit d7eee1bc05
10 changed files with 382 additions and 50 deletions
+18 -2
View File
@@ -54,6 +54,21 @@ speaker / name / date / notes file · `v` view the description · `y` setup · `
PICTURE / CLEAR PICTURE slides are always kept. When the notes mark a picture ("[PICTURE: …]",
"<pic - ….jpg>"), they go there with the picture named in the slide notes.
## Other campuses
`tools/make_kit.sh` builds `dist/Message Notes Kit <version>.zip`: an installer, the program, the
Desktop launcher and `READ ME FIRST.txt`. Send the zip to the campus; on their ProPresenter Mac
they unzip it and double-click `Install Message Notes.command` (it installs Apple's Command Line
Tools first if Python is missing). The first run asks which campus it is and saves it in
`~/Library/Application Support/MessageNotes/settings.json`:
- The campus code picks the preacher from the notes email ("Pastor Geyser will be preaching live
in AB"); a lone surname matches the most recent speaker with it.
- YouTube text is only written at NA (`"youtube": true`); `tools/deploy.sh` writes NA's settings.
- The ProPresenter folder, network port and template library are read from ProPresenter itself.
Templates are any `_TEMPLATE…DO NOT DELETE….pro` (with GENERIC in the name = generic).
- Without ProPresenter's network on, it never restarts ProPresenter to link the playlist.
## How notes become slides
| In the notes | On the slides |
@@ -96,10 +111,11 @@ from the rest of their box keep bold/italic.
- `youtube.py` writes the YouTube text (Claude API over HTTPS); `secrets_store.py` keeps the key in the Keychain
- `spelling.py` is the typo check (macOS spelling checker via JXA)
- `docxnum.py` keeps Word list numbers
- `app.py` is the Terminal app
- `app.py` is the Terminal app; `settings.py` is the per-Mac campus settings
- `apps-script/SaveSermonNotes.gs` is the Google Apps Script for email pickup.
- `tools/build.sh` builds `dist/message-notes.pyz` and the launcher. `tools/deploy.sh` builds
and installs both on the ProPresenter Mac, via the ingest Mac's SSH key.
and installs both on the NA ProPresenter Mac, via the ingest Mac's SSH key. `tools/make_kit.sh`
builds the kit for other campuses (`tools/kit/` holds its installer and read-me).
- `tools/gen_schema.py` regenerates `schema.json` from the community ProPresenter `.proto` files
(github.com/greyshirtguy/ProPresenter7-Proto, `autogen-proto`) after a ProPresenter upgrade.
- `tests/run_tests.py` runs offline checks against real notes and presentations. Last Sunday's