From ad4fa9d95a917b3aac08110ee44dc1cccb6dca3a Mon Sep 17 00:00:00 2001 From: KevinMidboe Date: Wed, 7 Feb 2018 15:40:39 +0100 Subject: [PATCH 1/4] Fixed issue with types not being upheld when converting from tmdb objects. --- seasoned_api/src/tmdb/convertTmdbToSeasoned.js | 7 ++++++- seasoned_api/src/tmdb/tmdb.js | 7 ++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/seasoned_api/src/tmdb/convertTmdbToSeasoned.js b/seasoned_api/src/tmdb/convertTmdbToSeasoned.js index 9fcbd4c..f30db22 100644 --- a/seasoned_api/src/tmdb/convertTmdbToSeasoned.js +++ b/seasoned_api/src/tmdb/convertTmdbToSeasoned.js @@ -9,10 +9,15 @@ function translateGenre(tmdbGenres) { return tmdbGenres.map(genre => genre.name); } +function convertType(tmdbType) { + if (tmdbType === 'tv') return 'show'; + return undefined; +} + function convertTmdbToSeasoned(tmdb, manualType = undefined) { const title = tmdb.title || tmdb.name; const year = translateYear(tmdb.release_date || tmdb.first_air_date); - const type = tmdb.media_type || manualType; + const type = manualType || convertType(tmdb.media_type) || 'movie'; const id = tmdb.id; const summary = tmdb.overview; diff --git a/seasoned_api/src/tmdb/tmdb.js b/seasoned_api/src/tmdb/tmdb.js index 84ff91b..269376b 100644 --- a/seasoned_api/src/tmdb/tmdb.js +++ b/seasoned_api/src/tmdb/tmdb.js @@ -12,7 +12,6 @@ const TMDB_METHODS = { }; class TMDB { - constructor(cache, apiKey, tmdbLibrary) { this.cache = cache; this.tmdbLibrary = tmdbLibrary || moviedb(apiKey); @@ -63,7 +62,7 @@ class TMDB { .catch(() => this.tmdb(this.tmdbMethod('search', type), query)) .catch(() => { throw new Error('Could not search for movies/shows at tmdb.'); }) .then(response => this.cache.set(cacheKey, response)) - .then(response => this.mapResults(response, type)) + .then(response => this.mapResults(response)) .catch((error) => { throw new Error(error); }) .then(([mappedResults, pagenumber, totalpages, total_results]) => ({ results: mappedResults, page: pagenumber, total_results, total_pages: totalpages, @@ -107,7 +106,9 @@ class TMDB { mapResults(response, type) { return Promise.resolve() .then(() => { - const mappedResults = response.results.map(result => convertTmdbToSeasoned(result, type)); + const mappedResults = response.results.filter((element) => { + return (element.type === 'movie' || element.type === 'tv'); + }).map((element) => convertTmdbToSeasoned(element, type)); return [mappedResults, response.page, response.total_pages, response.total_results]; }) .catch((error) => { throw new Error(error); }); From ba69893e217f5519e4c4f31783c2f1deb95ce20c Mon Sep 17 00:00:00 2001 From: Kevin Midboe Date: Wed, 7 Feb 2018 15:44:04 +0100 Subject: [PATCH 2/4] Removed static function. --- seasoned_api/src/plex/plexRepository.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/seasoned_api/src/plex/plexRepository.js b/seasoned_api/src/plex/plexRepository.js index bde5c01..a51f331 100644 --- a/seasoned_api/src/plex/plexRepository.js +++ b/seasoned_api/src/plex/plexRepository.js @@ -23,7 +23,7 @@ class PlexRepository { .then(([mappedResults, resultCount]) => ({ results: mappedResults, total_results: resultCount })); } - static compareTmdbToPlex(tmdb, plexResult) { + compareTmdbToPlex(tmdb, plexResult) { return Promise.resolve() .then(() => { plexResult.results.map((plexItem) => { @@ -34,7 +34,7 @@ class PlexRepository { }); } - static mapResults(response) { + mapResults(response) { return Promise.resolve() .then(() => { if (!response.MediaContainer.hasOwnProperty('Metadata')) return [[], 0]; From 7ee3ace83b24931b098f660e0b93ecec9ec4feb8 Mon Sep 17 00:00:00 2001 From: Kevin Midboe Date: Wed, 7 Feb 2018 15:44:24 +0100 Subject: [PATCH 3/4] Removed unused semicolon --- seasoned_api/src/tmdb/convertTmdbToSeasoned.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/seasoned_api/src/tmdb/convertTmdbToSeasoned.js b/seasoned_api/src/tmdb/convertTmdbToSeasoned.js index f30db22..05502b9 100644 --- a/seasoned_api/src/tmdb/convertTmdbToSeasoned.js +++ b/seasoned_api/src/tmdb/convertTmdbToSeasoned.js @@ -34,7 +34,7 @@ function convertTmdbToSeasoned(tmdb, manualType = undefined) { const seasoned = new TMDB( title, year, type, id, summary, poster_path, background_path, - popularity, score, release_status, tagline, seasons, episodes, + popularity, score, release_status, tagline, seasons, episodes ); // seasoned.print() From 528cbed30fc7b287ab6ca12bfda4aa1b03e9db7f Mon Sep 17 00:00:00 2001 From: KevinMidboe Date: Wed, 7 Feb 2018 15:53:27 +0100 Subject: [PATCH 4/4] Wasn't getting all the items because some elements do not have a media_type --- seasoned_api/src/tmdb/tmdb.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/seasoned_api/src/tmdb/tmdb.js b/seasoned_api/src/tmdb/tmdb.js index 269376b..da86ec9 100644 --- a/seasoned_api/src/tmdb/tmdb.js +++ b/seasoned_api/src/tmdb/tmdb.js @@ -107,7 +107,7 @@ class TMDB { return Promise.resolve() .then(() => { const mappedResults = response.results.filter((element) => { - return (element.type === 'movie' || element.type === 'tv'); + return (element.media_type === 'movie' || element.media_type === 'tv' || element.media_type === undefined); }).map((element) => convertTmdbToSeasoned(element, type)); return [mappedResults, response.page, response.total_pages, response.total_results]; })