From efe66d779a6e25c55781ffcf5269ebf0e4266193 Mon Sep 17 00:00:00 2001 From: Michal Paulovic Date: Thu, 18 Oct 2018 14:34:21 +0200 Subject: [PATCH 1/2] add TMDB provider --- lib/AutoCompletion.py | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/lib/AutoCompletion.py b/lib/AutoCompletion.py index df6152f..2dfadc9 100644 --- a/lib/AutoCompletion.py +++ b/lib/AutoCompletion.py @@ -43,6 +43,8 @@ def get_autocomplete_items(search_str, limit=10, provider=None): provider = BingProvider(limit=limit) elif SETTING("autocomplete_provider") == "netflix": provider = NetflixProvider(limit=limit) + elif SETTING("autocomplete_provider") == "tmdb": + provider = TmdbProvider(limit=limit) else: provider = LocalDictProvider(limit=limit) provider.limit = limit @@ -138,6 +140,33 @@ def fetch_data(self, search_str): return [] return [i["title"] for i in result["groups"][0]["items"]] +class TmdbProvider(BaseProvider): + + BASE_URL = "https://www.themoviedb.org/search/multi?" + + def __init__(self, *args, **kwargs): + super(TmdbProvider, self).__init__(*args, **kwargs) + + def fetch_data(self, search_str): + url = "language=%s&query=%s" % (SETTING("autocomplete_lang"),urllib.quote_plus(search_str)) + result = get_JSON_response(url=self.BASE_URL + url, + headers=HEADERS, + folder="TMDB") + if not result or "results" not in result: + return [] + out = [] + for i in result["results"]: + title = None + if "media_type" in i: + if i["media_type"] == "movie": + title = i["title"] + elif i["media_type"] in ["tv", "person"]: + title = i["name"] + else: + title = i + out.append(title) + return out + class LocalDictProvider(BaseProvider): From 6b9167bd0dc5cb340e08fa0b1f5b1c84e1d4f06d Mon Sep 17 00:00:00 2001 From: Michal Paulovic Date: Thu, 18 Oct 2018 14:44:34 +0200 Subject: [PATCH 2/2] fix Netflix cache folder --- lib/AutoCompletion.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/AutoCompletion.py b/lib/AutoCompletion.py index 2dfadc9..eb11022 100644 --- a/lib/AutoCompletion.py +++ b/lib/AutoCompletion.py @@ -135,7 +135,7 @@ def fetch_data(self, search_str): url = "term=%s" % (urllib.quote_plus(search_str)) result = get_JSON_response(url=self.BASE_URL + url, headers=HEADERS, - folder="Bing") + folder="Netflix") if not result or not result["groups"]: return [] return [i["title"] for i in result["groups"][0]["items"]]