From 7f12e5422e7860f01bd591ec9ab23abe44d05f79 Mon Sep 17 00:00:00 2001 From: Silas Alves Date: Thu, 21 Jan 2021 09:28:20 -0300 Subject: [PATCH] Added new manifest --- beamup.json | 2 +- index.js | 5 +++++ lib/getManifest.js | 41 +++++++++++++++++++++++++++++++++---- lib/getMeta.js | 50 +++++++++++++++++++++++----------------------- 4 files changed, 68 insertions(+), 30 deletions(-) diff --git a/beamup.json b/beamup.json index 4fd60ff..8c706e7 100644 --- a/beamup.json +++ b/beamup.json @@ -1,4 +1,4 @@ { "projectName": "tmdb-addon", - "lastCommit": "da0459d" + "lastCommit": "826d320" } \ No newline at end of file diff --git a/index.js b/index.js index b60acac..d3e9209 100644 --- a/index.js +++ b/index.js @@ -13,6 +13,11 @@ var respond = function (res, data) { res.send(data); }; +addon.get("/manifest.json", async function (req, res) { + const resp = await getManifest() + respond(res, resp); +}); + addon.get("/:language/manifest.json", async function (req, res) { const language = req.params.language const resp = await getManifest(language) diff --git a/lib/getManifest.js b/lib/getManifest.js index 5d4670f..88f28bf 100644 --- a/lib/getManifest.js +++ b/lib/getManifest.js @@ -2,8 +2,9 @@ const { MovieDb } = require("moviedb-promise"); const moviedb = new MovieDb(process.env.tmdb_api); async function getManifest(language) { - const genre = moviedb - .genreMovieList({ language: language }) + if (language != null) { + const genre = moviedb + .genreMovieList({ language: 'en-US' }) .then((res) => { return res.genres; }) @@ -13,7 +14,7 @@ async function getManifest(language) { return el.name; }); const genre_tv = moviedb - .genreTvList({ language: language }) + .genreTvList({ language: 'en-US' }) .then((res) => { return res.genres; }) @@ -34,7 +35,7 @@ async function getManifest(language) { idPrefixes: ["tmdb:"], behaviorHints: { configurable: true, - configurationRequired: false, + configurationRequired: true, }, catalogs: [ { @@ -52,6 +53,38 @@ async function getManifest(language) { ], }; return manifest; + } else { + const manifest = { + id: "tmdb.addon", + version: "0.0.1", + icon: + "https://pbs.twimg.com/profile_images/1243623122089041920/gVZIvphd_400x400.jpg", + name: "The Movie Database Addon", + description: "TMDB API for Stremio.", + resources: ["catalog", "meta"], + types: ["movie", "series"], + idPrefixes: ["tmdb:"], +// behaviorHints: { +// configurable: true, +// configurationRequired: false, +// }, + catalogs: [ + { + type: "movie", + id: "movie.top", + extraSupported: ["search", "genre", "skip"], + genres: genres_movie, + }, + { + type: "series", + id: "series.top", + extraSupported: ["search", "genre", "skip"], + genres: genres_series, + }, + ], + }; + return manifest; + } } module.exports = { getManifest }; diff --git a/lib/getMeta.js b/lib/getMeta.js index 2353464..f6160b7 100644 --- a/lib/getMeta.js +++ b/lib/getMeta.js @@ -9,17 +9,17 @@ const moviedb = new MovieDb(process.env.tmdb_api); async function getMeta(type, language, tmdbId) { if (type === "movie") { - const get_logo = await getLogo(type, tmdbId) - const logo = get_logo.map((el) => { - return el.url - }) - const resp = await getVideos(type, language, tmdbId); - const credits = await getCredits(type, language, tmdbId); - const crew = await getDirector(type, language, tmdbId); - const cast = credits.slice(0, 4).map((el) => { - return el.name; - }); - const director = crew.find((x) => x.job === "Director").name; +// const get_logo = await getLogo(type, tmdbId) +// const logo = get_logo.map((el) => { +// return el.url +// }) +// const resp = await getVideos(type, language, tmdbId); +// const credits = await getCredits(type, language, tmdbId); +// const crew = await getDirector(type, language, tmdbId); +// const cast = credits.slice(0, 4).map((el) => { +// return el.name; +// }); +// const director = crew.find((x) => x.job === "Director").name; const metas = moviedb .movieInfo({ id: tmdbId, language: language }) .then((res) => { @@ -38,32 +38,32 @@ async function getMeta(type, language, tmdbId) { runtime, backdrop_path, } = await metas; - const genero = genres.map((el) => { - return el.name; - }); - const videos = resp.map((el) => { - return { - source: `${el.key}`, - type: `${el.type}`, - }; - }); +// const genero = genres.map((el) => { +// return el.name; +// }); +// const videos = resp.map((el) => { +// return { +// source: `${el.key}`, +// type: `${el.type}`, +// }; +// }); let meta = { id: `tmdb:${tmdbId}`, imdb_id: `${imdb_id}`, type: type, name: `${title}`, imdbRating: `${vote_average}`, - genres: genero, - cast: cast, - director: [`${director}`], +// genres: genero, +// cast: cast, +// director: [`${director}`], poster: `https://image.tmdb.org/t/p/original${poster_path}`, posterShape: "regular", description: `${overview}`, runtime: `${runtime} mim`, background: `https://image.tmdb.org/t/p/original${backdrop_path}`, - logo: (logo.slice(0,1)).toString(), +// logo: (logo.slice(0,1)).toString(), releaseInfo: `${release_date.substr(0, 4)}`, - trailers: videos, +// trailers: videos, }; return Promise.resolve({ meta }); } else {