You're awesome.robalo escribió:ahNo había probado eso.
![]()
Puedes probar cambiar la parte final del archivo update_server.py conLa actualización se ha más lenta pero se puede haceder a pelisalacartaCódigo: Seleccionar todo
### Run from threading import Thread Thread( target=update_servers ).start()
SoD: Sistema di aggiornamento automatico

- zanzibar1982
- Mensajes: 481
- Registrado: 16 Jun 2015, 23:57
Re: Update System development by Chryses user
Mensaje por zanzibar1982 » 08 Sep 2015, 23:57
Re: Update System development by Chryses user
Mensaje por fenice82 » 10 Sep 2015, 00:26
I added the update system in my fork.
everything work well with servers but I don't have any update about channels.
could you please make a test?
thank you
Fenice82
ps. robalo if Kodi got crazy I'll come in Spain and install it again for you

>>click here<<
Publicidad
Re: Update System development by Chryses user
Mensaje por robalo » 10 Sep 2015, 11:09
Lo tendré en cuenta, soy todo un cajón desastrefenice82 escribió:ps. robalo if Kodi got crazy I'll come in Spain and install it again for you

He ojeado la versión 'ui' y es lo mismo pero en vez de modificar el archivo launcher.py descomentando los dos bloques de codigo para la actualización de de la lista de canales y de los canales, lo que haremos, será añadir esos dos bloques de código en el archivo navigation.py.
Todos los cambios para la versión 'ui' serían:
En updater.py cambiar la función get_channel_remote_url con el siguiente contenido cambiando _remote_channel_url_ con la dirección de tu repositorio:
Código: Seleccionar todo
def get_channel_remote_url(channel_name):
_remote_channel_url_ = "https://raw.githubusercontent.com/tvalacarta/pelisalacarta/master/python/main-classic/"
if channel_name <> "channelselector":
_remote_channel_url_+= "channels/"
remote_channel_url = _remote_channel_url_+channel_name+".py"
remote_version_url = _remote_channel_url_+channel_name+".xml"
logger.info("pelisalacarta.core.updater remote_channel_url="+remote_channel_url)
logger.info("pelisalacarta.core.updater remote_version_url="+remote_version_url)
return remote_channel_url , remote_version_url
Código: Seleccionar todo
if "<tag>" in data: patronvideos = '<tag>([^<]+)</tag>'
elif "<version>" in data: patronvideos = '<version>([^<]+)</version>'
navigation.py: Update channels list
Código: Seleccionar todo
if item.channel=="navigation":
# --- Update channels list ---------------------------------------
from core import config
if item.action=="mainlist":
plugintools.log("navigation.get_next_items Main menu")
if config.get_setting("updatechannels")=="true":
try:
from core import updater
actualizado = updater.updatechannel("channelselector")
if actualizado:
import xbmcgui
advertencia = xbmcgui.Dialog()
advertencia.ok("tvalacarta",config.get_localized_string(30064))
except:
pass
# ----------------------------------------------------------------
Código: Seleccionar todo
else:
if item.action=="":
item.action="mainlist"
plugintools.log("navigation.get_next_items Channel code ("+item.channel+"."+item.action+")")
# --- Update channels files --------------------------------------
if item.action=="mainlist":
from core import config
if config.get_setting("updatechannels")=="true":
try:
from core import updater
actualizado = updater.updatechannel(item.channel)
if actualizado:
import xbmcgui
advertencia = xbmcgui.Dialog()
advertencia.ok("plugin",item.channel,config.get_localized_string(30063))
except:
pass
# ----------------------------------------------------------------

Re: Update System development by Chryses user
Mensaje por fenice82 » 10 Sep 2015, 13:11
I modified the 2 files as per your previous post (see below)
navigation.py
Código: Seleccionar todo
# -*- coding: utf-8 -*-
#------------------------------------------------------------
# pelisalacarta 4
# Copyright 2015 tvalacarta@gmail.com
#
# Distributed under the terms of GNU General Public License v3 (GPLv3)
# http://www.gnu.org/licenses/gpl-3.0.html
#------------------------------------------------------------
# This file is part of pelisalacarta 4.
#
# pelisalacarta 4 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.
#
# pelisalacarta 4 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 pelisalacarta 4. If not, see <http://www.gnu.org/licenses/>.
#------------------------------------------------------------
import os
import sys
import urlparse,urllib,urllib2
import xbmc
import xbmcgui
import xbmcaddon
import channelselector
import plugintools
from core.item import Item
def get_next_items( item ):
plugintools.log("navigation.get_next_items item="+item.tostring())
try:
# ----------------------------------------------------------------
# Main menu
# ----------------------------------------------------------------
if item.channel=="navigation":
# --- Update channels list ---------------------------------------
from core import config
if item.action=="mainlist":
plugintools.log("navigation.get_next_items Main menu")
if config.get_setting("updatechannels")=="true":
try:
from core import updater
actualizado = updater.updatechannel("channelselector")
if actualizado:
import xbmcgui
advertencia = xbmcgui.Dialog()
advertencia.ok("tvalacarta",config.get_localized_string(30064))
except:
pass
# ----------------------------------------------------------------
if item.action=="mainlist":
plugintools.log("navigation.get_next_items Main menu")
itemlist = channelselector.getmainlist("bannermenu")
elif item.channel=="channelselector":
if item.action=="channeltypes":
plugintools.log("navigation.get_next_items Channel types menu")
itemlist = channelselector.getchanneltypes("bannermenu")
elif item.action=="listchannels":
plugintools.log("navigation.get_next_items Channel list menu")
itemlist = channelselector.filterchannels(item.category,"bannermenu")
elif item.channel=="configuracion":
plugintools.open_settings_dialog()
return []
else:
if item.action=="":
item.action="mainlist"
plugintools.log("navigation.get_next_items Channel code ("+item.channel+"."+item.action+")")
# --- Update channels files --------------------------------------
if item.action=="mainlist":
from core import config
if config.get_setting("updatechannels")=="true":
try:
from core import updater
actualizado = updater.updatechannel(item.channel)
if actualizado:
import xbmcgui
advertencia = xbmcgui.Dialog()
advertencia.ok("plugin",item.channel,config.get_localized_string(30063))
except:
pass
# ----------------------------------------------------------------
try:
exec "import channels."+item.channel+" as channel"
except:
exec "import core."+item.channel+" as channel"
from platformcode import xbmctools
if item.action=="play":
plugintools.log("navigation.get_next_items play")
# Si el canal tiene una acción "play" tiene prioridad
if hasattr(channel, 'play'):
plugintools.log("pelisalacarta.platformcode.launcher Channel has its own 'play' method")
itemlist = channel.play(item)
if len(itemlist)>0:
item = itemlist[0]
# FIXME: Este error ha que tratarlo de otra manera, al dar a volver sin ver el vídeo falla
try:
xbmctools.play_video(channel=item.channel, server=item.server, url=item.url, category=item.category, title=item.title, thumbnail=item.thumbnail, plot=item.plot, extra=item.extra, subtitle=item.subtitle, video_password = item.password, fulltitle=item.fulltitle, Serie=item.show)
except:
pass
else:
import xbmcgui
ventana_error = xbmcgui.Dialog()
ok = ventana_error.ok ("plugin", "No hay nada para reproducir")
else:
plugintools.log("pelisalacarta.platformcode.launcher No channel 'play' method, executing core method")
# FIXME: Este error ha que tratarlo de otra manera, por al dar a volver sin ver el vídeo falla
# Mejor hacer el play desde la ventana
try:
xbmctools.play_video(channel=item.channel, server=item.server, url=item.url, category=item.category, title=item.title, thumbnail=item.thumbnail, plot=item.plot, extra=item.extra, subtitle=item.subtitle, video_password = item.password, fulltitle=item.fulltitle, Serie=item.show)
except:
pass
return []
elif item.action=="findvideos":
plugintools.log("navigation.get_next_items findvideos")
# Si el canal tiene una acción "findvideos" tiene prioridad
if hasattr(channel, 'findvideos'):
plugintools.log("pelisalacarta.platformcode.launcher Channel has its own 'findvideos' method")
itemlist = channel.findvideos(item)
else:
itemlist = []
if len(itemlist)==0:
from servers import servertools
itemlist = servertools.find_video_items(item)
if len(itemlist)==0:
itemlist = [ Item(title="No se han encontrado vídeos", thumbnail=os.path.join( plugintools.get_runtime_path() , "resources" , "images" , "thumb_error.png" )) ]
else:
if item.action=="search":
tecleado = plugintools.keyboard_input()
if tecleado!="":
tecleado = tecleado.replace(" ", "+")
itemlist = channel.search(item,tecleado)
elif item.channel=="novedades" and item.action=="mainlist":
itemlist = channel.mainlist(item,"bannermenu")
elif item.channel=="buscador" and item.action=="mainlist":
itemlist = channel.mainlist(item,"bannermenu")
else:
exec "itemlist = channel."+item.action+"(item)"
for loaded_item in itemlist:
if loaded_item.thumbnail=="":
if loaded_item.folder:
loaded_item.thumbnail = os.path.join( plugintools.get_runtime_path() , "resources" , "images" , "thumb_folder.png" )
else:
loaded_item.thumbnail = os.path.join( plugintools.get_runtime_path() , "resources" , "images" , "thumb_nofolder.png" )
if len(itemlist)==0:
itemlist = [ Item(title="No hay elementos para mostrar", thumbnail=os.path.join( plugintools.get_runtime_path() , "resources" , "images" , "thumb_error.png" )) ]
except:
import traceback
plugintools.log("navigation.get_next_items "+traceback.format_exc())
itemlist = [ Item(title="Se ha producido un error", thumbnail=os.path.join( plugintools.get_runtime_path() , "resources" , "images" , "thumb_error.png" )) ]
return itemlist
def get_window_for_item( item ):
plugintools.log("navigation.get_window_for_item item.channel="+item.channel+", item.action=="+item.action)
# El menú principal va con banners + titulo
if item.channel=="navigation" or (item.channel=="novedades" and item.action=="mainlist") or (item.channel=="buscador" and item.action=="mainlist") or (item.channel=="channelselector" and item.action=="channeltypes"):
import window_channels
window = window_channels.ChannelWindow("banner.xml",plugintools.get_runtime_path())
# El listado de canales va con banners sin título
elif item.channel=="channelselector" and item.action=="listchannels":
import window_channels
window = window_channels.ChannelWindow("channels.xml",plugintools.get_runtime_path())
# El resto va con el aspecto normal
else:
import window_menu
window = window_menu.MenuWindow("content.xml",plugintools.get_runtime_path())
return window
Código: Seleccionar todo
# -*- coding: utf-8 -*-
#------------------------------------------------------------
# pelisalacarta
# http://blog.tvalacarta.info/plugin-xbmc/pelisalacarta
# XBMC Plugin
#------------------------------------------------------------
import urlparse,urllib2,urllib,re
import os
import sys
import scrapertools
import time
import config
import logger
# FIXME: Esto está repetido en el channelselector, debería ir a config
thumbnail_type = config.get_setting("thumbnail_type")
if thumbnail_type=="":
thumbnail_type="2"
logger.info("thumbnail_type="+thumbnail_type)
if thumbnail_type=="0":
IMAGES_PATH = 'http://media.tvalacarta.info/pelisalacarta/posters/'
elif thumbnail_type=="1":
IMAGES_PATH = 'http://media.tvalacarta.info/pelisalacarta/banners/'
elif thumbnail_type=="2":
IMAGES_PATH = 'http://media.tvalacarta.info/pelisalacarta/squares/'
ROOT_DIR = config.get_runtime_path()
REMOTE_VERSION_FILE = "http://descargas.tvalacarta.info/"+config.PLUGIN_NAME+"-version.xml"
LOCAL_VERSION_FILE = os.path.join( ROOT_DIR , "version.xml" )
LOCAL_FILE = os.path.join( ROOT_DIR , config.PLUGIN_NAME+"-" )
try:
# Añadida a la opcion : si plataforma xbmcdharma es "True", no debe ser con la plataforma de la xbox
# porque seria un falso "True", ya que el xbmc en las xbox no son dharma por lo tanto no existen los addons
logger.info("pelisalacarta.core.updater get_platform="+config.get_platform())
logger.info("pelisalacarta.core.updater get_system_platform="+config.get_system_platform())
if config.get_platform()=="kodi-isengard":
import xbmc
REMOTE_FILE = "http://descargas.tvalacarta.info/"+config.PLUGIN_NAME+"-kodi-isengard-"
DESTINATION_FOLDER = xbmc.translatePath( "special://home/addons")
elif config.get_platform()=="kodi-helix":
import xbmc
REMOTE_FILE = "http://descargas.tvalacarta.info/"+config.PLUGIN_NAME+"-kodi-helix-"
DESTINATION_FOLDER = xbmc.translatePath( "special://home/addons")
elif config.get_platform()=="xbmceden":
import xbmc
REMOTE_FILE = "http://descargas.tvalacarta.info/"+config.PLUGIN_NAME+"-xbmc-eden-"
DESTINATION_FOLDER = xbmc.translatePath( "special://home/addons")
elif config.get_platform()=="xbmcfrodo":
import xbmc
REMOTE_FILE = "http://descargas.tvalacarta.info/"+config.PLUGIN_NAME+"-xbmc-frodo-"
DESTINATION_FOLDER = xbmc.translatePath( "special://home/addons")
elif config.get_platform()=="xbmcgotham":
import xbmc
REMOTE_FILE = "http://descargas.tvalacarta.info/"+config.PLUGIN_NAME+"-xbmc-gotham-"
DESTINATION_FOLDER = xbmc.translatePath( "special://home/addons")
elif config.get_platform()=="xbmc":
import xbmc
REMOTE_FILE = "http://descargas.tvalacarta.info/"+config.PLUGIN_NAME+"-xbmc-plugin-"
DESTINATION_FOLDER = xbmc.translatePath( "special://home/plugins/video")
elif config.get_platform()=="wiimc":
REMOTE_FILE = "http://descargas.tvalacarta.info/"+config.PLUGIN_NAME+"-wiimc-"
DESTINATION_FOLDER = os.path.join(config.get_runtime_path(),"..")
elif config.get_platform()=="rss":
REMOTE_FILE = "http://descargas.tvalacarta.info/"+config.PLUGIN_NAME+"-rss-"
DESTINATION_FOLDER = os.path.join(config.get_runtime_path(),"..")
except:
import xbmc
REMOTE_FILE = "http://descargas.tvalacarta.info/"+config.PLUGIN_NAME+"-xbmc-plugin-"
DESTINATION_FOLDER = xbmc.translatePath( os.path.join( ROOT_DIR , ".." ) )
def checkforupdates(plugin_mode=True):
logger.info("pelisalacarta.core.updater checkforupdates")
# Descarga el fichero con la versión en la web
logger.info("pelisalacarta.core.updater Verificando actualizaciones...")
logger.info("pelisalacarta.core.updater Version remota: "+REMOTE_VERSION_FILE)
data = scrapertools.cachePage( REMOTE_VERSION_FILE )
'''
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<version>
<name>pelisalacarta</name>
<tag>4.0 </tag>
<version>4000</tag>
<date>20/03/2015</date>
<changes>New release</changes>
</version>
'''
version_publicada = scrapertools.find_single_match(data,"<version>([^<]+)</version>").strip()
tag_publicada = scrapertools.find_single_match(data,"<tag>([^<]+)</tag>").strip()
logger.info("pelisalacarta.core.updater version remota="+tag_publicada+" "+version_publicada)
# Lee el fichero con la versión instalada
localFileName = LOCAL_VERSION_FILE
logger.info("pelisalacarta.core.updater fichero local version: "+localFileName)
infile = open( localFileName )
data = infile.read()
infile.close();
#logger.info("xml local="+data)
version_local = scrapertools.find_single_match(data,"<version>([^<]+)</version>").strip()
tag_local = scrapertools.find_single_match(data,"<tag>([^<]+)</tag>").strip()
logger.info("pelisalacarta.core.updater version local="+tag_local+" "+version_local)
try:
numero_version_publicada = int(version_publicada)
numero_version_local = int(version_local)
except:
import traceback
logger.info(traceback.format_exc())
version_publicada = ""
version_local = ""
if version_publicada=="" or version_local=="":
arraydescargada = tag_publicada.split(".")
arraylocal = tag_local.split(".")
# local 2.8.0 - descargada 2.8.0 -> no descargar
# local 2.9.0 - descargada 2.8.0 -> no descargar
# local 2.8.0 - descargada 2.9.0 -> descargar
if len(arraylocal) == len(arraydescargada):
logger.info("caso 1")
hayqueactualizar = False
for i in range(0, len(arraylocal)):
print arraylocal[i], arraydescargada[i], int(arraydescargada[i]) > int(arraylocal[i])
if int(arraydescargada[i]) > int(arraylocal[i]):
hayqueactualizar = True
# local 2.8.0 - descargada 2.8 -> no descargar
# local 2.9.0 - descargada 2.8 -> no descargar
# local 2.8.0 - descargada 2.9 -> descargar
if len(arraylocal) > len(arraydescargada):
logger.info("caso 2")
hayqueactualizar = False
for i in range(0, len(arraydescargada)):
#print arraylocal[i], arraydescargada[i], int(arraydescargada[i]) > int(arraylocal[i])
if int(arraydescargada[i]) > int(arraylocal[i]):
hayqueactualizar = True
# local 2.8 - descargada 2.8.8 -> descargar
# local 2.9 - descargada 2.8.8 -> no descargar
# local 2.10 - descargada 2.9.9 -> no descargar
# local 2.5 - descargada 3.0.0
if len(arraylocal) < len(arraydescargada):
logger.info("caso 3")
hayqueactualizar = True
for i in range(0, len(arraylocal)):
#print arraylocal[i], arraydescargada[i], int(arraylocal[i])>int(arraydescargada[i])
if int(arraylocal[i]) > int(arraydescargada[i]):
hayqueactualizar = False
elif int(arraylocal[i]) < int(arraydescargada[i]):
hayqueactualizar = True
break
else:
hayqueactualizar = (numero_version_publicada > numero_version_local)
if hayqueactualizar:
if plugin_mode:
logger.info("pelisalacarta.core.updater actualizacion disponible")
# Añade al listado de XBMC
import xbmcgui
thumbnail = IMAGES_PATH+"Crystal_Clear_action_info.png"
logger.info("thumbnail="+thumbnail)
listitem = xbmcgui.ListItem( "Descargar version "+tag_publicada, thumbnailImage=thumbnail )
itemurl = '%s?action=update&version=%s' % ( sys.argv[ 0 ] , tag_publicada )
import xbmcplugin
xbmcplugin.addDirectoryItem( handle = int(sys.argv[ 1 ]), url = itemurl , listitem=listitem, isFolder=True)
# Avisa con un popup
dialog = xbmcgui.Dialog()
dialog.ok("Versión "+tag_publicada+" disponible","Ya puedes descargar la nueva versión del plugin\ndesde el listado principal")
else:
import xbmcgui
yes_pressed = xbmcgui.Dialog().yesno( "Versión "+tag_publicada+" disponible" , "¿Quieres instalarla?" )
if yes_pressed:
params = {"version":tag_publicada}
update(params)
'''
except:
logger.info("No se han podido verificar actualizaciones...")
import sys
for line in sys.exc_info():
logger.error( "%s" % line )
'''
def update(params):
# Descarga el ZIP
logger.info("pelisalacarta.core.updater update")
remotefilename = REMOTE_FILE+params.get("version")+".zip"
localfilename = LOCAL_FILE+params.get("version")+".zip"
logger.info("pelisalacarta.core.updater remotefilename=%s" % remotefilename)
logger.info("pelisalacarta.core.updater localfilename=%s" % localfilename)
logger.info("pelisalacarta.core.updater descarga fichero...")
inicio = time.clock()
#urllib.urlretrieve(remotefilename,localfilename)
from core import downloadtools
downloadtools.downloadfile(remotefilename, localfilename, continuar=False)
fin = time.clock()
logger.info("pelisalacarta.core.updater Descargado en %d segundos " % (fin-inicio+1))
# Lo descomprime
logger.info("pelisalacarta.core.updater descomprime fichero...")
import ziptools
unzipper = ziptools.ziptools()
destpathname = DESTINATION_FOLDER
logger.info("pelisalacarta.core.updater destpathname=%s" % destpathname)
unzipper.extract(localfilename,destpathname)
# Borra el zip descargado
logger.info("pelisalacarta.core.updater borra fichero...")
os.remove(localfilename)
logger.info("pelisalacarta.core.updater ...fichero borrado")
def get_channel_remote_url(channel_name):
_remote_channel_url_ = "https://raw.githubusercontent.com/Fenice82/plugin.video.pelisalacarta_ui.pureita/master/"
if channel_name <> "channelselector":
_remote_channel_url_+= "channels/"
remote_channel_url = _remote_channel_url_+channel_name+".py"
remote_version_url = _remote_channel_url_+channel_name+".xml"
logger.info("pelisalacarta.core.updater remote_channel_url="+remote_channel_url)
logger.info("pelisalacarta.core.updater remote_version_url="+remote_version_url)
return remote_channel_url , remote_version_url
def get_channel_local_path(channel_name):
# TODO: (3.2) El XML debería escribirse en el userdata, de forma que se leerán dos ficheros locales: el del userdata y el que está junto al py (vendrá con el plugin). El mayor de los 2 es la versión actual, y si no existe fichero se asume versión 0
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+".xml" )
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+".xml" )
local_compiled_path = os.path.join( config.get_runtime_path() , channel_name+".pyo" )
logger.info("pelisalacarta.core.updater local_channel_path="+local_channel_path)
logger.info("pelisalacarta.core.updater local_version_path="+local_version_path)
logger.info("pelisalacarta.core.updater local_compiled_path="+local_compiled_path)
return local_channel_path , local_version_path , local_compiled_path
def updatechannel(channel_name):
logger.info("pelisalacarta.core.updater updatechannel('"+channel_name+"')")
# Canal remoto
remote_channel_url , remote_version_url = get_channel_remote_url(channel_name)
# Canal local
local_channel_path , local_version_path , local_compiled_path = get_channel_local_path(channel_name)
#if not os.path.exists(local_channel_path):
# return False;
# Version remota
try:
data = scrapertools.cachePage( remote_version_url )
logger.info("pelisalacarta.core.updater remote_data="+data)
if "<tag>" in data: patronvideos = '<tag>([^<]+)</tag>'
elif "<version>" in data: patronvideos = '<version>([^<]+)</version>'
matches = re.compile(patronvideos,re.DOTALL).findall(data)
remote_version = int(matches[0])
except:
remote_version = 0
logger.info("pelisalacarta.core.updater remote_version=%d" % remote_version)
# Version local
if os.path.exists( local_version_path ):
infile = open( local_version_path )
data = infile.read()
infile.close();
logger.info("pelisalacarta.core.updater local_data="+data)
if "<tag>" in data: patronvideos = '<tag>([^<]+)</tag>'
elif "<version>" in data: patronvideos = '<version>([^<]+)</version>'
matches = re.compile(patronvideos,re.DOTALL).findall(data)
local_version = int(matches[0])
else:
local_version = 0
logger.info("pelisalacarta.core.updater local_version=%d" % local_version)
# Comprueba si ha cambiado
updated = remote_version > local_version
if updated:
logger.info("pelisalacarta.core.updater updated")
download_channel(channel_name)
return updated
def download_channel(channel_name):
logger.info("pelisalacarta.core.updater download_channel('"+channel_name+"')")
# Canal remoto
remote_channel_url , remote_version_url = get_channel_remote_url(channel_name)
# Canal local
local_channel_path , local_version_path , local_compiled_path = get_channel_local_path(channel_name)
# Descarga el canal
updated_channel_data = scrapertools.cachePage( remote_channel_url )
try:
outfile = open(local_channel_path,"w")
outfile.write(updated_channel_data)
outfile.flush()
outfile.close()
logger.info("pelisalacarta.core.updater Grabado a " + local_channel_path)
except:
logger.info("pelisalacarta.core.updater Error al grabar " + local_channel_path)
import sys
for line in sys.exc_info():
logger.error( "%s" % line )
# 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("pelisalacarta.core.updater Grabado a " + local_version_path)
except:
import sys
for line in sys.exc_info():
logger.error( "%s" % line )
if os.path.exists(local_compiled_path):
os.remove(local_compiled_path)
I know... there will be a typo in my files, but I don't see it

EDIT: I'm a newby

grazie/thank you/gracias robalo!
>>click here<<
Re: Update System development by Chryses user
Mensaje por robalo » 10 Sep 2015, 14:04

Lo único que he cambiado ha sido:
Código: Seleccionar todo
#_remote_channel_url_ = "https://raw.githubusercontent.com/Fenice82/plugin.video.pelisalacarta_ui.pureita/master/"
_remote_channel_url_ = "https://raw.githubusercontent.com/tvalacarta/pelisalacarta/master/python/main-classic/"
- zanzibar1982
- Mensajes: 481
- Registrado: 16 Jun 2015, 23:57
Re: Update System development by Chryses user
Mensaje por zanzibar1982 » 13 Sep 2015, 18:14
whenever channelselector.py is updated all the channels in the menù disappear.
To make them re-appear, it is necessary to go into Configuration, press language button and then Ok. Doing so makes the channels reappear.
This bug has appeared since update system for whole addon was committed

- zanzibar1982
- Mensajes: 481
- Registrado: 16 Jun 2015, 23:57
Re: SoD: Sistema di aggiornamento automatico
Mensaje por zanzibar1982 » 25 Oct 2015, 01:47
I've 2 addon folders again, -master and not.
Volver a “Sugerencias (estaría bien que hubiera...)”
- Ayuda sobre plugins
- ↳ tvalacarta
- ↳ Problemas (no me funciona...)
- ↳ Preguntas (cómo se hace...)
- ↳ Sugerencias (estaría bien que hubiera...)
- ↳ pelisalacarta
- ↳ Problemas (no me funciona...)
- ↳ Preguntas (cómo se hace...)
- ↳ Sugerencias (estaría bien que hubiera...)
- ↳ pelisalacarta (For Italian users)
- ↳ Problemi (Non mi funziona...)
- ↳ Domande (Come fare a...)
- ↳ Suggerimenti (Sarebbe bello che...)
- ↳ mywebtv
- ↳ Problemas (no me funciona...)
- ↳ Preguntas (cómo se hace...)
- ↳ Sugerencias (estaría bien que hubiera...)
- ↳ MediaExplorer
- ↳ Balandro
- ↳ Otros plugins
- ↳ Alfa
- ↳ Alfa (For Italian users)
- ↳ Tutoriales
- Ayuda sobre mediacenters
- ↳ XBMC / Kodi
- ↳ Plex
- ↳ Android
- ↳ Raspberry Pi
- ↳ Boxee
- ↳ WiiMC
- ↳ Enigma 2
- ↳ Otros media center
- Sugerencias
- ↳ Nuevos canales
- ↳ Mejoras
- Desarrolladores
- Comunidad
¿Qué es Mi media center?
Este es el foro oficial de soporte para pelisalacarta, tvalacarta y mywebtv.
También es un lugar para compartir tus experiencias con dispositivos multimedia y software media center, puede que encuentres algo interesante que ni siquiera sabías que se podía hacer.
Primeros pasos en Kodi
Si estás empezando con Kodi, o si estás interesado en sacarle más partido, puedes echar un vistazo a esta colección de video-tutoriales.
Aprenderás a crear y optimizar tu biblioteca, a instalar add-ons, a buscar subtítulos...
Cómo reportar un problema
Si tienes un problema en alguno de los plugins y quieres reportarlo, no olvides incluir el log.
Para que resulte útil tienes que activar la opción de "log completo" en el plugin, luego reiniciar Kodi y dar los pasos necesarios hasta que se produzca el problema.
Luego copia tu fichero de log, siguiendo las instrucciones que se describen en este enlace, e inclúyelo al final de la descripción de tu problema.
Aprende a programar para Kodi
Si sabes programar, esta serie de tutoriales que describen paso a paso cómo desarrollar tu propio add-on para Kodi.
Y si quieres añadir tus propios canales a pelisalacarta también te contamos paso a paso cómo hacerlo en este enlace.
¿Quién está conectado?
Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 13 invitados