mirror of
https://github.com/4gray/iptvnator.git
synced 2026-10-10 10:06:15 -08:00
feat(xtream): add catch-up playback to favorites and recent tabs (#1166)
Enables Xtream catch-up/timeshift from the Favorites and Recent surfaces (per-playlist and global), not just Live TV, and adds start-over replay of the currently-airing programme. Carries tv_archive/tv_archive_duration through the favorites and recently-viewed DB projections and maps them onto UnifiedCollectionItem; tv_archive_duration is interpreted as days, matching live-stream-layout.controlledArchiveDays. Closes #1138. Co-authored-by: Claude <noreply@anthropic.com>
This commit is contained in:
1 parent
c266eaa680
commit
2f8aee72df
25 files changed
+459
-48
No files matched your search
@@ -363,7 +363,8 @@ activation, and the details dialog behave identically to the timeline.
|
||||
no-EPG-anywhere states and while loading. Return-to-live is a playback control
|
||||
(`!isLivePlayback()`) and is independent of EPG state.
|
||||
- **State-driven affordances.** Blocks are coloured past / now / future, with a
|
||||
red "now" playhead. Catch-up "Watch" appears on past blocks only when
|
||||
red "now" playhead. Catch-up "Watch" appears on past blocks — and as a
|
||||
start-over replay button on the currently-airing block — only when
|
||||
`archivePlaybackAvailable` (Xtream `tv_archive`, M3U `catchup-*`); Stalker is
|
||||
schedule-only (dimmed past + a notice, no false buttons). The "i" button opens
|
||||
the shared `app-epg-item-description` dialog with a state-aware action.
|
||||
|
||||
@@ -111,3 +111,12 @@ playable. MPEG-TS is preferred before HLS when the provider allows it because
|
||||
some portals return a valid HLS manifest while the first media segment fails in
|
||||
Chromium/video.js. PWA fallback keeps the REST MPEG-TS URL when no Electron
|
||||
probe API is available.
|
||||
|
||||
Catch-up is offered from the Xtream Live TV tab and from the unified
|
||||
collection surfaces (per-playlist and global Favorites and Recent). The
|
||||
`tv_archive` / `tv_archive_duration` columns are carried through the
|
||||
favorites and recently-viewed DB projections and mapped onto
|
||||
`UnifiedCollectionItem.tvArchive` / `tvArchiveDuration` so the shared live
|
||||
tab can gate the timeline's archive window. `tv_archive_duration` is
|
||||
interpreted as **days** everywhere, matching
|
||||
`live-stream-layout.controlledArchiveDays` (issue #1138).
|
||||
Reference in new issue
Block a user