p-stream/src/providers/types.ts
2022-02-17 21:48:35 +01:00

48 lines
1,023 B
TypeScript

export enum MWMediaType {
MOVIE = "movie",
SERIES = "series",
ANIME = "anime",
}
export interface MWPortableMedia {
mediaId: string;
mediaType: MWMediaType;
providerId: string;
season?: number;
episode?: number;
}
export interface MWMedia extends MWPortableMedia {
title: string;
year: string;
}
export type MWProviderMediaResult = Omit<MWMedia, "mediaType" | "providerId">;
export interface MWQuery {
searchQuery: string;
type: MWMediaType;
}
export interface MWMediaProvider {
id: string; // id of provider, must be unique
enabled: boolean;
type: MWMediaType[];
displayName: string;
getMediaFromPortable(media: MWPortableMedia): Promise<MWProviderMediaResult>;
searchForMedia(query: MWQuery): Promise<MWProviderMediaResult[]>;
}
export interface MWMassProviderOutput {
providers: {
id: string,
success: boolean,
}[];
results: MWMedia[],
stats: {
total: number,
failed: number,
succeeded: number,
}
}