summaryrefslogtreecommitdiffstats
path: root/addons/metadata.tvshows.themoviedb.org.python/libs/traktratings.py
diff options
context:
space:
mode:
Diffstat (limited to 'addons/metadata.tvshows.themoviedb.org.python/libs/traktratings.py')
-rw-r--r--addons/metadata.tvshows.themoviedb.org.python/libs/traktratings.py66
1 files changed, 66 insertions, 0 deletions
diff --git a/addons/metadata.tvshows.themoviedb.org.python/libs/traktratings.py b/addons/metadata.tvshows.themoviedb.org.python/libs/traktratings.py
new file mode 100644
index 0000000..48091b5
--- /dev/null
+++ b/addons/metadata.tvshows.themoviedb.org.python/libs/traktratings.py
@@ -0,0 +1,66 @@
+# -*- coding: UTF-8 -*-
+#
+# Copyright (C) 2020, Team Kodi
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
+# pylint: disable=missing-docstring
+
+"""Functions to interact with Trakt API"""
+
+from __future__ import absolute_import, unicode_literals
+
+from . import api_utils, settings
+try:
+ from typing import Text, Optional, Union, List, Dict, Any # pylint: disable=unused-import
+except ImportError:
+ pass
+
+
+HEADERS = (
+ ('User-Agent', 'Kodi TV Show scraper by Team Kodi; contact pkscout@kodi.tv'),
+ ('Accept', 'application/json'),
+ ('trakt-api-key', settings.TRAKT_CLOWNCAR),
+ ('trakt-api-version', '2'),
+ ('Content-Type', 'application/json'),
+)
+api_utils.set_headers(dict(HEADERS))
+
+SHOW_URL = 'https://api.trakt.tv/shows/{}'
+EP_URL = SHOW_URL + '/seasons/{}/episodes/{}/ratings'
+
+
+def get_details(imdb_id, season=None, episode=None):
+ # type: (Text, Text, Text) -> Dict
+ """
+ get the Trakt ratings
+
+ :param imdb_id:
+ :param season:
+ :param episode:
+ :return: trackt ratings
+ """
+ result = {}
+ if season and episode:
+ url = EP_URL.format(imdb_id, season, episode)
+ params = None
+ else:
+ url = SHOW_URL.format(imdb_id)
+ params = {'extended': 'full'}
+ resp = api_utils.load_info(
+ url, params=params, default={}, verboselog=settings.VERBOSELOG)
+ rating = resp.get('rating')
+ votes = resp.get('votes')
+ if votes and rating:
+ result['ratings'] = {'trakt': {'votes': votes, 'rating': rating}}
+ return result