diff --git a/channels/streamingcommunity.py b/channels/streamingcommunity.py index 36c70dfa..3eeb1bfa 100644 --- a/channels/streamingcommunity.py +++ b/channels/streamingcommunity.py @@ -153,6 +153,7 @@ def peliculas(item): itemlist.append(item.clone(title=support.typo(support.config.get_localized_string(30992), 'color kod bold'), thumbnail=support.thumb(), records=[], page=page + 1)) support.tmdb.set_infoLabels_itemlist(itemlist, seekTmdb=True) + support.check_trakt(itemlist) return itemlist def makeItem(n, it, item): @@ -193,11 +194,13 @@ def episodios(item): for episodes in js: logger.debug(jsontools.dump(js)) for it in episodes['episodes']: - + itemlist.append( item.clone(title=support.typo(str(episodes['number']) + 'x' + str(it['number']).zfill(2) + ' - ' + support.cleantitle(it['name']), 'bold'), episode=it['number'], season=episodes['number'], + contentSeason=episodes['number'], + contentEpisodeNumber=it['number'], thumbnail=it['images'][0]['original_url'] if 'images' in it and 'original_url' in it['images'][0] else item.thumbnail, contentThumbnail=item.thumbnail, fanart=item.fanart, @@ -209,6 +212,8 @@ def episodios(item): url=host + '/watch/' + str(episodes['title_id']), episodeid= '?e=' + str(it['id']))) + + support.check_trakt(itemlist) support.videolibrary(itemlist, item) support.download(itemlist, item) return itemlist diff --git a/core/support.py b/core/support.py index 67aba48d..8a391ddd 100755 --- a/core/support.py +++ b/core/support.py @@ -653,9 +653,7 @@ def scrape(func): # itemlist = filterLang(item, itemlist) # causa problemi a newest - if config.get_setting('trakt_sync'): - from core import trakt_tools - trakt_tools.trakt_check(itemlist) + check_trakt(itemlist) return itemlist return wrapper @@ -1620,4 +1618,10 @@ def vttToSrt(data): else: ret += line + os.linesep - return ret \ No newline at end of file + return ret + +def check_trakt(itemlist): + if config.get_setting('trakt_sync'): + from core import trakt_tools + trakt_tools.trakt_check(itemlist) + return itemlist \ No newline at end of file diff --git a/core/trakt_tools.py b/core/trakt_tools.py index bf00588a..90d81207 100644 --- a/core/trakt_tools.py +++ b/core/trakt_tools.py @@ -3,11 +3,14 @@ # -*- Created for Alfa-addon -*- # -*- By the Alfa Develop Group -* +#from builtins import str + import os, xbmc -from core import httptools, jsontools +from core import httptools, jsontools from core.item import Item from platformcode import config, logger from threading import Thread + import sys if sys.version_info[0] >= 3: from concurrent import futures else: from concurrent_py2 import futures @@ -26,7 +29,7 @@ def auth_trakt(): post = {'client_id': client_id} post = jsontools.dump(post) # Se solicita url y código de verificación para conceder permiso a la app - url = "http://api.trakt.tv/oauth/device/code" + url = "http://api-v2launch.trakt.tv/oauth/device/code" data = httptools.downloadpage(url, post=post, headers=headers).data data = jsontools.load(data) item.verify_url = data["verification_url"] @@ -57,14 +60,13 @@ def token_trakt(item): try: if item.extra == "renew": refresh = config.get_setting("refresh_token_trakt", "trakt") - url = "http://api.trakt.tv/oauth/device/token" + url = "https://api.trakt.tv/oauth/token" post = {'refresh_token': refresh, 'client_id': client_id, 'client_secret': client_secret, 'redirect_uri': 'urn:ietf:wg:oauth:2.0:oob', 'grant_type': 'refresh_token'} - post = jsontools.dump(post) - data = httptools.downloadpage(url, post=post, headers=headers).data + data = httptools.downloadpage(url, post=post).data data = jsontools.load(data) elif item.action == "token_trakt": - url = "http://api.trakt.tv/oauth/device/token" + url = "https://api-v2launch.trakt.tv/oauth/device/token" post = "code=%s&client_id=%s&client_secret=%s" % (item.device_code, client_id, client_secret) data = httptools.downloadpage(url, post=post, headers=headers).data data = jsontools.load(data) @@ -83,7 +85,7 @@ def token_trakt(item): config.set_setting("trakt_sync", False) return - url = "http://api.trakt.tv/oauth/device/token" + url = "http://api-v2launch.trakt.tv/oauth/device/token" post = {'code': item.device_code, 'client_id': client_id, 'client_secret': client_secret} post = jsontools.dump(post) data = httptools.downloadpage(url, post=post, headers=headers).data @@ -106,9 +108,7 @@ def token_trakt(item): config.set_setting("refresh_token_trakt", refresh, "trakt") if not item.folder: platformtools.dialog_notification(config.get_localized_string(60255), config.get_localized_string(60256)) - if config.is_xbmc(): - import xbmc - xbmc.executebuiltin("Container.Refresh") + xbmc.executebuiltin("Container.Refresh") return except: @@ -166,8 +166,12 @@ def get_trakt_watched(id_type, mediatype, update=False): if token_auth: headers.append(['Authorization', "Bearer %s" % token_auth]) url = "https://api.trakt.tv/sync/watched/%s" % mediatype - data = httptools.downloadpage(url, headers=headers).data - watched_dict = jsontools.load(data) + data = httptools.downloadpage(url, headers=headers) + if data.code == 401: + token_trakt(Item(extra="renew")) + return get_trakt_watched(id_type, mediatype, update) + + watched_dict = jsontools.load(data.data) if mediatype == 'shows': @@ -266,14 +270,12 @@ def ask_install_script(): def wait_for_update_trakt(): logger.debug() - t = Thread(target=update_all) + t = Thread(update_all) t.setDaemon(True) t.start() t.is_alive() - def update_all(): - # from core.support import dbg;dbg() from time import sleep logger.debug() sleep(20) @@ -282,4 +284,3 @@ def update_all(): for mediatype in ['movies', 'shows']: trakt_data = get_trakt_watched('tmdb', mediatype, True) update_trakt_data(mediatype, trakt_data) -