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 4 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 |
GetUpNext now binds sort/sortDir and applies the shared watchedRefineSort scope, and the frontend passes the current sort. So the Up Next row follows the same order as the series list instead of insertion order. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
Small addition (pushed): the Up Next row now follows the same sort as the watched list ( |

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.