10 Commits

Author SHA1 Message Date
cottongin
0f99e7914b docs: add IRC commands/plugin setup to README, update WebSocket docs
README was missing IRC command reference, plugin installation/config
guidance, and referenced nonexistent plugin READMEs. The WebSocket
docs in api.md were stale — subscribe message now documents role and
client_id fields, status message now includes the clients array.

Made-with: Cursor
2026-03-12 08:26:16 -04:00
cottongin
658c0d4a15 docs: add dashboard and announce API documentation
Made-with: Cursor
2026-03-12 07:24:42 -04:00
cottongin
e5c06a2f67 docs: add live announce dashboard implementation plan
13-task TDD plan covering WebSocket manager, dashboard auth, announce
endpoint, styled UI, and bot plugin WS clients for both Sopel and Limnoria.

Made-with: Cursor
2026-03-12 07:08:02 -04:00
cottongin
47a78b09a7 docs: add live announce dashboard design document
Approved design for a web dashboard that lets the host announce tracks
to IRC in real-time during live shows via WebSocket push.

Made-with: Cursor
2026-03-12 07:04:53 -04:00
cottongin
b63c851d14 docs: add IRC bot plugins design and implementation plan
Made-with: Cursor
2026-03-12 03:20:45 -04:00
cottongin
1d08580a45 feat: add GET /shows/by-episode/{episode_number} endpoint
Allows looking up shows by episode number instead of internal DB ID,
enabling IRC bot commands like !playlist 530 to resolve directly.

Made-with: Cursor
2026-03-12 02:33:42 -04:00
cottongin
cb3ae403cf feat: add historical backfill with --init CLI and episode numbering
Adds a --init mode that seeds the database with past shows from a given
anchor episode/date forward, batch-fetching likes from SoundCloud and
partitioning them into weekly buckets. Episode numbers are tracked in
the shows table and auto-incremented by the poller for new shows.

Includes full API documentation (docs/api.md) and updated README.

Made-with: Cursor
2026-03-12 02:09:15 -04:00
cottongin
22f6b5cbca design: sync unliked tracks — remove from show and re-compact positions
Nick is the host; if he unlikes a track, the service should respect
that and remove it from the show playlist. Positions re-compact after
removal. The tracks table retains the record for historical reference.

Made-with: Cursor
2026-03-12 01:13:19 -04:00
cottongin
7eaf036d4b plan: add implementation plan for NtR SoundCloud fetcher
13-task TDD implementation plan covering project scaffolding, config,
week boundaries, database, SoundCloud client, poller, API, and entry point.

Made-with: Cursor
2026-03-12 01:05:52 -04:00
cottongin
48801afa76 Add design doc and SoundCloud API reference
Design for a SoundCloud likes fetcher service that builds weekly
playlists for Nick the Rat Radio and serves them via JSON API.

Made-with: Cursor
2026-03-12 01:01:14 -04:00