UNPKG

@episodehunter/thetvdb

Version:
53 lines (51 loc) 2.06 kB
/// <reference types="node" /> import fetch, { Response } from 'node-fetch'; import { TheTvDbShow, TheTvDbShowEpisode, TheTvDbUpdatedShowId, TheTvDbShowImage } from './types'; interface Options { /** First timeout */ timeout?: number; /** Canculate next timeout if the first timeout was met. @example const defaultNextTimeout = (currentTimeout: number) => { if (currentTimeout > 10000) { return null // Throw an timeout error } return currentTimeout + 1000 // timeout for the next try } */ nextTimeout?: (currentTimeout: number) => number | null; /** * Custom fetch function */ fetch?: typeof fetch; } export declare class TheTvDb { private apikey; private fetch; private options; jwt: Promise<string> | undefined; constructor(apikey: string, options?: Options); get token(): Promise<string>; fetchShow(theTvDbId: number, log?: (msg: string) => void): Promise<TheTvDbShow>; fetchShowEpisodes(theTvDbId: number, log?: (msg: string) => void): Promise<TheTvDbShowEpisode[]>; /** * Fetch the latest episodes. * Will return somewhere between 0 and numberOfEpisodes + 99 episodes */ fetchLatestShowEpisodes(theTvDbId: number, numberOfEpisodes: number, log?: (msg: string) => void): Promise<TheTvDbShowEpisode[]>; fetchLastUpdateShowsList(lastUpdate: number, log?: (msg: string) => void): Promise<TheTvDbUpdatedShowId[]>; fetchEpisodeImage(episodeId: number, log?: (msg: string) => void): Promise<Buffer>; fetchShowPoster(showId: number, log?: (msg: string) => void): Promise<Buffer>; fetchShowFanart(showId: number, log?: (msg: string) => void): Promise<Buffer>; private fetchEpisodePage; private fetchImage; private get; private fetchToken; } export declare function getHigestRating(images: TheTvDbShowImage[]): TheTvDbShowImage; export declare function handelHttpError(res: Response): Response; export declare function ensureArray<T = any>(data: T[]): T[]; export {};