From 4d7e51f9f918e923bc339c804b9df77129ccaa0c Mon Sep 17 00:00:00 2001 From: beatmasterRS Date: Sat, 27 Jul 2019 13:27:25 +0200 Subject: [PATCH 1/3] [Similar/Recommed TV Shows] added function to show recommed tvshows --- resources/lib/TheMovieDB.py | 19 ++++++++++++++++++- resources/lib/process.py | 23 +++++++++++++++++++++++ 2 files changed, 41 insertions(+), 1 deletion(-) diff --git a/resources/lib/TheMovieDB.py b/resources/lib/TheMovieDB.py index 142bd89dd..22aa2c223 100755 --- a/resources/lib/TheMovieDB.py +++ b/resources/lib/TheMovieDB.py @@ -32,7 +32,7 @@ POSTER_SIZE = "w500" URL_BASE = "http{}://api.themoviedb.org/3/".format("s" if addon.bool_setting("use_https") else "") ALL_MOVIE_PROPS = "account_states,alternative_titles,credits,images,keywords,release_dates,videos,translations,similar,reviews,lists,rating" -ALL_TV_PROPS = "account_states,alternative_titles,content_ratings,credits,external_ids,images,keywords,rating,similar,translations,videos" +ALL_TV_PROPS = "account_states,alternative_titles,content_ratings,credits,external_ids,images,keywords,rating,similar,recommendations,translations,videos" ALL_ACTOR_PROPS = "tv_credits,movie_credits,combined_credits,images,tagged_images" ALL_SEASON_PROPS = "videos,images,external_ids,credits" ALL_EPISODE_PROPS = "account_states,credits,external_ids,images,rating,videos" @@ -1161,6 +1161,23 @@ def get_similar_tvshows(tvshow_id): return handle_tvshows(response["similar"]["results"]) +def get_recommed_tvshows(tvshow_id): + ''' + return list with similar tvshows for show with *tvshow_id (TMDB ID) + ''' + params = {"append_to_response": ALL_TV_PROPS, + "language": addon.setting("LanguageID"), + "include_image_language": "en,null,%s" % addon.setting("LanguageID")} + if Login.check_login(): + params["session_id"] = Login.get_session_id() + response = get_data(url="tv/%s" % (tvshow_id), + params=params, + cache_days=10) + if not response.get("recommendations"): + return [] + return handle_tvshows(response["recommendations"]["results"]) + + def get_tvshows(tvshow_type): ''' return list with tv shows diff --git a/resources/lib/process.py b/resources/lib/process.py index e02d8b23f..25983baf3 100644 --- a/resources/lib/process.py +++ b/resources/lib/process.py @@ -112,6 +112,29 @@ def start_info_actions(info, params): media_type="tv") if tvshow_id: return tmdb.get_similar_tvshows(tvshow_id) + elif info == 'recommedtvshows': + tvshow_id = None + dbid = params.get("dbid") + name = params.get("name") + tmdb_id = params.get("tmdb_id") + tvdb_id = params.get("tvdb_id") + imdb_id = params.get("imdb_id") + if tmdb_id: + tvshow_id = tmdb_id + elif dbid and int(dbid) > 0: + tvdb_id = local_db.get_imdb_id("tvshow", dbid) + if tvdb_id: + tvshow_id = tmdb.get_show_tmdb_id(tvdb_id) + elif tvdb_id: + tvshow_id = tmdb.get_show_tmdb_id(tvdb_id) + elif imdb_id: + tvshow_id = tmdb.get_show_tmdb_id(imdb_id, "imdb_id") + elif name: + tvshow_id = tmdb.search_media(media_name=name, + year="", + media_type="tv") + if tvshow_id: + return tmdb.get_recommed_tvshows(tvshow_id) elif info == 'studio': if params.get("id"): return tmdb.get_company_data(params["id"]) From a405d550fb5f89561249bf1f87d799c233f2765a Mon Sep 17 00:00:00 2001 From: beatmasterRS Date: Sat, 27 Jul 2019 14:14:10 +0200 Subject: [PATCH 2/3] [Recommed Movies] added function to show recommed movies --- resources/lib/TheMovieDB.py | 14 ++++++++++++-- resources/lib/process.py | 7 +++++++ 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/resources/lib/TheMovieDB.py b/resources/lib/TheMovieDB.py index 22aa2c223..941339f62 100755 --- a/resources/lib/TheMovieDB.py +++ b/resources/lib/TheMovieDB.py @@ -7,7 +7,7 @@ from __future__ import absolute_import import re -import urllib +import urllib, xbmc from kodi65 import kodijson from kodi65 import addon @@ -31,7 +31,7 @@ IMAGE_BASE_URL = "http://image.tmdb.org/t/p/" POSTER_SIZE = "w500" URL_BASE = "http{}://api.themoviedb.org/3/".format("s" if addon.bool_setting("use_https") else "") -ALL_MOVIE_PROPS = "account_states,alternative_titles,credits,images,keywords,release_dates,videos,translations,similar,reviews,lists,rating" +ALL_MOVIE_PROPS = "account_states,alternative_titles,credits,images,keywords,release_dates,videos,translations,similar,recommendations,reviews,lists,rating" ALL_TV_PROPS = "account_states,alternative_titles,content_ratings,credits,external_ids,images,keywords,rating,similar,recommendations,translations,videos" ALL_ACTOR_PROPS = "tv_credits,movie_credits,combined_credits,images,tagged_images" ALL_SEASON_PROPS = "videos,images,external_ids,credits" @@ -1144,6 +1144,16 @@ def get_similar_movies(movie_id): return handle_movies(response["similar"]["results"]) +def get_recommed_movies(movie_id): + ''' + get dict list containing movies similar to *movie_id + ''' + response = get_movie(movie_id) + if not response or not response.get("recommendations"): + return [] + return handle_movies(response["recommendations"]["results"]) + + def get_similar_tvshows(tvshow_id): ''' return list with similar tvshows for show with *tvshow_id (TMDB ID) diff --git a/resources/lib/process.py b/resources/lib/process.py index 25983baf3..8dad64e79 100644 --- a/resources/lib/process.py +++ b/resources/lib/process.py @@ -89,6 +89,13 @@ def start_info_actions(info, params): dbid=params.get("dbid")) if movie_id: return tmdb.get_similar_movies(movie_id) + elif info == 'recommedmovies': + movie_id = params.get("id") + if not movie_id: + movie_id = tmdb.get_movie_tmdb_id(imdb_id=params.get("imdb_id"), + dbid=params.get("dbid")) + if movie_id: + return tmdb.get_recommed_movies(movie_id) elif info == 'similartvshows': tvshow_id = None dbid = params.get("dbid") From c8292c87b2bea88aa2b8ab1abef2116bf3eb3ed2 Mon Sep 17 00:00:00 2001 From: beatmasterRS Date: Sat, 27 Jul 2019 14:45:18 +0200 Subject: [PATCH 3/3] [Cleanup] import xbmc not needed anymore --- resources/lib/TheMovieDB.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/lib/TheMovieDB.py b/resources/lib/TheMovieDB.py index 941339f62..2281d0b98 100755 --- a/resources/lib/TheMovieDB.py +++ b/resources/lib/TheMovieDB.py @@ -7,7 +7,7 @@ from __future__ import absolute_import import re -import urllib, xbmc +import urllib from kodi65 import kodijson from kodi65 import addon