Página 1 de 2
biblioteca Pelisalacarta UI
Publicado: 14 Sep 2015, 09:29
por fenice82
Hola todos,
in the version in subject, when a click on "Anadir esta serie a la biblioteca de XBMC" I obtain the following error "se ha producito un error"
I've no log to supply, sorry
Re: biblioteca Pelisalacarta UI
Publicado: 14 Sep 2015, 10:13
por robalo

Parce una pregunta trampa de un examen.
Si tienes un mensaje de error de kodi, esquina inferior derecha, el error queda reflejado en kodi.log. Si el mensaje lo genera pelisalacarta puedes tener o no tener datos del error en kodi.log si el código implicado es controlado o no es controlado por alguna excepción.
En cualquier caso, lo que sí tienes es el código que genera el error
Cuál es la puntuación para respuesta a esta pregunta trampa del examen?
Bromas aparte, pegar el código que genera el error sería de mucha ayuda, tenemos que adivinar a que te refieres.
Si es la opción 'Biblioteca' del menú principal de pelisalacarta-ui, hay hilos que se habla de este problema, entre los que se encuentra uno de zanzibar que enlaza a otros con el mismo problema
viewtopic.php?f=22&t=6971
Con eso y con lo que realmente quieres o esperas encontrar cuando se accede a la opción 'Biblioteca' podrás encontrar una respuesta.
Si es la opción "Añadir esta serie a la bibloteca de XBMC" que se incluye en algunos canales en la función 'episodios', existen bastantes hilos sobre el tema pero si no te quieres marear mucho, pega el código a tu solución y entre todos veremos que puede fallar.
Re: biblioteca Pelisalacarta UI
Publicado: 14 Sep 2015, 10:42
por fenice82
robalo escribió:
Parce una pregunta trampa de un examen.
Si tienes un mensaje de error de kodi, esquina inferior derecha, el error queda reflejado en kodi.log. Si el mensaje lo genera pelisalacarta puedes tener o no tener datos del error en kodi.log si el código implicado es controlado o no es controlado por alguna excepción.
En cualquier caso, lo que sí tienes es el código que genera el error
Cuál es la puntuación para respuesta a esta pregunta trampa del examen?
Bromas aparte, pegar el código que genera el error sería de mucha ayuda, tenemos que adivinar a que te refieres.
Si es la opción 'Biblioteca' del menú principal de pelisalacarta-ui, hay hilos que se habla de este problema, entre los que se encuentra uno de zanzibar que enlaza a otros con el mismo problema
viewtopic.php?f=22&t=6971
Con eso y con lo que realmente quieres o esperas encontrar cuando se accede a la opción 'Biblioteca' podrás encontrar una respuesta.
Si es la opción "Añadir esta serie a la bibloteca de XBMC" que se incluye en algunos canales en la función 'episodios', existen bastantes hilos sobre el tema pero si no te quieres marear mucho, pega el código a tu solución y entre todos veremos que puede fallar.
yes, I know... I didn't supplied you too much details...
The problem is about the option "Añadir esta serie a la bibloteca de XBMC". It's a strange error also because there is not error in the classic version
I tested it with channel animeflv
Re: biblioteca Pelisalacarta UI
Publicado: 14 Sep 2015, 12:09
por robalo
Bien, supongo que habrás observado que la versión 'ui' ya no usa 'platformcode/launcher.py', usa 'navigation.py' pero se mantenie el archivo en la carpeta 'platformcode'.
Te cuento lo que yo haría. Primero intentar localizar un buen punto de entrada para la 'action="add_serie_to_library"' y en segundo lugar intertar recrear o reutilizar el código en el punto de entrada elegido.
Un punto de entrada para la ejecución de 'action="add_serie_to_library"' podría ser en el archivo 'navigation.py' más o menos aquí
Código: Seleccionar todo
[.....]
elif item.action=="findvideos":
plugintools.log("navigation.get_next_items findvideos")
[.....]
## New code
[.....]
else:
[.....]
Puedes probar con lo siguiente para ver que en ese punto podemos, en apariencia, controlar 'action="add_serie_to_library"'
Código: Seleccionar todo
[.....]
elif item.action=="findvideos":
plugintools.log("navigation.get_next_items findvideos")
[.....]
# --------------------------------------------------------------------
elif item.action=="add_serie_to_library":
plugintools.log("navigation.get_next_items add_serie_to_library")
return [ Item( title="%s: %s, %s, %s" % (item.channel, item.action, item.extra, item.show) ) ]
# --------------------------------------------------------------------
else:
[.....]
Re: biblioteca Pelisalacarta UI
Publicado: 14 Sep 2015, 12:43
por fenice82
I've added the code and I get in order:
no log to help you...
I tried to copy all the function inside launcher.py and i get just the error message
Re: biblioteca Pelisalacarta UI
Publicado: 14 Sep 2015, 13:34
por robalo
Es normal, hay que ojear detenidamente el código
Re: biblioteca Pelisalacarta UI
Publicado: 14 Sep 2015, 13:37
por fenice82
yes, I saw...
However the message in the previous pictures is referred at your code.
Re: biblioteca Pelisalacarta UI
Publicado: 14 Sep 2015, 15:53
por robalo

Ese código es una propuesta de una posible entrada para la insertar el código necesrio para añadir la serie a la biblioteca de xbmc/kodi.
En ese lugar se debería recrear el código del archivo launcher.py para este objetivo.
Puedo postearlo sin más pero creo que es mejor que hagas un intento por tí mismo que te servirá de ejercicio para un futuro mantenimiento de tu proyecto.
Nota: La ruta la tengo personalizada en la configuración compartida por todos los equipos de mi red local. No tiene nada que ver con el código que se tiene que implementar.
Re: biblioteca Pelisalacarta UI
Publicado: 16 Sep 2015, 22:45
por fenice82
Python or n++ made me crazy
I fixed the libray the other day after 5 minutes but I don't know why, n++ put a space at the begin of a string and kodi gave me an error message.
Today I tried again and everything works good...
At the end was enough to copy the launcher part, added a string about the import of config and put at the end return itemlist.
Or there is a better way to do this?
Re: biblioteca Pelisalacarta UI
Publicado: 17 Sep 2015, 08:33
por robalo
1. Añadir funcionalidad a la opción "Añadir esta serie a la biblioteca XBMC" (
action="add_serie_to_library").
Código: Seleccionar todo
# -- -------------------------------------------------------------- --
# -- Código 'add_serie_to_library' del launcher.py con pequeñas --
# -- modificaciones para versión 'ui' --
elif item.action=="add_serie_to_library":
plugintools.log("navigation.get_next_items add_serie_to_library")
from platformcode import library
import xbmcgui
# Obtiene el listado desde el que se llamó
action = item.extra
# Esta marca es porque el item tiene algo más aparte en el atributo "extra"
if "###" in item.extra:
action = item.extra.split("###")[0]
item.extra = item.extra.split("###")[1]
exec "itemlist = channel."+action+"(item)"
# Progreso
pDialog = xbmcgui.DialogProgress()
ret = pDialog.create('pelisalacarta', 'Añadiendo episodios...')
pDialog.update(0, 'Añadiendo episodio...')
totalepisodes = len(itemlist)
plugintools.log("[launcher.py] Total Episodios:"+str(totalepisodes))
i = 0
errores = 0
nuevos = 0
for item in itemlist:
i = i + 1
pDialog.update(i*100/totalepisodes, 'Añadiendo episodio...',item.title)
plugintools.log("pelisalacarta.platformcode.launcher add_serie_to_library, title="+item.title)
if (pDialog.iscanceled()):
return
try:
#(titulo="",url="",thumbnail="",server="",plot="",canal="",category="Cine",Serie="",verbose=True,accion="strm",pedirnombre=True):
# Añade todos menos el que dice "Añadir esta serie..." o "Descargar esta serie..."
if item.action!="add_serie_to_library" and item.action!="download_all_episodes":
nuevos = nuevos + library.savelibrary( titulo=item.title , url=item.url , thumbnail=item.thumbnail , server=item.server , plot=item.plot , canal=item.channel , category="Series" , Serie=item.show.strip() , verbose=False, accion="play_from_library", pedirnombre=False, subtitle=item.subtitle, extra=item.extra )
except IOError:
import sys
for line in sys.exc_info():
logger.error( "%s" % line )
plugintools.log("pelisalacarta.platformcode.launcherError al grabar el archivo "+item.title)
errores = errores + 1
pDialog.close()
# Actualizacion de la biblioteca
itemlist=[]
if errores > 0:
itemlist.append(Item(title="ERROR, la serie NO se ha añadido a la biblioteca o lo ha hecho incompleta"))
plugintools.log("[launcher.py] No se pudo añadir "+str(errores)+" episodios")
else:
itemlist.append(Item(title="La serie se ha añadido a la biblioteca"))
plugintools.log("[launcher.py] Ningún error al añadir "+str(errores)+" episodios")
## ERROR AQUÍ
# FIXME:jesus Comentado porque no funciona bien en todas las versiones de XBMC
#library.update(totalepisodes,errores,nuevos)
#xbmctools.renderItems(itemlist, launcher.extract_parameters(), url, category)
#Lista con series para actualizar
from core import config
nombre_fichero_config_canal = os.path.join( config.get_library_path() , "series.xml" )
if not os.path.exists(nombre_fichero_config_canal):
nombre_fichero_config_canal = os.path.join( config.get_data_path() , "series.xml" )
plugintools.log("nombre_fichero_config_canal="+nombre_fichero_config_canal)
if not os.path.exists(nombre_fichero_config_canal):
f = open( nombre_fichero_config_canal , "w" )
else:
f = open( nombre_fichero_config_canal , "r" )
contenido = f.read()
f.close()
f = open( nombre_fichero_config_canal , "w" )
f.write(contenido)
from platformcode import library
f.write( library.title_to_folder_name(item.show)+","+item.url+","+item.channel+"\n")
f.close();
return itemlist
# -- -------------------------------------------------------------- --
2. Corregir el path de la carpeta 'channels' para la actualización de los nuevos episodios a la biblioteca de xbmc/kodi.
- Cambiar en library_service.py:
Código: Seleccionar todo
pathchannels = os.path.join(config.get_runtime_path() ,'pelisalacarta', 'channels' ,serie[2].strip() + '.py')
Código: Seleccionar todo
pathchannels = os.path.join(config.get_runtime_path(), 'channels' ,serie[2].strip() + '.py')