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

/fidi-court-01/fidi-court-02/fidi-court-03/fidi-court-04/fidi-court-05/fidi-court-06/fidi-court-07/fidi-court-08

Bryant Park · court iPads

/bp-court-01/bp-court-02/bp-court-03/bp-court-04/bp-court-05

Lounge televisions

/fidi-tv-left/fidi-tv-right /bp-tv-left/bp-tv-right /bp-tv-01

FiDi · court 1 television

/fidi-court-01-tv

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

/fidi-tv-office

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.