You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
857 B
36 lines
857 B
import { MWEmbed } from "./embed"; |
|
import { MWStream } from "./streams"; |
|
import { DetailedMeta } from "../metadata/getmeta"; |
|
import { MWMediaType } from "../metadata/types/mw"; |
|
|
|
export type MWProviderScrapeResult = { |
|
stream?: MWStream; |
|
embeds: MWEmbed[]; |
|
}; |
|
|
|
type MWProviderBase = { |
|
progress(percentage: number): void; |
|
media: DetailedMeta; |
|
}; |
|
type MWProviderTypeSpecific = |
|
| { |
|
type: MWMediaType.MOVIE | MWMediaType.ANIME; |
|
episode?: undefined; |
|
season?: undefined; |
|
} |
|
| { |
|
type: MWMediaType.SERIES; |
|
episode: string; |
|
season: string; |
|
}; |
|
export type MWProviderContext = MWProviderTypeSpecific & MWProviderBase; |
|
|
|
export type MWProvider = { |
|
id: string; |
|
displayName: string; |
|
rank: number; |
|
disabled?: boolean; |
|
type: MWMediaType[]; |
|
|
|
scrape(ctx: MWProviderContext): Promise<MWProviderScrapeResult>; |
|
};
|
|
|