Add spotify queue
Deploy HEOS panel / deploy (push) Successful in 30s

This commit is contained in:
franzz committed 2026-10-20 15:44:56 +02:00
1 parent 6c76121863
commit 6bee9bd9a3
13 files changed
+230 -5

No files matched your search

+21
View File
@@ -8,6 +8,7 @@ Everything fits on one screen:
- **Volume** up/down for each room and for the AVR. A tap lands on the next multiple of `VOLUME_STEP` — from 23 it goes to 25, not 28 — so the levels stay round. Hold to keep moving, or drag the level along its bar to set it outright.
- **Navigate** either room (play / pause / prev / next), while it is playing Spotify
- **See what's up next** in a room's Spotify queue: the next 10 tracks, folded away at the foot of its card until you open it
- **Group** either room with the AVR. the AVR is always the host, so its sound takes over whatever joins it. A room that joins moves _into_ the Home Cinema card, so one glance says what is playing together
- **Ungroup** either room again, or all of them at once
- **Change the AVR's input**, listed under the names you gave them, minus the sources you deleted in the AVR's setup menu
@@ -155,8 +156,28 @@ Used by the interface:
## Demo/Tests
Locally, install the dev requirements rather than just the production ones: they add the tools below on top.
```bash
pip install -r requirements-dev.txt
playwright install chromium # once, for make_icons.py
python3 app.py --demo # fake speakers, real interface
python3 -m unittest discover -s tests -t . # runs against a fake HEOS network
python3 tools/make_icons.py # re-render the icons from static/logo.svg
```
## Dependencies
- `requirements.txt`: what the server runs. Only Flask and gunicorn are pinned, to the exact versions tested here, so the Gitea job tests and deploys those same two. Their own dependencies (Werkzeug, Jinja2…) are left free: pip picks whatever fits the pinned versions at install time.
- `requirements-dev.txt`: everything in `requirements.txt` (through its `-r` line), plus tools only needed on your machine: `playwright` for `tools/make_icons.py`, and `pur` for upgrading. The server never installs it.
To upgrade every pin in both files to its newest release:
```bash
source .venv/bin/activate
pur -r requirements-dev.txt # rewrites the pins, following -r into requirements.txt
pip install -r requirements-dev.txt
python3 -m unittest discover -s tests -t .
```
`pur -r requirements-dev.txt --dry-run` shows what would change without writing anything, and `--minor '*'` stays within each package's current major version.