@episodehunter/thetvdb
Version:
Helper lib for thetvdb api
53 lines (51 loc) • 2.06 kB
TypeScript
/// <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 {};