diff --git a/shared/xtream-item.interface.ts b/shared/xtream-item.interface.ts new file mode 100644 index 000000000..093b4d4c5 --- /dev/null +++ b/shared/xtream-item.interface.ts @@ -0,0 +1,11 @@ +export interface XtreamItem { + num: number; + name: string; + stream_type: 'live' | 'movie'; + stream_id: number; + stream_icon: string; + added: string; + category_id: string; + custom_sid: string; + direct_source: string; +} diff --git a/shared/xtream-live-stream.interface.ts b/shared/xtream-live-stream.interface.ts index 19f92777a..eafbc345a 100644 --- a/shared/xtream-live-stream.interface.ts +++ b/shared/xtream-live-stream.interface.ts @@ -1,14 +1,8 @@ -export interface XtreamLiveStream { - num: number; - name: string; +import { XtreamItem } from './xtream-item.interface'; + +export interface XtreamLiveStream extends XtreamItem { stream_type: 'live'; - stream_id: number; - stream_icon: string; epg_channel_id?: number; - added: string; - category_id: string; - custom_sid?: string; tv_archive: number; - direct_source?: string; tv_archive_duration: number; } diff --git a/shared/xtream-serie-details.interface.ts b/shared/xtream-serie-details.interface.ts new file mode 100644 index 000000000..137999310 --- /dev/null +++ b/shared/xtream-serie-details.interface.ts @@ -0,0 +1,57 @@ +export interface XtreamSerieDetails { + seasons: XtreamSerieSeason[]; + info: XtreamSerieInfo; + episodes: Record; +} + +export interface XtreamSerieInfo { + name: string; + cover: string; + plot: string; + cast: string; + director: string; + genre: string; + releaseDate: string; + last_modified: string; + rating: string; + rating_5based: number; + backdrop_path: string[]; + youtube_trailer: string; + episode_run_time: string; + category_id: string; +} + +export interface XtreamSerieEpisode { + id: string; + episode_num: number; + title: string; + container_extension: string; + info: { + tmdb_id: number; + releasedate: string; + plot: string; + duration_secs: number; + duration: string; + movie_image: string; + video: Record; // TODO + audio: Record; // TODO + bitrate: number; + rating: number; + season: string; + }; + custom_sid: string; + added: string; + season: number; + direct_source: string; +} + +export interface XtreamSerieSeason { + air_date: string; + episode_count: number; + id: number; + name: string; + overview: string; + season_number: number; + cover: string; + cover_big: string; +} diff --git a/shared/xtream-serie-item.interface.ts b/shared/xtream-serie-item.interface.ts new file mode 100644 index 000000000..378c759a7 --- /dev/null +++ b/shared/xtream-serie-item.interface.ts @@ -0,0 +1,18 @@ +export interface XtreamSerieItem { + num: number; + name: string; + series_id: number; + cover: string; + plot: string; + cast: string; + director: string; + genre: string; + releaseDate: string; + last_modified: string; + rating: string; + rating_5based: number; + backdrop_path: string[]; + youtube_trailer: string; + episode_run_time: string; + category_id: number; +} diff --git a/shared/xtream-vod-stream.interface.ts b/shared/xtream-vod-stream.interface.ts index a42cffd37..4df9d9449 100644 --- a/shared/xtream-vod-stream.interface.ts +++ b/shared/xtream-vod-stream.interface.ts @@ -1,14 +1,8 @@ -export interface XtreamVodStream { - num: number; - name: string; - stream_type: string; - stream_id: number; - stream_icon: string; +import { XtreamItem } from './xtream-item.interface'; + +export interface XtreamVodStream extends XtreamItem { + stream_type: 'movie'; rating: number; rating_5based: number; - added: string; - category_id: string; container_extension: string; - custom_sid: string; - direct_source: string; }