TV tracker
A friendlier front end for the 📺 tab of the Entertainment Tracker sheet. Sister app to Jackets & Manuscripts.
See CLAUDE.md for the data model and sheet rules.
Sheet changes made on 2026-10-18
- Full copy of
📺 kept as 📺 backup 2026-10-18.
- Added columns M–U to
📺: id (1–370, sheet order), Season, Episode, Started, Finished, Plan (dropdown), Up next #, Why, Sorted.
- New tabs:
📺 Log, 📺 Seasons, 📺 Quotes, 📺 Settings.
- Checked by script: columns A–L unchanged against the backup (372 rows, 1,480 dropdown cells), ids stored as plain numbers.
- Copied the C–F dropdown rules (chip mode) from row 372 down to row 1013 so shows added by the app get dropdowns.
Stage 2 (2026-10-18): Log and Library
app.html: Log tab (stat tiles, Watching now with +1 ep / log several / set position / next season / pause / finish,
Start watching from Next Up, Today / Yesterday / date backdating, recent episodes with edit and delete, episodes per week)
and Library tab (search, status chips, sortable table; a row opens the show panel (see Library rework below), which edits or adds a show writing only changed cells).
- Hosted as a private claude.ai artifact (mcp: Google Sheets get_values / append_values / update_values) and as
index.html on GitHub Pages.
node tests/smoke.mjs: Playwright smoke test against a fake sheet built from tests/fixture.json (390px and 1280px; also covers all 13 themes).
Stage 3 (2026-10-24): Plan
- Plan tab, top to bottom: Up next (about 10, with a why and Start watching; drag the grip handle to reorder, or Space, arrow keys, Space on the keyboard; only changed Up next # cells are written), Sort deck, Soon (with a Future releases section for Coming Soon shows by premiere date), Backlog (10 at a time, Show 10 more), Recent episodes (edit and delete)
with one-tap Up next / Soon, and a sort deck ranked by how promising each show looks (Someday comes back after a year).
- Putting a Watchlist show in Up next sets its status to Next Up; taking a Next Up show out sets it back to Watchlist.
- Dates show as
24 Oct 26 across the app.
📺 Seasons filled from TVmaze on 2026-10-24: 81 season rows for 27 Watching / Next Up / New Season / Coming Soon shows
(Robocop and Sucker Punch left out: no reliable match). Checked by script against the source file.
- Fix: the first rows written to an empty tab took the header's formatting, so dates read back as serial numbers.
The app now writes the first log rows directly into row 2 and reads serial dates correctly.
Stage 4 (2026-10-24): Dashboard
- Dashboard tab (read-only, never writes to the sheet): six tiles, episodes per month (last 12), a 53-week calendar, binge or weekly per show,
ratings, genres, library by status, platforms, how to watch, top actors and decades. Every tile, bar, row and calendar day opens a list;
tapping a show in it opens the show panel.
- Log-based panels show "Fills in as you log episodes on the Log tab." until the log has rows. Dashboard tests:
node tests/dashboard.mjs
(own fixture tests/dash-fixture.json); node tests/smoke.mjs still covers the rest.
Favourites (2026-10-26)
- Each show has a Favourite date (column V). The sticker is a TV-remote rubber button with a heart: tap it on a Library row, in the show panel (the header pill; the edit form has no Favourite field) or on the Log tab front page. It writes only that one cell (today's date, or blank to remove).
- Log tab, top to bottom: Watching now, stat tiles, Episodes per week, Last 5 watched and Favourites (5 that rotate daily; two columns from 900px), then Next Up (Start buttons). Tonight's pick was removed; Recent episodes moved to the Plan tab. Library has a Favourites filter and a sort by favourite date; the Dashboard has a Favourites tile. Tests:
node tests/favourites.mjs.
Themes
The app wears one show's look for the whole month (no drift): Jan Breaking Bad / Better Call Saul, Feb Deadwood, Mar Mr Inbetween,
Apr Chernobyl, May Hannibal, Jun Ripley, Jul The Sopranos, Aug Succession, Sep Fleabag, Oct Arcane, Nov Mad Men, Dec Blackadder the Third.
A plain navy Default is always one tap away. Source: design/themes-board.html (notes in design/theme-notes.md).
- Header: the palette button opens the menu (This month / shows by month / Your themes / Default); the arrows flick to the next or previous theme.
"This month" is the default.
- Settings (gear): pick a theme and edit its colours, heading and text fonts, roundness, grain and light/dark. Reset this theme, Save as a copy.
- Fonts change the wordmark and panel titles only. Body text stays Figtree, numbers stay Atkinson Hyperlegible; status chips keep the sheet's colours.
- Stored in this browser only, never in the sheet:
tv-theme (choice, auto = this month), tv-theme-edits, tv-theme-custom.
Sheet change 2026-10-26: Favourite
- Full copy of
📺 kept as 📺 backup 2026-10-26 (before Favourite).
- Added column V
Favourite (date, yyyy-mm-dd): a date means favourited that day, blank means not a favourite. Independent of the rating.
- Pre-marked 13 favourites on 2026-10-26: Hannibal, Arcane, Breaking Bad, Better Call Saul, Blackadder the Third, Fleabag, Chernobyl,
Deadwood, Mad Men, Mr Inbetween, Ripley, Succession, The Sopranos.
- Checked by script: A–U identical to the backup; V holds exactly those 13 dates.
以上为 README 的开头部分。其余内容请阅读原文。 查看完整 README ↗