Message Notes -> ProPresenter tool (v1.1)

Turns the pastor's sermon notes into the message presentation in
ProPresenter's Messages library, built from the series or generic template.

- Notes (RTF/Word) are parsed into title, scriptures (with bold emphasis),
  points, builds, quotes, picture slides and the Sermon in a Sentence;
  team instructions are left off and shown in the summary
- Slides are cloned from the template with fresh ids and the template's own
  formatting; a dependency-free protobuf codec reads/writes .pro files
- Text is checked to fit on the slide and in the stream and LED wall theme
  boxes; long scriptures split at verse numbers, font sizes never change
- Links the presentation into the Planning Center playlist's Message section
  (restarting ProPresenter safely, never while anything is live)
- Picks the newest notes from the email inbox folder (Google Apps Script),
  reads the speaker from the email, and writes the YouTube title and
  description with the Claude API for pasting into Restream
- Offline tests rebuild last Sunday's deck from its notes

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-13 15:58:03 -04:00
co-authored by Claude Opus 5.5
commit 7122fd144d
63 changed files with 8984 additions and 0 deletions
@@ -0,0 +1,34 @@
#!/bin/bash
#==============================================================================
# MESSAGE NOTES -> PROPRESENTER
#
# Turns the pastor's notes ("Slides - <message>.rtf", or a Word file) into the
# message presentation, built from the series or generic template in the
# Messages library - the same slides you'd make by copy and paste.
#
# Double-click, then answer the questions:
# 1. which notes file (newest ones are listed; or drag a file in)
# 2. which template (series / generic - it suggests one)
# 3. who is speaking (recent speakers are listed)
# 4. date + presentation name (e.g. "261018 Where Is Your Faith Part 8")
# Then every slide is listed for review. Nothing is written until you press
# Enter at "Create this presentation?". Type q at any prompt to quit.
#
# Afterwards it checks the new presentation through ProPresenter's API and
# opens a page of slide previews drawn by ProPresenter itself.
#
# Program: ~/Library/Application Support/MessageNotes/message-notes.pyz
# Log: ~/Library/Logs/message-notes.log
#==============================================================================
APP="$HOME/Library/Application Support/MessageNotes/message-notes.pyz"
clear
if [ ! -f "$APP" ]; then
echo "Can't find $APP"
read -r -p "Press Enter to close." _
exit 1
fi
/usr/bin/python3 "$APP" "$@"
status=$?
echo
read -r -p "Press Enter to close this window." _
exit $status