diff --git a/addon/index.js b/addon/index.js index 45002ba..1af89d4 100644 --- a/addon/index.js +++ b/addon/index.js @@ -110,7 +110,7 @@ addon.get("/:catalogChoices?/catalog/:type/:id/:extra?.json", async function (re } else { switch (id) { case "tmdb.trending": - metas = await getTrending(...args, genre); + metas = await getTrending(...args, genre, config); break; case "tmdb.favorites": metas = await getFavorites(...args, genre, sessionId); diff --git a/addon/lib/getTrending.js b/addon/lib/getTrending.js index 290ce54..c9476d4 100644 --- a/addon/lib/getTrending.js +++ b/addon/lib/getTrending.js @@ -1,22 +1,30 @@ require("dotenv").config(); const { MovieDb } = require("moviedb-promise"); const moviedb = new MovieDb(process.env.TMDB_API); -const { getGenreList } = require("./getGenreList"); -const { parseMedia } = require("../utils/parseProps"); +const { getMeta } = require("./getMeta"); -async function getTrending(type, language, page, genre) { - const media_type = type === "series" ? "tv" : type +async function getTrending(type, language, page, genre, config) { + const media_type = type === "series" ? "tv" : type; const parameters = { media_type, time_window: genre ? genre.toLowerCase() : "day", language, page, }; - const genreList = await getGenreList(language, type); + return await moviedb .trending(parameters) .then(async (res) => { - const metas = res.results.map(el => parseMedia(el, type, genreList)); + const metaPromises = res.results.map(item => + getMeta(type, language, item.id, config.rpdbkey) + .then(result => result.meta) + .catch(err => { + console.error(`Erro ao buscar metadados para ${item.id}:`, err.message); + return null; + }) + ); + + const metas = (await Promise.all(metaPromises)).filter(Boolean); return { metas }; }) .catch(console.error);