Files
homarr/src/modules/overseerr/TvShow.d.ts
2022-08-07 12:15:35 +02:00

296 lines
5.8 KiB
TypeScript

export interface TvShowResult {
createdBy: CreatedBy[];
episodeRunTime: number[];
firstAirDate: Date;
genres: Genre[];
relatedVideos: RelatedVideo[];
homepage: string;
id: number;
inProduction: boolean;
languages: string[];
lastAirDate: Date;
name: string;
networks: Network[];
numberOfEpisodes: number;
numberOfSeasons: number;
originCountry: string[];
originalLanguage: string;
originalName: string;
tagline: string;
overview: string;
popularity: number;
productionCompanies: Network[];
productionCountries: ProductionCountry[];
contentRatings: ContentRatings;
spokenLanguages: SpokenLanguage[];
seasons: TvShowResultSeason[];
status: string;
type: string;
voteAverage: number;
voteCount: number;
backdropPath: string;
lastEpisodeToAir: LastEpisodeToAir;
posterPath: string;
credits: Credits;
externalIds: ExternalIDS;
keywords: Genre[];
mediaInfo: Media;
watchProviders: WatchProvider[];
}
export interface ContentRatings {
results: Result[];
}
export interface Result {
iso_3166_1: string;
rating: string;
}
export interface CreatedBy {
id: number;
credit_id: string;
name: string;
gender: number;
profile_path: string;
}
export interface Credits {
cast: Cast[];
crew: Crew[];
}
export interface Cast {
character: string;
creditId: string;
id: number;
name: string;
order: number;
gender: number;
profilePath: null | string;
}
export interface Crew {
creditId: string;
department: string;
id: number;
job: string;
name: string;
gender: number;
profilePath: string;
}
export interface ExternalIDS {
facebookId: string;
freebaseId: null;
freebaseMid: string;
imdbId: string;
instagramId: string;
tvdbId: number;
tvrageId: number;
twitterId: string;
}
export interface Genre {
id: number;
name: string;
}
export interface LastEpisodeToAir {
id: number;
airDate: Date;
episodeNumber: number;
name: string;
overview: string;
productionCode: string;
seasonNumber: number;
showId: number;
voteAverage: number;
stillPath: string;
}
export interface Request {
id: number;
status: number;
createdAt: Date;
updatedAt: Date;
type: Type;
is4k: boolean;
serverId: null;
profileId: null;
rootFolder: null;
languageProfileId: null;
tags: null;
media: Media;
requestedBy: EdBy;
modifiedBy: EdBy;
seasons: MediaInfoSeason[];
seasonCount: number;
}
export interface Media {
downloadStatus: DownloadStatus[];
downloadStatus4k: any[];
id: number;
mediaType: Type;
tmdbId: number;
tvdbId: number;
imdbId: null;
status: number;
status4k: number;
createdAt: Date;
updatedAt: Date;
lastSeasonChange: Date;
mediaAddedAt: Date;
serviceId: number;
serviceId4k: null;
externalServiceId: number;
externalServiceId4k: null;
externalServiceSlug: string;
externalServiceSlug4k: null;
ratingKey: string;
ratingKey4k: null;
requests?: Request[];
issues?: any[];
seasons: MediaInfoSeason[];
plexUrl: string;
serviceUrl: string;
}
export interface EdBy {
permissions: number;
id: number;
email: string;
plexUsername: string;
username: string;
recoveryLinkExpirationDate: null;
userType: number;
avatar: string;
movieQuotaLimit: null;
movieQuotaDays: null;
tvQuotaLimit: null;
tvQuotaDays: null;
createdAt: Date;
updatedAt: Date;
settings: Settings;
requestCount: number;
displayName: string;
}
export interface Settings {
id: number;
locale: string;
region: string;
originalLanguage: null;
pgpKey: null;
discordId: string;
pushbulletAccessToken: null;
pushoverApplicationToken: null;
pushoverUserKey: null;
telegramChatId: null;
telegramSendSilently: null;
notificationTypes: NotificationTypes;
}
export interface NotificationTypes {
discord: number;
email: number;
webpush: number;
}
export interface MediaInfoSeason {
id: number;
seasonNumber: number;
status: number;
status4k?: number;
createdAt: Date;
updatedAt: Date;
}
export enum Type {
Tv = 'tv',
}
export interface DownloadStatus {
externalId: number;
estimatedCompletionTime: Date;
mediaType: Type;
size: number;
sizeLeft: number;
status: Status;
timeLeft: string;
title: string;
}
export enum Status {
Completed = 'completed',
Downloading = 'downloading',
}
export interface Network {
id: number;
name: Name;
originCountry?: string;
logoPath: LogoPath | null;
displayPriority?: number;
}
export enum LogoPath {
HbifXPpM55B1FL5WPo7T72VzN78PNG = '/hbifXPpM55B1fL5wPo7t72vzN78.png',
KhiCshsZBdtUUYOr4VLoCtuqCEqPNG = '/khiCshsZBdtUUYOr4VLoCtuqCEq.png',
O9ExgOSLF3OTwR6T3DJOuwOKJgqJpg = '/o9ExgOSLF3OTwR6T3DJOuwOKJgq.jpg',
PEURlLlr8JggOwK53FJ5WdQl05YJpg = '/peURlLlr8jggOwK53fJ5wdQl05y.jpg',
T2YyOv40HZeVlLjYsCSPHnWLk4WJpg = '/t2yyOv40HZeVlLjYsCsPHnWLk4W.jpg',
TBEdFQDwx5LEVr8WpSEXQSIirVqJpg = '/tbEdFQDwx5LEVr8WpSeXQSIirVq.jpg',
The5NyLm42TmCqCMOZFvH4FcoSNKEWJpg = '/5NyLm42TmCqCMOZFvH4fcoSNKEW.jpg',
WwemzKWzjKYJFfCeiB57Q3R4BcmPNG = '/wwemzKWzjKYJFfCeiB57q3r4Bcm.png',
}
export enum Name {
AmazonVideo = 'Amazon Video',
AppleITunes = 'Apple iTunes',
Channel4 = 'Channel 4',
GooglePlayMovies = 'Google Play Movies',
HouseOfTomorrow = 'House of Tomorrow',
Ivi = 'Ivi',
Netflix = 'Netflix',
Zeppotron = 'Zeppotron',
}
export interface ProductionCountry {
iso_3166_1: string;
name: string;
}
export interface RelatedVideo {
site: string;
key: string;
name: string;
size: number;
type: string;
url: string;
}
export interface TvShowResultSeason {
airDate: Date;
episodeCount: number;
id: number;
name: string;
overview: string;
seasonNumber: number;
posterPath: string;
}
export interface SpokenLanguage {
englishName: string;
iso_639_1: string;
name: string;
}
export interface WatchProvider {
iso_3166_1: string;
link: string;
buy: Network[];
flatrate: Network[];
}