Skip to content

Add flowsheet show and djs playlists --full for complete past shows - #13

Merged
rybesh merged 1 commit into
mainfrom
flowsheet-show
Oct 25, 2026
Merged

rybesh merged 1 commit into
mainfrom
flowsheet-show

Conversation

@rybesh

@rybesh rybesh commented Oct 25, 2026

Copy link
Copy Markdown
Collaborator

Why

wxyc djs playlists returns only a 4-entry preview per show (the backend slices it in djs.service.ts), and the CLI had no command that returns a show's full track list — so there was no way to get a DJ's complete past playlists. The backend already serves exactly that at GET /flowsheet/playlist?show_id=N (getShowInfo; public, 404 for an unknown show); the CLI just never called it.

What

  • api.Client.Show(showID) — wraps /flowsheet/playlist, returning the decoded Show plus raw bytes, per the read-command convention. Only id, start_time, end_time, and entries are modeled; everything else (legacy_dj_name, previous_show_id/next_show_id, show_djs, …) rides through --json.
  • wxyc flowsheet show <show_id> — every entry of one show. The table is sorted into play order (the server sends entries newest-first); --json is the server body untouched.
  • wxyc djs playlists --full — fetches each listed show (one request per show). Table: one row per track (DATE SHOW ARTIST TRACK ALBUM), markers dropped. --json: an array of the full show bodies, each byte-for-byte. A show that fails to fetch fails the command, naming the show id.
  • README and the Playlist doc comment (which said no full-list endpoint existed) updated.

Tests

Red-green throughout: new httptest fixtures mirror the real /flowsheet/playlist shape (metadata spread at top level, entries, adjacent ids), each watched failing before the implementation. go vet ./... and go test ./... pass.

Also checked live against production: flowsheet show on a recent show lists all 26 tracks in play order, an unknown id exits 5 (HTTP 404: Show 1 not found), and djs playlists --full returns every track of all 9 shows linked to my account.

Not in scope

djs playlists still lists only shows linked through show_djs, so legacy tubafrenzy-era shows (which carry only legacy_dj_name) don't appear — that's the backend's WXYC/Backend-Service#2898, not something the CLI can fix.

🤖 Generated with Claude Code

`djs playlists` returns only a four-entry preview per show, and the CLI had
no way to fetch the rest. The backend already serves a show's complete
flowsheet at GET /flowsheet/playlist?show_id=N (public, 404 when missing).

- api.Client.Show wraps that endpoint (typed + raw, per the read convention)
- `wxyc flowsheet show <show_id>` lists every entry of one show; the table
  is in play order (the server sends newest-first), --json is the server body
- `wxyc djs playlists --full` fetches every listed show: one row per track,
  or with --json an array of the full show bodies, byte-for-byte

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@rybesh
rybesh merged commit cc7df16 into main Oct 25, 2026
1 check passed
@rybesh
rybesh deleted the flowsheet-show branch October 25, 2026 18:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant