Overflow Tap 1.0.0: switch Overflow Tap destinations from keywords in ProPresenter slide notes
A new module that does what Overflow's "ProPresenter Integration" helper app
does, inside ProdDash: the live slide's notes are read from ProPresenter
(GET /v1/status/slide, twice a second) and when they carry one of the admin
page's keywords, the chosen Overflow Tap groups are pointed at that keyword's
destination. One tile: the keyword Tap is on (and since when), its
destination and the groups moved, a chip saying whether the slide on screen
carries a keyword, and the last four switches. A failed switch turns the tile
red with the reason, retries three times, and can flash an alert channel.
Admin config: ProPresenter endpoint + password; Overflow client ID + API key
(x-client-id / x-api-key, the public API's two headers); Tap groups to switch
(multiselect read from the account over /groups); keywords as text, one per
line (`give = Give Online`, optionally `@ Lobby, Kids Wing`); match mode
(whole word / anywhere / own line); alerts switch + channel.
The one unverified piece: Overflow's public API documents only reads for Tap
(OpenAPI checked 2026-10-07), while Overflow's helper uses the Dashboard's
private API. The switch is sent as PATCH /api/v3/tap/groups/{id} with the new
destinationId — the natural shape for this API — and every switch is confirmed
by reading the group back, so a refusal shows on the tile instead of passing
silently. overflow.js is the one place to change if Overflow names a
different route.
Also: tools/overflow-tap-mock.js (a ProPresenter whose slide notes carry
keywords on :1602 plus the Overflow Tap API on :24720, --read-only to fail
every switch), keywords.selftest.js (14 cases), README + CLAUDE.md entries.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5.1
parent
c9e03398a6
commit
6b51044be6
@@ -510,6 +510,26 @@ below. Nothing is installed without someone clicking.
|
||||
read from the account), and a folded **Timing** group for the poll
|
||||
intervals and a position trim.
|
||||
Tile settings: cue name, previous cue, playhead, cue list.
|
||||
- **Overflow Tap** — what Overflow's own ProPresenter helper app does,
|
||||
inside ProdDash: the live slide's notes are read from ProPresenter, and
|
||||
when they carry one of the admin page's keywords, the chosen Overflow Tap
|
||||
groups are pointed at that keyword's destination — so a tap on a disc
|
||||
follows what is on screen. A slide with no keyword changes nothing. The
|
||||
tile is one keyword, big: what Tap is on (and since when), its destination
|
||||
and the groups moved, a chip saying whether the slide on screen carries a
|
||||
keyword, and the last four switches with their times; a failed switch
|
||||
turns the tile red with the reason and, if switched on in admin, flashes
|
||||
an alert channel. Admin config: the ProPresenter endpoint, the Overflow
|
||||
API credentials (Developers › API Keys in the Overflow Dashboard), the Tap
|
||||
groups to switch (read from the account), the keywords — one per line as
|
||||
`give = Give Online`, optionally `@ Lobby, Kids Wing` to switch only
|
||||
those groups — and how a keyword matches (whole word, anywhere, or on its
|
||||
own line). Tile settings are four switches: destination, groups, slide
|
||||
match, history. **One thing is still unverified:** Overflow's public API
|
||||
documents only *reads* for Tap, so the call that moves a group (`PATCH
|
||||
/api/v3/tap/groups/{id}` with the new `destinationId`) is the natural
|
||||
shape, not a documented one; every switch is confirmed by reading the
|
||||
group back, so a refusal shows on the tile rather than passing silently.
|
||||
- **Band Lineup** — the backstage stage board: everyone on stage in their mic
|
||||
slot with photo, name and mic/pack label, on one shared board that every
|
||||
screen sees the same way — whoever edits it changes it everywhere, over SSE.
|
||||
@@ -560,8 +580,12 @@ timers + timecode on `127.0.0.1:1600`), `node tools/pco-mock.js`
|
||||
run ProdDash with `SLACK_API_BASE=http://127.0.0.1:24716/api`) and
|
||||
`node tools/pco-band-mock.js 24710` (Planning Center for the Band Lineup
|
||||
board — a plan, its team members, birthdays and photos — run ProdDash with
|
||||
`BAND_LINEUP_API_BASE=http://127.0.0.1:24710`). See the testing section of
|
||||
the [module guide](docs/MODULE-GUIDE.md).
|
||||
`BAND_LINEUP_API_BASE=http://127.0.0.1:24710`) and
|
||||
`node tools/overflow-tap-mock.js` (a ProPresenter whose slide notes carry
|
||||
keywords on `127.0.0.1:1602` plus the Overflow Tap API on `127.0.0.1:24720`
|
||||
— run ProdDash with `OVERFLOW_TAP_API_BASE=http://127.0.0.1:24720`;
|
||||
`--read-only` makes the switch fail the way the public API does today). See
|
||||
the testing section of the [module guide](docs/MODULE-GUIDE.md).
|
||||
|
||||
## Install as a desktop web app
|
||||
|
||||
|
||||
Reference in New Issue
Block a user