Show the queued show and its start time in the index.php sidebar

- Shows get a description and an icon upload; broadcasts get a scheduled_at
  start time. schema.sql adds the columns to existing databases and seeds
  the descriptions from the old hand-written sidebar.
- The dashboard and cli/set_show.php take an optional date and Eastern start
  time when queuing; index.php shows it with the UTC conversion.
- liveBroadcast() and currentShow() ignore broadcasts unseen for longer than
  the grace period, so a stopped poller can't leave a show stuck as live.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Daniel MesserandClaude Opus 5.5 committed 2026-10-30 09:30:20 -05:00
1 parent 3fb49e816c
commit f659b09a0b
9 files changed
+297 -77

No files matched your search

+6 -5
View File
@@ -55,7 +55,7 @@ sudo yunohost app setting my_webapp db_user
sudo yunohost app setting my_webapp db_pwd
```
Then apply the schema. It creates the tables and adds the five shows, and it's safe to re-run:
Then apply the schema. It creates the tables and adds the five shows with starting descriptions, and it's safe to re-run. Re-run it after updates that change the schema; it adds any new columns to an existing database:
```bash
cd /var/www/my_webapp/www
@@ -91,7 +91,7 @@ The web server and the cron job both run as the app user, so they can read it. T
## 6. Make the backgrounds folder writable
Show background images are uploaded through the admin pages into `images/backgrounds/`. The app user needs to be able to write there:
Show background images and icons are uploaded through the admin pages into `images/backgrounds/`. The app user needs to be able to write there:
```bash
sudo chown my_webapp:my_webapp /var/www/my_webapp/www/images/backgrounds
@@ -171,11 +171,12 @@ During your next stream, tracks should start appearing on `live.php` within a mi
## 9. Before each broadcast
1. Queue the show from the admin dashboard, or over SSH:
1. Queue the show from the admin dashboard, or over SSH, ideally with its date and start time (Eastern). The main page's sidebar then shows the show, its description and the start time with a UTC conversion:
```bash
sudo -u my_webapp /usr/bin/php8.2 cli/set_show.php # list shows
sudo -u my_webapp /usr/bin/php8.2 cli/set_show.php <slug> # queue one
sudo -u my_webapp /usr/bin/php8.2 cli/set_show.php # list shows
sudo -u my_webapp /usr/bin/php8.2 cli/set_show.php <slug> # queue one
sudo -u my_webapp /usr/bin/php8.2 cli/set_show.php <slug> 2026-10-30 19:30 # queue one with a start time
```
2. Start streaming. Within a minute, the poller starts the queued broadcast. The live page's heading and background switch to the show, and tracks begin to appear.