mirror of
https://github.com/4gray/iptvnator.git
synced 2026-10-09 17:36:15 -08:00
* Add scoped EPG security trust controls * fix: address scoped trust review feedback --------- Co-authored-by: 4gray <fourgray@proton.me>
82 lines
2.7 KiB
TypeScript
82 lines
2.7 KiB
TypeScript
import { Language } from './language.enum';
|
|
import { StreamFormat } from './stream-format.enum';
|
|
import { Theme } from './theme.enum';
|
|
|
|
/**
|
|
* Contains all types of supported video players
|
|
*/
|
|
export enum VideoPlayer {
|
|
VideoJs = 'videojs',
|
|
Html5Player = 'html5',
|
|
EmbeddedMpv = 'embedded-mpv',
|
|
MPV = 'mpv',
|
|
VLC = 'vlc',
|
|
ArtPlayer = 'artplayer',
|
|
}
|
|
|
|
export enum StartupBehavior {
|
|
FirstView = 'first-view',
|
|
RestoreLastView = 'restore-last-view',
|
|
}
|
|
|
|
export type CoverSize = 'small' | 'medium' | 'large';
|
|
|
|
/**
|
|
* Describes all available settings options of the application
|
|
*/
|
|
export interface Settings {
|
|
player: VideoPlayer;
|
|
epgUrl: string[];
|
|
streamFormat: StreamFormat;
|
|
openStreamOnDoubleClick: boolean;
|
|
language: Language;
|
|
showCaptions: boolean;
|
|
showDashboard: boolean;
|
|
startupBehavior: StartupBehavior;
|
|
/** Show the desktop footer bar for external playback status */
|
|
showExternalPlaybackBar?: boolean;
|
|
theme: Theme;
|
|
mpvPlayerPath: string;
|
|
/**
|
|
* Extra MPV CLI arguments entered one argument per line. Applied only when
|
|
* starting a new external MPV process.
|
|
*/
|
|
mpvPlayerArguments: string;
|
|
mpvReuseInstance: boolean;
|
|
vlcPlayerPath: string;
|
|
/**
|
|
* Extra VLC CLI arguments entered one argument per line. Applied only when
|
|
* starting a new external VLC process.
|
|
*/
|
|
vlcPlayerArguments: string;
|
|
vlcReuseInstance: boolean;
|
|
remoteControl: boolean;
|
|
remoteControlPort: number;
|
|
/** Custom download folder path (uses system Downloads folder if not set) */
|
|
downloadFolder?: string;
|
|
/** Custom live recording folder path (uses system Downloads folder if not set) */
|
|
recordingFolder?: 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;
|
|
/**
|
|
* Exact EPG source URLs the user has allowed to resolve to private/LAN
|
|
* network addresses. Kept source-scoped instead of disabling SSRF
|
|
* protection globally.
|
|
*/
|
|
trustedPrivateNetworkEpgUrls?: string[];
|
|
/**
|
|
* Lowercase hostnames whose invalid TLS certificates the user has chosen
|
|
* to trust. This is host-scoped and does not disable TLS validation for
|
|
* unrelated playlist or EPG hosts.
|
|
*/
|
|
trustedInsecureTlsHosts?: string[];
|
|
}
|