From 683ba9da45d2bec35d2085ba8c8b7e66401941af Mon Sep 17 00:00:00 2001 From: Paco8 <5084042+Paco8@users.noreply.github.com> Date: Fri, 15 Dec 2023 15:44:42 +0100 Subject: [PATCH] Version 0.8.3 --- addon.xml | 2 +- .../language/resource.language.en_gb/strings.po | 10 ++++++++++ .../language/resource.language.es_es/strings.po | 10 ++++++++++ resources/lib/movistar.py | 14 ++++++++++---- resources/lib/plugin.py | 2 +- resources/lib/proxy.py | 17 +++++++++++------ 6 files changed, 43 insertions(+), 12 deletions(-) diff --git a/addon.xml b/addon.xml index a28a217..5f81527 100644 --- a/addon.xml +++ b/addon.xml @@ -1,7 +1,7 @@ diff --git a/resources/language/resource.language.en_gb/strings.po b/resources/language/resource.language.en_gb/strings.po index bb92021..8f5988d 100644 --- a/resources/language/resource.language.en_gb/strings.po +++ b/resources/language/resource.language.en_gb/strings.po @@ -138,6 +138,16 @@ msgctxt "#30037" msgid "Enable HDCP" msgstr "" +# For SkyOTT only +msgctxt "#30038" +msgid "Include forced subtitles" +msgstr "" + +# For SkyOTT only +msgctxt "#30039" +msgid "Include non forced subtitles" +msgstr "" + # For SkyOTT only msgctxt "#30040" msgid "Use for these languages (e.g.: es en pt):" diff --git a/resources/language/resource.language.es_es/strings.po b/resources/language/resource.language.es_es/strings.po index 9148077..b3051c2 100644 --- a/resources/language/resource.language.es_es/strings.po +++ b/resources/language/resource.language.es_es/strings.po @@ -122,6 +122,16 @@ msgctxt "#30037" msgid "Enable HDCP" msgstr "Habilitar HDCP" +# For SkyOTT only +msgctxt "#30038" +msgid "Include forced subtitles" +msgstr "Incluir subtítulos forzados" + +# For SkyOTT only +msgctxt "#30039" +msgid "Include non forced subtitles" +msgstr "Incluir subtítulos no forzados" + # For SkyOTT only msgctxt "#30040" msgid "Use for these languages (e.g.: es en pt):" diff --git a/resources/lib/movistar.py b/resources/lib/movistar.py index 05aaf8b..5f0dc79 100644 --- a/resources/lib/movistar.py +++ b/resources/lib/movistar.py @@ -133,7 +133,7 @@ class Movistar(object): LOG('device_id: {}'. format(self.account['device_id'])) # Tokens - content = self.cache.load('tokens.json', 60*24) + content = self.cache.load('tokens.json', 3) if content: data = json.loads(content) else: @@ -296,7 +296,7 @@ class Movistar(object): self.cache.remove_file('tokens.json') def get_devices(self, use_cache=True): - content = self.cache.load('devices.json', 60) + content = self.cache.load('devices.json', 3) if use_cache and content: data = json.loads(content) else: @@ -436,9 +436,12 @@ class Movistar(object): if self.quality == 'UHD': url += '&filterQuality=UHD' #print(url) data = self.net.load_data(url) - self.cache.save_file(cache_filename, json.dumps(data, ensure_ascii=False)) + if not 'error' in data: + self.cache.save_file(cache_filename, json.dumps(data, ensure_ascii=False)) epg = {} + if 'error' in data: return epg + for ch in data: id = ch[0]['Canal']['CodCadenaTv'] if not id in epg: epg[id] = [] @@ -557,9 +560,12 @@ class Movistar(object): url = self.endpoints['canales'].format(deviceType='webplayer', profile=self.account['platform'], mdrm='true', demarcation=demarcation) if self.quality == 'UHD': url += '&filterQuality=UHD' data = self.net.load_data(url) - self.cache.save_file(cache_filename, json.dumps(data, ensure_ascii=False)) + if not 'error' in data: + self.cache.save_file(cache_filename, json.dumps(data, ensure_ascii=False)) res = [] + if 'error' in data: return res + for c in data: t = {} t['info'] = {} diff --git a/resources/lib/plugin.py b/resources/lib/plugin.py index ac9a4a3..af4ec38 100644 --- a/resources/lib/plugin.py +++ b/resources/lib/plugin.py @@ -78,7 +78,7 @@ def play(params): if 'resultData' in d and 'cToken' in d['resultData']: token = d['resultData']['cToken'] - if not addon.getSettingBool('open_session'): + if stype == 'vod': d = m.delete_session() session_opened = False LOG('Delete session: d: {}'.format(d)) diff --git a/resources/lib/proxy.py b/resources/lib/proxy.py index d36467c..4cca3f7 100644 --- a/resources/lib/proxy.py +++ b/resources/lib/proxy.py @@ -50,7 +50,7 @@ ttml = Ttml2SsaAddon() session = requests.Session() session.headers.update({'user-agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:88.0) Gecko/20100101 Firefox/88.0'}) -previous_token = '' +previous_tokens = [] reregister_needed = False @@ -170,20 +170,24 @@ class RequestHandler(BaseHTTPRequestHandler): token = params['token'] LOG('token: {}'.format(token)) - global previous_token, reregister_needed + global previous_tokens, reregister_needed while True: LOG('reregister_needed: {}'.format(reregister_needed)) if reregister_needed and xbmcaddon.Addon().getSettingBool('reregister'): mvs().unregister_device() mvs().register_device() - if previous_token == token and params['stype'] == 'vod': + if token in previous_tokens and params['stype'] == 'vod': + LOG('duplicated token') + LOG('previous_tokens: {}'.format(previous_tokens)) d = mvs().open_session(params['session_request'], params['session_token']) - LOG('open_session: d: {}'.format(d)) + LOG('Open session (proxy): d: {}'.format(d)) if 'resultData' in d and 'cToken' in d['resultData']: token = d['resultData']['cToken'] LOG('new token: {}'.format(token)) - previous_token = token + session_response = mvs().delete_session() + LOG('Delete session (proxy): {}'.format(session_response)) + previous_tokens.append(token) headers = { 'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:88.0) Gecko/20100101 Firefox/88.0', @@ -216,9 +220,10 @@ class RequestHandler(BaseHTTPRequestHandler): self.send_response(response.status_code) self.end_headers() self.wfile.write(license_data) - except Exception: + except Exception as e: self.send_response(500) self.end_headers() + LOG('Exception error: {}'.format(str(e))) HOST = '127.0.0.1'