mirror of
https://github.com/4gray/iptvnator.git
synced 2026-10-10 10:06:15 -08:00
feat(xtream): fall back to uploaded XMLTV when provider has no EPG
Live TV channels in Xtream playlists go blank whenever the provider's get_short_epg returns nothing, even when the user has working XMLTV URLs in Settings. The XMLTV pipeline already populates epg_programs but only the M3U module was reading it. Wire those uploads up as a fallback for Xtream too: when the provider returns nothing for a channel with an epg_channel_id, look it up in the local table. A settings toggle flips the priority for users whose curated XMLTV is better than the provider's auto guide. EpgQueueService.enqueue() became async to batch the XMLTV lookup once per viewport change. To keep the queue consistent under fast scroll, all shared-state mutations now happen behind a generation counter so only the latest call commits. Per-method bridge gating in the new XtreamXmltvFallbackService keeps each path working when the preload exposes only one of the two endpoints.
This commit is contained in:
32 files changed
+1002
-133
No files matched your search
@@ -45,4 +45,12 @@ export interface Settings {
|
||||
downloadFolder?: string;
|
||||
/** Cover/poster sizing preset applied across grids and rails */
|
||||
coverSize?: CoverSize;
|
||||
/**
|
||||
* When true, the locally-parsed XMLTV programs (loaded from `epgUrl`)
|
||||
* take precedence over the Xtream provider's EPG for live TV channels.
|
||||
* When false (default), the Xtream provider's EPG is preferred and
|
||||
* XMLTV is consulted only when the provider returns no programs.
|
||||
* Only meaningful for Xtream playlists in Electron.
|
||||
*/
|
||||
preferUploadedEpgOverXtream?: boolean;
|
||||
}
|
||||
Reference in new issue
Block a user