feat(downloads): save completed Xtream archive programmes as TS

This commit is contained in:
4gray committed 2026-09-07 21:32:58 +02:00
1 parent dcaeb26849
commit 316243f45d
74 files changed
+1678 -269

No files matched your search

+2
View File
@@ -94,3 +94,5 @@ export * from './lib/stalker-vod-details.interface';
// Unified VOD details (discriminated union + adapters)
export * from './lib/vod-details-adapters';
export * from './lib/vod-details-item.interface';
export * from './lib/catchup-download.interface';
@@ -0,0 +1,10 @@
/** Provider-clock instants in seconds; independent of the viewer's EPG offset. */
export interface CatchupDownloadMetadata {
channelName: string;
startTimestamp: number;
stopTimestamp: number;
/** Last known archive availability; absent when the provider gives no window. */
expiresAt?: number;
}
export type DownloadContentType = 'vod' | 'episode' | 'catchup';
@@ -1,3 +1,7 @@
import type {
CatchupDownloadMetadata,
DownloadContentType,
} from './catchup-download.interface';
import {
EmbeddedMpvBounds,
EmbeddedMpvRecordingStartOptions,
@@ -585,7 +589,8 @@ export interface ElectronBridgeDownloadHeaders {
export interface ElectronBridgeDownloadStartPayload {
playlistId: string;
xtreamId: number;
contentType: ElectronBridgePlaybackContentType;
contentType: DownloadContentType;
catchup?: CatchupDownloadMetadata | null;
title: string;
url: string;
posterUrl?: string;
@@ -616,7 +621,8 @@ export interface ElectronDownloadItem {
id: number;
playlistId: string;
xtreamId: number;
contentType: ElectronBridgePlaybackContentType;
contentType: DownloadContentType;
catchup?: CatchupDownloadMetadata | null;
seriesXtreamId?: number;
seasonNumber?: number;
episodeNumber?: number;