29 lines
838 B
TypeScript
29 lines
838 B
TypeScript
import * as cache from "@lib/cache/cache.ts";
|
|
import { MovieDb } from "https://esm.sh/moviedb-promise@3.4.1";
|
|
const moviedb = new MovieDb(Deno.env.get("TMDB_API_KEY") || "");
|
|
|
|
export function searchMovie(query: string) {
|
|
return moviedb.searchMovie({ query });
|
|
}
|
|
|
|
export function getMovie(id: number) {
|
|
return moviedb.movieInfo({ id });
|
|
}
|
|
|
|
export function getMovieCredits(id: number) {
|
|
return moviedb.movieCredits(id);
|
|
}
|
|
|
|
export async function getMoviePoster(id: string): Promise<ArrayBuffer> {
|
|
const cachedPoster = await cache.get("posters:" + id);
|
|
|
|
if (cachedPoster) return cachedPoster as ArrayBuffer;
|
|
|
|
const posterUrl = `https://image.tmdb.org/t/p/original/${id}`;
|
|
const response = await fetch(posterUrl);
|
|
const poster = await response.arrayBuffer();
|
|
|
|
cache.set(`posters:${id}`, new Uint8Array());
|
|
return poster;
|
|
}
|