feat: "Up Next" row on the overview (next unwatched episode per show)#1069
feat: "Up Next" row on the overview (next unwatched episode per show)#1069fjacques-2025 wants to merge 3 commits into
Conversation
Add GET /watched/upnext returning the next unwatched episode per in-progress (Watching) show, and an "Up Next" horizontal row on the overview page with a quick "mark watched" action that advances to the next episode. Episodes are offered regardless of TMDB air_date (which reflects TV broadcast, not streaming/replay availability); the broadcast date is shown on each card, flagging episodes not yet aired. Relates to sbondCo#1008, sbondCo#903.
|
Hi, thank you for taking the time on this. I'll have to think about implementation, I have a feeling this should wait until after we have refreshing of our own data to avoid having to rewrite this feature to use it later. |
|
Thanks, that makes sense — I'd rather it fit the eventual data-refresh work than be For what it's worth, the current implementation is fairly decoupled: it reads the I'll leave this as a draft for reference. Is the data-refresh mechanism (#1048/#1049) |
- Add a 'Drop' button on Up Next cards (PUT /watched/:id status=DROPPED) so a show can be abandoned from the overview without opening it; it then leaves the row. - Show the season episode count (e.g. S6.E2/12) via a new seasonEpisodeCount field.
|
Update — I've been running this on my own instance in daily use, and it's working "Up Next" row on the overview — for each in-progress show, its next unwatched
Backend is a single Still a draft — I understand you'd rather land this after the data-refresh work so it |

What
Adds an "Up Next" row at the top of the overview: for each in-progress (Watching)
show, it shows the next unwatched episode with a quick "✓ Watched" action that
marks it and advances the card to the following episode.
Relates to #1008 (the unwatched "to watch" part) and #903 (quick-mark next episode).
How
GET /watched/upnextreturning the next unwatched episode perWatching show (
server/feature/watched/watched_upnext.go); scans seasons fromthe highest watched one using cached TMDB season details.
ContentProvidergainsSeasonDetails.UpNext.svelte(aHorizontalList) on the overview; "✓ Watched"reuses
POST /watched/episodethen refreshes.Design note
Episodes are offered regardless of TMDB
air_date: that date is the TV broadcastschedule and doesn't reflect streaming/replay availability (a fully streamable show
can still have "future" broadcast dates). The broadcast date is shown on each card,
flagging not-yet-aired episodes — broadcast viewers know to wait, streaming viewers
can mark ahead.
Draft — open questions
/watched/upnextendpoint preferred over computing client-side?Not included yet: rating from the card; the "upcoming calendar" half of #1008
(depends on a periodic refresh mechanism, #1048/#1049).
Testing
Ran locally (Go + SvelteKit). Marking advances the card; the row clears when a show
is fully watched.