Open Squash displays
Every screen has its own address. Point a device at its slug and leave it there —
nothing to type, no key, no login. Each page reads which screen it is from the address itself.
FiDi · court iPads
Bryant Park · court iPads
Lounge televisions
FiDi · court 1 television
The 75″ screen by court 1. Same court and same feed as /fidi-court-01,
drawn 16:9 so it fills the panel. The iPad keeps its own address.
FiDi · office television
All eight FiDi courts on one 1920×1080 screen, for the staff office. Same feed as
the lounge pair — one panel instead of two.
Use -left and -right when the two panels are two independent devices —
each shows its own half of the pair. Use /fidi-tv-pair or /bp-tv-pair instead when one
machine drives both panels as a single stretched desktop. /bp-tv-01 is the portrait screen.
Events
A screen can show a welcome page instead of its bookings for a set window — a
sponsor evening on courts 1–4, say. Events live in events.json in this folder:
one entry with a date, a start and end time, a logo in events/, and the list of
screens it applies to. Any screen not listed carries on as normal. It switches on and off by
itself. Add ?event=<id> to a screen’s address to preview one before the day;
?event=0 hides it.
Deploying
Every screen reads build.txt once a minute or so and reloads itself the
moment that line changes, so a redeploy needs no walk round the building. Change the line (the date,
a word — anything) each time court.html or tv.html changes.
events.json alone does not need a new stamp; screens pick it up on their next poll.
Add ?demo=1 to any slug to see it with an embedded sample day instead of
live data, ?at=18:20 to pretend it is a particular time of day, and ?view=grid
(or board, next, open, promo) to hold one slide
instead of waiting for the rotation.