@alline/scraper-tvdb
Version:
TVDB scraper for Alline.
76 lines (75 loc) • 2.4 kB
TypeScript
import { EpisodeContext, EpisodeResult, EpisodeScraper } from "@alline/core";
import { AsyncSeriesWaterfallHook } from "tapable";
import { Moment } from "moment";
export interface TvdbEpisodeScraperOption {
apiKey: string;
userKey: string;
userName: string;
tvdbId: string;
acceptLanguage: string;
fields: ("title" | "aired" | "summary" | "thumbnails")[];
}
interface TvdbQueryResponse {
links: {
first: number;
last: number;
next?: number;
prev?: number;
};
data: {
id: number;
airedSeason: number;
airedSeasonID: number;
airedEpisodeNumber: number;
episodeName: string;
firstAired: string;
guestStars: string[];
directors: string[];
writers: string[];
overview: string;
language: {
episodeName: string;
overview: string;
};
productionCode: string;
showUrl: string;
lastUpdated: number;
dvdDiscid: string;
dvdSeason?: number;
dvdEpisodeNumber?: number;
dvdChapter?: number;
absoluteNumber: number;
filename: string;
seriesId: number;
lastUpdatedBy: number;
airsAfterSeason?: number;
airsBeforeSeason?: number;
airsBeforeEpisode?: number;
imdbId: string;
contentRating: string;
thumbAuthor: number;
thumbAdded: string;
thumbWidth: string;
thumbHeight: string;
siteRating: number;
siteRatingCount: number;
isMovie: number;
};
}
export interface TvdbEpisodeScraperHook {
transformTitle: AsyncSeriesWaterfallHook<[string[], EpisodeContext]>;
transformDate: AsyncSeriesWaterfallHook<[Moment, EpisodeContext]>;
transformSummary: AsyncSeriesWaterfallHook<[string, EpisodeContext]>;
transformThumbnails: AsyncSeriesWaterfallHook<[string[], EpisodeContext]>;
}
export declare class TvdbEpisodeScraper extends EpisodeScraper {
tvdbHooks: TvdbEpisodeScraperHook;
private axios;
private initToken;
private option;
constructor(option: TvdbEpisodeScraperOption);
protected onScrap(rlt: EpisodeResult, ctx: EpisodeContext): Promise<EpisodeResult>;
protected fetchEpisode(ctx: EpisodeContext): Promise<TvdbQueryResponse>;
protected initAuthToken(ctx: EpisodeContext): Promise<void>;
}
export {};