asteroid/parenscript
Glenn Thompson 5efa49321e Add shuffle stream as second pipeline
stream-harmony.lisp:
- scan-music-library-files: recursive directory scanner for supported formats
- Cached shuffle library pool (2797 tracks, 1hr TTL refresh)
- shuffle-random-batch: picks N random tracks from pool
- refill-shuffle-queue: track-change hook keeps queue topped up
- on-shuffle-track-change: updates recently-played, refills queue
- shuffle-now-playing: now-playing stats for shuffle mounts
- start-shuffle-streaming: creates pipeline sharing curated server,
  registers hooks, seeds queue, starts play-list with crossfade
- stop-shuffle-streaming: stops pipeline without stopping shared server

asteroid.lisp:
- Start shuffle pipeline after curated pipeline on startup
- Stop/restart shuffle in stream restart endpoint
- Fix stale cl-streamer:get-listener-count call (needs server arg)

frontend-partials.lisp:
- Route shuffle mounts to shuffle-now-playing
- Fix stale cl-streamer:get-listener-count (use pipeline-listener-count)

listener-stats.lisp:
- Poll shuffle mounts (/shuffle.mp3, /shuffle.aac) for listener stats

parenscript/stream-player.lisp:
- get-stream-config returns /shuffle.* mounts when channel is shuffle

parenscript/front-page.lisp, parenscript/player.lisp:
- Normalize now-playing polling to 15s (was 5s/10s, caused 429s)

Build verified, runtime tested: both pipelines play simultaneously,
channel selector switches streams correctly.
2026-03-08 13:32:51 +03:00
..
admin.lisp Remove Icecast/Liquidsoap, migrate fully to Harmony/CL-Streamer 2026-03-05 17:24:12 +03:00
auth-ui.lisp fix: Normalize USERS table timestamps before dm:save to prevent PostgreSQL type errors 2025-12-29 09:39:51 -05:00
dj-console.lisp Fix DJ Console: 400 POST error, library search SQL, auto-playlist pause, now-playing override 2026-03-06 08:06:02 +03:00
frameset-utils.lisp Fix geo stats peak tracking and migrate inline JS to ParenScript 2025-12-14 10:20:32 -05:00
front-page.lisp Add shuffle stream as second pipeline 2026-03-08 13:32:51 +03:00
parenscript-utils.lisp fix: add parenscript utils file 2026-03-02 17:51:26 -05:00
player.lisp Add shuffle stream as second pipeline 2026-03-08 13:32:51 +03:00
profile.lisp feat: Custom user playlists with submission and admin review 2025-12-21 18:45:35 +03:00
recently-played.lisp Fix listener count and recently-played rendering 2026-03-03 23:25:23 +03:00
spectrum-analyzer.lisp Add mini spectrum analyzer to player frame with theme/style sync 2026-01-11 13:25:55 -05:00
stream-player.lisp Add shuffle stream as second pipeline 2026-03-08 13:32:51 +03:00
users.lisp Fix last-login timezone handling 2025-12-19 18:00:30 -05:00