removed unused modules and methods
This commit is contained in:
@@ -1,58 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# ------------------------------------------------------------
|
||||
# Client for api.xxxxxxxxxxxxx
|
||||
# ------------------------------------------------------------
|
||||
|
||||
import urllib
|
||||
|
||||
import jsontools
|
||||
import scrapertools
|
||||
from platformcode import config, logger
|
||||
|
||||
MAIN_URL = ""
|
||||
API_KEY = "nzgJy84P9w54H2w"
|
||||
DEFAULT_HEADERS = [["User-Agent", config.PLUGIN_NAME + " " + config.get_platform()]]
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------------------------------------
|
||||
# Common function for API calls
|
||||
# ---------------------------------------------------------------------------------------------------------
|
||||
|
||||
# Make a remote call using post, ensuring api key is here
|
||||
def remote_call(url, parameters={}, require_session=True):
|
||||
logger.info("url=" + url + ", parameters=" + repr(parameters))
|
||||
|
||||
if not url.startswith("http"):
|
||||
url = MAIN_URL + "/" + url
|
||||
|
||||
if not "api_key" in parameters:
|
||||
parameters["api_key"] = API_KEY
|
||||
|
||||
# Add session token if not here
|
||||
# if not "s" in parameters and require_session:
|
||||
# parameters["s"] = get_session_token()
|
||||
|
||||
headers = DEFAULT_HEADERS
|
||||
post = urllib.urlencode(parameters)
|
||||
|
||||
response_body = scrapertools.downloadpage(url, post, headers)
|
||||
|
||||
return jsontools.load(response_body)
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------------------------------------
|
||||
# Plugin service calls
|
||||
# ---------------------------------------------------------------------------------------------------------
|
||||
|
||||
def plugins_get_all_packages():
|
||||
logger.info()
|
||||
|
||||
parameters = {"plugin": config.PLUGIN_NAME, "platform": config.get_platform()}
|
||||
return remote_call("plugins/get_all_packages.php", parameters)
|
||||
|
||||
|
||||
def plugins_get_latest_packages():
|
||||
logger.info()
|
||||
|
||||
parameters = {"plugin": config.PLUGIN_NAME, "platform": config.get_platform()}
|
||||
return remote_call("plugins/get_latest_packages.php", parameters)
|
||||
@@ -100,17 +100,7 @@ def get_channel_parameters(channel_name):
|
||||
if sys.version_info < tuple(map(int, (python_condition.split(".")))):
|
||||
python_compatible = False
|
||||
|
||||
# compatible addon_version
|
||||
addon_version_compatible = True
|
||||
if 'addon_version' in channel_parameters["compatible"]:
|
||||
import versiontools
|
||||
addon_version_condition = channel_parameters["compatible"]['addon_version']
|
||||
addon_version = int(addon_version_condition.replace(".", "").ljust(len(str(
|
||||
versiontools.get_current_plugin_version())), '0'))
|
||||
if versiontools.get_current_plugin_version() < addon_version:
|
||||
addon_version_compatible = False
|
||||
|
||||
channel_parameters["compatible"] = python_compatible and addon_version_compatible
|
||||
channel_parameters["compatible"] = python_compatible
|
||||
else:
|
||||
channel_parameters["compatible"] = True
|
||||
|
||||
@@ -284,41 +274,3 @@ def set_channel_setting(name, value, channel):
|
||||
return None
|
||||
|
||||
return value
|
||||
|
||||
|
||||
def get_channel_module(channel_name, package="channels"):
|
||||
# Sustituye al que hay en servertools.py ...
|
||||
# ...pero añade la posibilidad de incluir un paquete diferente de "channels"
|
||||
if "." not in channel_name:
|
||||
channel_module = __import__('%s.%s' % (package, channel_name), None, None, ['%s.%s' % (package, channel_name)])
|
||||
else:
|
||||
channel_module = __import__(channel_name, None, None, [channel_name])
|
||||
return channel_module
|
||||
|
||||
|
||||
def get_channel_remote_url(channel_name):
|
||||
channel_parameters = get_channel_parameters(channel_name)
|
||||
remote_channel_url = channel_parameters["update_url"] + channel_name + ".py"
|
||||
remote_version_url = channel_parameters["update_url"] + channel_name + ".json"
|
||||
|
||||
logger.info("remote_channel_url=" + remote_channel_url)
|
||||
logger.info("remote_version_url=" + remote_version_url)
|
||||
|
||||
return remote_channel_url, remote_version_url
|
||||
|
||||
|
||||
def get_channel_local_path(channel_name):
|
||||
if channel_name != "channelselector":
|
||||
local_channel_path = os.path.join(config.get_runtime_path(), 'channels', channel_name + ".py")
|
||||
local_version_path = os.path.join(config.get_runtime_path(), 'channels', channel_name + ".json")
|
||||
local_compiled_path = os.path.join(config.get_runtime_path(), 'channels', channel_name + ".pyo")
|
||||
else:
|
||||
local_channel_path = os.path.join(config.get_runtime_path(), channel_name + ".py")
|
||||
local_version_path = os.path.join(config.get_runtime_path(), channel_name + ".json")
|
||||
local_compiled_path = os.path.join(config.get_runtime_path(), channel_name + ".pyo")
|
||||
|
||||
logger.info("local_channel_path=" + local_channel_path)
|
||||
logger.info("local_version_path=" + local_version_path)
|
||||
logger.info("local_compiled_path=" + local_compiled_path)
|
||||
|
||||
return local_channel_path, local_version_path, local_compiled_path
|
||||
|
||||
@@ -29,19 +29,19 @@ def downloadpage(url, post=None, headers=None, follow_redirects=True, timeout=No
|
||||
return response.data
|
||||
|
||||
|
||||
def downloadpageWithResult(url, post=None, headers=None, follow_redirects=True, timeout=None, header_to_get=None):
|
||||
response = httptools.downloadpage(url, post=post, headers=headers, follow_redirects=follow_redirects,
|
||||
timeout=timeout)
|
||||
|
||||
if header_to_get:
|
||||
return response.headers.get(header_to_get)
|
||||
else:
|
||||
return response.data, response.code
|
||||
# def downloadpageWithResult(url, post=None, headers=None, follow_redirects=True, timeout=None, header_to_get=None):
|
||||
# response = httptools.downloadpage(url, post=post, headers=headers, follow_redirects=follow_redirects,
|
||||
# timeout=timeout)
|
||||
#
|
||||
# if header_to_get:
|
||||
# return response.headers.get(header_to_get)
|
||||
# else:
|
||||
# return response.data, response.code
|
||||
|
||||
|
||||
def downloadpageWithoutCookies(url):
|
||||
response = httptools.downloadpage(url, cookies=False)
|
||||
return response.data
|
||||
# def downloadpageWithoutCookies(url):
|
||||
# response = httptools.downloadpage(url, cookies=False)
|
||||
# return response.data
|
||||
|
||||
|
||||
def downloadpageGzip(url):
|
||||
@@ -60,9 +60,9 @@ def get_header_from_response(url, header_to_get="", post=None, headers=None):
|
||||
return response.headers.get(header_to_get)
|
||||
|
||||
|
||||
def get_headers_from_response(url, post=None, headers=None):
|
||||
response = httptools.downloadpage(url, post=post, headers=headers, only_headers=True)
|
||||
return response.headers.items()
|
||||
# def get_headers_from_response(url, post=None, headers=None):
|
||||
# response = httptools.downloadpage(url, post=post, headers=headers, only_headers=True)
|
||||
# return response.headers.items()
|
||||
|
||||
|
||||
def read_body_and_headers(url, post=None, headers=None, follow_redirects=False, timeout=None):
|
||||
@@ -71,10 +71,10 @@ def read_body_and_headers(url, post=None, headers=None, follow_redirects=False,
|
||||
return response.data, response.headers
|
||||
|
||||
|
||||
def anti_cloudflare(url, host="", headers=None, post=None, location=False):
|
||||
# anti_cloudfare ya integrado en httptools por defecto
|
||||
response = httptools.downloadpage(url, post=post, headers=headers)
|
||||
return response.data
|
||||
# def anti_cloudflare(url, host="", headers=None, post=None, location=False):
|
||||
# # anti_cloudfare ya integrado en httptools por defecto
|
||||
# response = httptools.downloadpage(url, post=post, headers=headers)
|
||||
# return response.data
|
||||
|
||||
|
||||
def printMatches(matches):
|
||||
@@ -385,24 +385,24 @@ def remove_show_from_title(title, show):
|
||||
return title
|
||||
|
||||
|
||||
def getRandom(str):
|
||||
return get_md5(str)
|
||||
# def getRandom(str):
|
||||
# return get_md5(str)
|
||||
|
||||
|
||||
def unseo(cadena):
|
||||
if cadena.upper().startswith("VER GRATIS LA PELICULA "):
|
||||
cadena = cadena[23:]
|
||||
elif cadena.upper().startswith("VER GRATIS PELICULA "):
|
||||
cadena = cadena[20:]
|
||||
elif cadena.upper().startswith("VER ONLINE LA PELICULA "):
|
||||
cadena = cadena[23:]
|
||||
elif cadena.upper().startswith("VER GRATIS "):
|
||||
cadena = cadena[11:]
|
||||
elif cadena.upper().startswith("VER ONLINE "):
|
||||
cadena = cadena[11:]
|
||||
elif cadena.upper().startswith("DESCARGA DIRECTA "):
|
||||
cadena = cadena[17:]
|
||||
return cadena
|
||||
# def unseo(cadena):
|
||||
# if cadena.upper().startswith("VER GRATIS LA PELICULA "):
|
||||
# cadena = cadena[23:]
|
||||
# elif cadena.upper().startswith("VER GRATIS PELICULA "):
|
||||
# cadena = cadena[20:]
|
||||
# elif cadena.upper().startswith("VER ONLINE LA PELICULA "):
|
||||
# cadena = cadena[23:]
|
||||
# elif cadena.upper().startswith("VER GRATIS "):
|
||||
# cadena = cadena[11:]
|
||||
# elif cadena.upper().startswith("VER ONLINE "):
|
||||
# cadena = cadena[11:]
|
||||
# elif cadena.upper().startswith("DESCARGA DIRECTA "):
|
||||
# cadena = cadena[17:]
|
||||
# return cadena
|
||||
|
||||
|
||||
# scrapertools.get_filename_from_url(media_url)[-4:]
|
||||
@@ -424,19 +424,19 @@ def get_filename_from_url(url):
|
||||
return filename
|
||||
|
||||
|
||||
def get_domain_from_url(url):
|
||||
import urlparse
|
||||
parsed_url = urlparse.urlparse(url)
|
||||
try:
|
||||
filename = parsed_url.netloc
|
||||
except:
|
||||
# Si falla es porque la implementación de parsed_url no reconoce los atributos como "path"
|
||||
if len(parsed_url) >= 4:
|
||||
filename = parsed_url[1]
|
||||
else:
|
||||
filename = ""
|
||||
|
||||
return filename
|
||||
# def get_domain_from_url(url):
|
||||
# import urlparse
|
||||
# parsed_url = urlparse.urlparse(url)
|
||||
# try:
|
||||
# filename = parsed_url.netloc
|
||||
# except:
|
||||
# # Si falla es porque la implementación de parsed_url no reconoce los atributos como "path"
|
||||
# if len(parsed_url) >= 4:
|
||||
# filename = parsed_url[1]
|
||||
# else:
|
||||
# filename = ""
|
||||
#
|
||||
# return filename
|
||||
|
||||
|
||||
def get_season_and_episode(title):
|
||||
@@ -475,25 +475,25 @@ def get_season_and_episode(title):
|
||||
return filename
|
||||
|
||||
|
||||
def get_sha1(cadena):
|
||||
try:
|
||||
import hashlib
|
||||
devuelve = hashlib.sha1(cadena).hexdigest()
|
||||
except:
|
||||
import sha
|
||||
import binascii
|
||||
devuelve = binascii.hexlify(sha.new(cadena).digest())
|
||||
|
||||
return devuelve
|
||||
# def get_sha1(cadena):
|
||||
# try:
|
||||
# import hashlib
|
||||
# devuelve = hashlib.sha1(cadena).hexdigest()
|
||||
# except:
|
||||
# import sha
|
||||
# import binascii
|
||||
# devuelve = binascii.hexlify(sha.new(cadena).digest())
|
||||
#
|
||||
# return devuelve
|
||||
|
||||
|
||||
def get_md5(cadena):
|
||||
try:
|
||||
import hashlib
|
||||
devuelve = hashlib.md5(cadena).hexdigest()
|
||||
except:
|
||||
import md5
|
||||
import binascii
|
||||
devuelve = binascii.hexlify(md5.new(cadena).digest())
|
||||
|
||||
return devuelve
|
||||
# def get_md5(cadena):
|
||||
# try:
|
||||
# import hashlib
|
||||
# devuelve = hashlib.md5(cadena).hexdigest()
|
||||
# except:
|
||||
# import md5
|
||||
# import binascii
|
||||
# devuelve = binascii.hexlify(md5.new(cadena).digest())
|
||||
#
|
||||
# return devuelve
|
||||
|
||||
@@ -1251,7 +1251,6 @@ class Tmdb(object):
|
||||
buscando = "id_Tmdb: " + str(self.result["id"]) + " temporada: " + str(numtemporada) + "\nURL: " + url
|
||||
logger.info("[Tmdb.py] Buscando " + buscando)
|
||||
try:
|
||||
# self.temporada[numtemporada] = jsontools.load(scrapertools.downloadpageWithoutCookies(url))
|
||||
self.temporada[numtemporada] = self.get_json(url)
|
||||
|
||||
except:
|
||||
|
||||
@@ -1,170 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# --------------------------------------------------------------------------------
|
||||
# update_servers.py
|
||||
# --------------------------------------------------------------------------------
|
||||
|
||||
import os
|
||||
import urlparse
|
||||
|
||||
from core import scrapertools
|
||||
from core import servertools
|
||||
from platformcode import config
|
||||
|
||||
remote_url = ""
|
||||
local_folder = os.path.join(config.get_runtime_path(), "servers")
|
||||
|
||||
|
||||
### Procedures
|
||||
def update_servers():
|
||||
update_servers_files(
|
||||
read_remote_servers_list(
|
||||
dict(read_local_servers_list())
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
def update_servers_files(update_servers_list):
|
||||
# ----------------------------
|
||||
from platformcode import platformtools
|
||||
progress = platformtools.dialog_progress_bg("Update servers list")
|
||||
# ----------------------------
|
||||
|
||||
for index, server in enumerate(update_servers_list):
|
||||
# ----------------------------
|
||||
percentage = index * 100 / len(update_servers_list)
|
||||
# ----------------------------
|
||||
|
||||
data = scrapertools.cache_page(remote_url + server[0] + ".py")
|
||||
|
||||
f = open(os.path.join(local_folder, server[0] + ".py"), 'w')
|
||||
f.write(data)
|
||||
f.close()
|
||||
|
||||
# ----------------------------
|
||||
progress.update(percentage, ' Update server: "' + server[0] + '"', 'MD5: "' + server[1] + '"')
|
||||
# ----------------------------
|
||||
|
||||
# ----------------------------
|
||||
progress.close()
|
||||
# ----------------------------
|
||||
|
||||
|
||||
### Functions
|
||||
## init
|
||||
def read_remote_servers_list(local_servers):
|
||||
data = scrapertools.cache_page(remote_url + "servertools.py")
|
||||
|
||||
f = open(os.path.join(local_folder, "servertools.py"), 'w')
|
||||
f.write(data)
|
||||
f.close()
|
||||
|
||||
all_servers = sorted(
|
||||
servertools.FREE_SERVERS + \
|
||||
servertools.PREMIUM_SERVERS + \
|
||||
servertools.FILENIUM_SERVERS + \
|
||||
servertools.REALDEBRID_SERVERS + \
|
||||
servertools.ALLDEBRID_SERVERS
|
||||
)
|
||||
|
||||
servers = []
|
||||
for server_id in all_servers:
|
||||
if server_id not in servers:
|
||||
servers.append(server_id)
|
||||
|
||||
# ----------------------------
|
||||
from platformcode import platformtools
|
||||
progress = platformtools.dialog_progress_bg("Remote servers list")
|
||||
# ----------------------------
|
||||
|
||||
remote_servers = []
|
||||
update_servers_list = []
|
||||
for index, server in enumerate(servers):
|
||||
# ----------------------------
|
||||
percentage = index * 100 / len(servers)
|
||||
# ----------------------------
|
||||
server_file = urlparse.urljoin(remote_url, server + ".py")
|
||||
|
||||
data = scrapertools.cache_page(server_file)
|
||||
if data != "Not Found":
|
||||
md5_remote_server = md5_remote(data)
|
||||
remote_servers.append([server, md5_remote_server])
|
||||
|
||||
md5_local_server = local_servers.get(server)
|
||||
if md5_local_server:
|
||||
if md5_local_server != md5_remote_server:
|
||||
update_servers_list.append([server, md5_remote_server, md5_local_server, "Update"])
|
||||
else:
|
||||
update_servers_list.append([server, md5_remote_server, "New", "Update"])
|
||||
|
||||
# ----------------------------
|
||||
progress.update(percentage, ' Remote server: "' + server + '"', 'MD5: "' + md5_remote_server + '"')
|
||||
# ----------------------------
|
||||
|
||||
# ----------------------------
|
||||
progress.close()
|
||||
# ----------------------------
|
||||
|
||||
return update_servers_list
|
||||
|
||||
|
||||
def read_local_servers_list():
|
||||
all_servers = sorted(
|
||||
servertools.FREE_SERVERS + \
|
||||
servertools.PREMIUM_SERVERS + \
|
||||
servertools.FILENIUM_SERVERS + \
|
||||
servertools.REALDEBRID_SERVERS + \
|
||||
servertools.ALLDEBRID_SERVERS
|
||||
)
|
||||
|
||||
servers = []
|
||||
for server_id in all_servers:
|
||||
if server_id not in servers:
|
||||
servers.append(server_id)
|
||||
|
||||
# ----------------------------
|
||||
from platformcode import platformtools
|
||||
progress = platformtools.dialog_progress_bg("Local servers list")
|
||||
# ----------------------------
|
||||
|
||||
local_servers = []
|
||||
for index, server in enumerate(servers):
|
||||
# ----------------------------
|
||||
percentage = index * 100 / len(servers)
|
||||
# ----------------------------
|
||||
server_file = os.path.join(config.get_runtime_path(), "servers", server + ".py")
|
||||
if os.path.exists(server_file):
|
||||
md5_local_server = md5_local(server_file)
|
||||
local_servers.append([server, md5_local_server])
|
||||
# ----------------------------
|
||||
progress.update(percentage, ' Local server: "' + server + '"', 'MD5: "' + md5_local_server + '"')
|
||||
# ----------------------------
|
||||
|
||||
# ----------------------------
|
||||
progress.close()
|
||||
# ----------------------------
|
||||
|
||||
return local_servers
|
||||
|
||||
|
||||
def md5_local(file_server):
|
||||
import hashlib
|
||||
hash = hashlib.md5()
|
||||
with open(file_server) as f:
|
||||
for chunk in iter(lambda: f.read(4096), ""):
|
||||
hash.update(chunk)
|
||||
|
||||
return hash.hexdigest()
|
||||
|
||||
|
||||
def md5_remote(data_server):
|
||||
import hashlib
|
||||
hash = hashlib.md5()
|
||||
hash.update(data_server)
|
||||
|
||||
return hash.hexdigest()
|
||||
|
||||
|
||||
### Run
|
||||
update_servers()
|
||||
# from threading import Thread
|
||||
# Thread( target=update_servers ).start()
|
||||
@@ -1,208 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# --------------------------------------------------------------------------------
|
||||
# Updater process
|
||||
# --------------------------------------------------------------------------------
|
||||
|
||||
import os
|
||||
import time
|
||||
|
||||
import scrapertools
|
||||
import versiontools
|
||||
from platformcode import config, logger
|
||||
|
||||
|
||||
# Método antiguo, muestra un popup con la versión
|
||||
def checkforupdates():
|
||||
logger.info()
|
||||
|
||||
# Valores por defecto
|
||||
numero_version_publicada = 0
|
||||
tag_version_publicada = ""
|
||||
|
||||
# Lee la versión remota
|
||||
from core import api
|
||||
latest_packages = api.plugins_get_latest_packages()
|
||||
for latest_package in latest_packages["body"]:
|
||||
if latest_package["package"] == "plugin":
|
||||
numero_version_publicada = latest_package["version"]
|
||||
tag_version_publicada = latest_package["tag"]
|
||||
break
|
||||
|
||||
logger.info("version remota=" + str(numero_version_publicada))
|
||||
|
||||
# Lee la versión local
|
||||
numero_version_local = versiontools.get_current_plugin_version()
|
||||
logger.info("version local=" + str(numero_version_local))
|
||||
|
||||
hayqueactualizar = numero_version_publicada > numero_version_local
|
||||
logger.info("-> hayqueactualizar=" + repr(hayqueactualizar))
|
||||
|
||||
# Si hay actualización disponible, devuelve la Nueva versión para que cada plataforma se encargue de mostrar los avisos
|
||||
if hayqueactualizar:
|
||||
return tag_version_publicada
|
||||
else:
|
||||
return None
|
||||
|
||||
|
||||
# Método nuevo, devuelve el nº de actualizaciones disponibles además de indicar si hay nueva versión del plugin
|
||||
def get_available_updates():
|
||||
logger.info()
|
||||
|
||||
# Cuantas actualizaciones hay?
|
||||
number_of_updates = 0
|
||||
new_published_version_tag = ""
|
||||
|
||||
# Lee la versión remota
|
||||
from core import api
|
||||
latest_packages = api.plugins_get_latest_packages()
|
||||
|
||||
for latest_package in latest_packages["body"]:
|
||||
|
||||
if latest_package["package"] == "plugin":
|
||||
if latest_package["version"] > versiontools.get_current_plugin_version():
|
||||
number_of_updates = number_of_updates + 1
|
||||
new_published_version_tag = latest_package["tag"]
|
||||
|
||||
elif latest_package["package"] == "channels":
|
||||
if latest_package["version"] > versiontools.get_current_channels_version():
|
||||
number_of_updates = number_of_updates + 1
|
||||
|
||||
elif latest_package["package"] == "servers":
|
||||
if latest_package["version"] > versiontools.get_current_servers_version():
|
||||
number_of_updates = number_of_updates + 1
|
||||
|
||||
return new_published_version_tag, number_of_updates
|
||||
|
||||
|
||||
def update(item):
|
||||
logger.info()
|
||||
|
||||
# Valores por defecto
|
||||
published_version_url = ""
|
||||
published_version_filename = ""
|
||||
|
||||
# Lee la versión remota
|
||||
from core import api
|
||||
latest_packages = api.plugins_get_latest_packages()
|
||||
for latest_package in latest_packages["body"]:
|
||||
if latest_package["package"] == "plugin":
|
||||
published_version_url = latest_package["url"]
|
||||
published_version_filename = latest_package["filename"]
|
||||
published_version_number = latest_package["version"]
|
||||
break
|
||||
|
||||
# La URL viene del API, y lo descarga en "userdata"
|
||||
remotefilename = published_version_url
|
||||
localfilename = os.path.join(config.get_data_path(), published_version_filename)
|
||||
|
||||
download_and_install(remotefilename, localfilename)
|
||||
|
||||
|
||||
def download_and_install(remote_file_name, local_file_name):
|
||||
logger.info("from " + remote_file_name + " to " + local_file_name)
|
||||
|
||||
if os.path.exists(local_file_name):
|
||||
os.remove(local_file_name)
|
||||
|
||||
# Descarga el fichero
|
||||
inicio = time.clock()
|
||||
from core import downloadtools
|
||||
downloadtools.downloadfile(remote_file_name, local_file_name, continuar=False)
|
||||
fin = time.clock()
|
||||
logger.info("Descargado en %d segundos " % (fin - inicio + 1))
|
||||
|
||||
logger.info("descomprime fichero...")
|
||||
import ziptools
|
||||
unzipper = ziptools.ziptools()
|
||||
|
||||
# Lo descomprime en "addons" (un nivel por encima del plugin)
|
||||
installation_target = os.path.join(config.get_runtime_path(), "..")
|
||||
logger.info("installation_target=%s" % installation_target)
|
||||
|
||||
unzipper.extract(local_file_name, installation_target)
|
||||
|
||||
# Borra el zip descargado
|
||||
logger.info("borra fichero...")
|
||||
os.remove(local_file_name)
|
||||
logger.info("...fichero borrado")
|
||||
|
||||
|
||||
def update_channel(channel_name):
|
||||
logger.info(channel_name)
|
||||
|
||||
import channeltools
|
||||
remote_channel_url, remote_version_url = channeltools.get_channel_remote_url(channel_name)
|
||||
local_channel_path, local_version_path, local_compiled_path = channeltools.get_channel_local_path(channel_name)
|
||||
|
||||
# Version remota
|
||||
try:
|
||||
data = scrapertools.cachePage(remote_version_url)
|
||||
logger.info("remote_data=" + data)
|
||||
remote_version = int(scrapertools.find_single_match(data, '<version>([^<]+)</version>'))
|
||||
addon_condition = int(scrapertools.find_single_match(data, "<addon_version>([^<]*)</addon_version>")
|
||||
.replace(".", "").ljust(len(str(versiontools.get_current_plugin_version())), '0'))
|
||||
except:
|
||||
remote_version = 0
|
||||
addon_condition = 0
|
||||
|
||||
logger.info("remote_version=%d" % remote_version)
|
||||
|
||||
# Version local
|
||||
if os.path.exists(local_version_path):
|
||||
infile = open(local_version_path)
|
||||
from core import jsontools
|
||||
data = jsontools.load(infile.read())
|
||||
infile.close()
|
||||
|
||||
local_version = data.get('version', 0)
|
||||
else:
|
||||
local_version = 0
|
||||
|
||||
logger.info("local_version=%d" % local_version)
|
||||
|
||||
# Comprueba si ha cambiado
|
||||
updated = (remote_version > local_version) and (versiontools.get_current_plugin_version() >= addon_condition)
|
||||
|
||||
if updated:
|
||||
logger.info("downloading...")
|
||||
download_channel(channel_name)
|
||||
|
||||
return updated
|
||||
|
||||
|
||||
def download_channel(channel_name):
|
||||
logger.info(channel_name)
|
||||
|
||||
import channeltools
|
||||
remote_channel_url, remote_version_url = channeltools.get_channel_remote_url(channel_name)
|
||||
local_channel_path, local_version_path, local_compiled_path = channeltools.get_channel_local_path(channel_name)
|
||||
|
||||
# Descarga el canal
|
||||
try:
|
||||
updated_channel_data = scrapertools.cachePage(remote_channel_url)
|
||||
outfile = open(local_channel_path, "wb")
|
||||
outfile.write(updated_channel_data)
|
||||
outfile.flush()
|
||||
outfile.close()
|
||||
logger.info("Grabado a " + local_channel_path)
|
||||
except:
|
||||
import traceback
|
||||
logger.error(traceback.format_exc())
|
||||
|
||||
# Descarga la version (puede no estar)
|
||||
try:
|
||||
updated_version_data = scrapertools.cachePage(remote_version_url)
|
||||
outfile = open(local_version_path, "w")
|
||||
outfile.write(updated_version_data)
|
||||
outfile.flush()
|
||||
outfile.close()
|
||||
logger.info("Grabado a " + local_version_path)
|
||||
except:
|
||||
import traceback
|
||||
logger.error(traceback.format_exc())
|
||||
|
||||
if os.path.exists(local_compiled_path):
|
||||
os.remove(local_compiled_path)
|
||||
|
||||
from platformcode import platformtools
|
||||
platformtools.dialog_notification(channel_name + " actualizado", "Se ha descargado una nueva versión")
|
||||
@@ -1,37 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# --------------------------------------------------------------------------------
|
||||
# Version Tools
|
||||
# --------------------------------------------------------------------------------
|
||||
|
||||
import os
|
||||
|
||||
import scrapertools
|
||||
from platformcode import config
|
||||
|
||||
|
||||
def get_current_plugin_version():
|
||||
return 4300
|
||||
|
||||
|
||||
def get_current_plugin_version_tag():
|
||||
return "1.7.0"
|
||||
|
||||
|
||||
def get_current_plugin_date():
|
||||
return "22/08/2017"
|
||||
|
||||
|
||||
def get_current_channels_version():
|
||||
f = open(os.path.join(config.get_runtime_path(), "channels", "version.xml"))
|
||||
data = f.read()
|
||||
f.close()
|
||||
|
||||
return int(scrapertools.find_single_match(data, "<version>([^<]+)</version>"))
|
||||
|
||||
|
||||
def get_current_servers_version():
|
||||
f = open(os.path.join(config.get_runtime_path(), "servers", "version.xml"))
|
||||
data = f.read()
|
||||
f.close()
|
||||
|
||||
return int(scrapertools.find_single_match(data, "<version>([^<]+)</version>"))
|
||||
Reference in New Issue
Block a user