shawn
|
a31342b478
|
feat(tonedownload): Tone3000 NAM + IR browser, real anon key, tests
- Tonedownload.py: Tone3000 API client with search/download/cache/enrich
- Server.py: 4 endpoints (search models, search IRs, install model, install IR)
- Models.html + irs.html: Browse Tone3000 tab with search, trending, offline
- Models.js + irs.js: Tone3000 search UI with install tracking via localStorage
- Style.css: Card layout for search results with thumbnail, meta, install btn
- Tests: 47 tests covering data classes, cache, API, search, download, enrichment
- Anon key: Updated from placeholder to real Supabase anon key (verified: API works)
|
2026-06-09 01:39:12 -04:00 |
|
shawn
|
1c5b728e8b
|
Build: Web UI + mDNS (pedal.local)
FastAPI web server with REST + WebSocket, 5 Jinja2 HTML pages,
mobile-friendly dark theme CSS, page-specific JS controllers,
and Avahi mDNS service advertisement for pedal.local.
Files:
src/web/server.py — FastAPI app with 17 REST endpoints + /ws WebSocket
src/web/__init__.py — Package init with WebServer, WebServerDeps exports
src/web/templates/*.html — Dashboard, Presets, Models, IRs, Settings (base)
src/web/static/style.css — Dark mobile-first CSS (80-82% max-width)
src/web/static/websocket.js — Auto-reconnecting WebSocket manager
src/web/static/app.js — Dashboard live updates + REST helpers
src/web/static/presets.js — Bank/preset CRUD modal UI
src/web/static/models.js — NAM model list/load/upload
src/web/static/irs.js — IR file list/load/upload
etc/avahi/pi-multifx-pedal.service — Avahi service advertisement
scripts/setup-mdns.sh — One-shot mDNS setup (avahi, hostname, restart)
main.py — Wire WebServer into boot/shutdown
requirements.txt — Add fastapi, uvicorn, jinja2, python-multipart
tests/test_web.py — 36 tests (pages, REST, WebSocket, errors)
All 36 tests pass.
|
2026-06-08 00:57:26 -04:00 |
|