diff --git a/core/jsontools.py b/core/jsontools.py index c7e48cdc..04e0ce93 100644 --- a/core/jsontools.py +++ b/core/jsontools.py @@ -11,7 +11,6 @@ try: import json except: logger.info("json incluido en el interprete **NO** disponible") - try: import simplejson as json except: @@ -26,8 +25,13 @@ except: logger.info("Usando simplejson en el directorio lib") else: logger.info("Usando simplejson incluido en el interprete") -else: - logger.info("Usando json incluido en el interprete") +# ~ else: +# ~ logger.info("Usando json incluido en el interprete") + +import sys + +PY3 = False +if sys.version_info[0] >= 3: PY3 = True; unicode = str; unichr = chr; long = int def load(*args, **kwargs): @@ -46,12 +50,12 @@ def load(*args, **kwargs): def dump(*args, **kwargs): if not kwargs: - kwargs = {"indent": 4, "skipkeys": True, "sort_keys": True, "ensure_ascii": False} + kwargs = {"indent": 4, "skipkeys": True, "sort_keys": True, "ensure_ascii": True} try: value = json.dumps(*args, **kwargs) except: - logger.error("**NO** se ha podido cargar el JSON") + logger.error("**NO** se ha podido guardar el JSON") logger.error(traceback.format_exc()) value = "" return value @@ -59,11 +63,15 @@ def dump(*args, **kwargs): def to_utf8(dct): if isinstance(dct, dict): - return dict((to_utf8(key), to_utf8(value)) for key, value in dct.iteritems()) + return dict((to_utf8(key), to_utf8(value)) for key, value in dct.items()) elif isinstance(dct, list): return [to_utf8(element) for element in dct] elif isinstance(dct, unicode): - return dct.encode('utf-8') + dct = dct.encode("utf8") + if PY3: dct = dct.decode("utf8") + return dct + elif PY3 and isinstance(dct, bytes): + return dct.decode('utf-8') else: return dct @@ -104,7 +112,7 @@ def get_node_from_file(name_file, node, path=None): if node in dict_data: dict_node = dict_data[node] - #logger.debug("dict_node: %s" % dict_node) + # logger.debug("dict_node: %s" % dict_node) return dict_node @@ -189,4 +197,4 @@ def update_node(dict_node, name_file, node, path=None): except: logger.error("No se ha podido actualizar %s" % fname) - return result, json_data + return result, json_data \ No newline at end of file diff --git a/core/support.py b/core/support.py index bd7f6802..fb901294 100755 --- a/core/support.py +++ b/core/support.py @@ -5,9 +5,11 @@ import base64 import inspect import os import re -import urllib -import urlparse -import xbmcaddon +try: + import urllib.request as urllib + import urllib.parse as urlparse +except ImportError: + import urllib, urlparse from channelselector import thumb from core import httptools, scrapertools, servertools, tmdb, channeltools @@ -65,9 +67,11 @@ def hdpass_get_servers(item): def url_decode(url_enc): + from past.utils import old_div + lenght = len(url_enc) if lenght % 2 == 0: - len2 = lenght / 2 + len2 = old_div(lenght, 2) first = url_enc[0:len2] last = url_enc[len2:lenght] url_enc = last + first @@ -78,7 +82,7 @@ def url_decode(url_enc): url_enc[lenght - 1] = ' ' url_enc = url_enc.strip() len1 = len(url_enc) - len2 = len1 / 2 + len2 = old_div(len1, 2) first = url_enc[0:len2] last = url_enc[len2:len1] url_enc = last + first diff --git a/lib/githash.py b/lib/githash.py index a60a3924..cae72976 100644 --- a/lib/githash.py +++ b/lib/githash.py @@ -9,7 +9,6 @@ has been tested with Python2.7 and Python 3.4. from __future__ import print_function -import argparse import os import stat import sys @@ -75,7 +74,7 @@ def blob_hash(stream, size): while True: # We read just 64K at a time to be kind to # runtime storage requirements. - data = stream.read(65536) + data = stream.read(65536).encode('ascii') if data == b'': break nread += len(data) diff --git a/platformcode/updater.py b/platformcode/updater.py index 1c18f89a..54d14d4d 100644 --- a/platformcode/updater.py +++ b/platformcode/updater.py @@ -2,7 +2,7 @@ import io import os import shutil -from cStringIO import StringIO +from lib.six import StringIO from core import filetools from platformcode import logger, platformtools @@ -426,4 +426,4 @@ def _pbhook(numblocks, blocksize, filesize, url, dp): dp.update(percent) except: percent = 90 - dp.update(percent) \ No newline at end of file + dp.update(percent)