feat: update getTrending to include config parameter for metadata retrieval

- Modifies the getTrending function to accept a configuration parameter
- Implements metadata retrieval using the getMeta function
- Adds error handling when retrieving metadata
This commit is contained in:
mrcanelas
2025-06-11 19:07:42 -03:00
parent b7b67b018b
commit 0c55c037e1
2 changed files with 15 additions and 7 deletions
+1 -1
View File
@@ -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);
+14 -6
View File
@@ -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);