Página 1 de 2
xbmctools
Publicado: 06 Nov 2015, 00:04
por super_berny
He modificado este archivo para poder incluir informacion extra a xbmcgui.ListItem. Por supuesto, lo hace de forma transparente, es decir si el canal no utiliza esta informacion no habra diferencia alguna.
¿Que informacion podemos añadir al ListItem?
Podeis ver la lista oficial en la
documentacion de Kodi.
¿Como funciona?
El objeto Item no pasa todos sus atributos al crear un objeto xbmcgui.ListItem, asi que necesitaba utilizar algun atributo q si se propage desde mi canal hasta la funcion encargada de crear el ListItem (dentro de xbmctools). De los atributos disponibles he obtado por plot ya que no afecta al resto de funcionamiento del plugin.
En el canal creo un objeto JSON con la siguiente estructura:
Código: Seleccionar todo
{'infoLabels':{'genre': 'Comedia', 'year':2015, ... , 'plot': 'Aqui la sinopsis completa'}
Este JSON se pasa como str al item.plot al crear el Item (podeis verlo en el canal pepecine).
Al llegar esta cadena a xbmctools se comprueba que comienze con "{'infoLabels'" para diferenciarla de los item.plot clasicos y poder llamar al metodo ListItem.setInfo.
Paralelamente creo que estas infoLabels puede ser un buen metodo para ampliar los atributos de Item que podamos necesitar internamente dentro de nuestros canales, ya que si añadimos algun par clave/valor que no este en la lista oficial xmbcgui no da error alguno, simplemente lo ignora.
Re: xbmctools
Publicado: 06 Nov 2015, 21:06
por robalo
Bonito apaño!!

Muchas gracias
Re: xbmctools
Publicado: 13 Nov 2015, 16:04
por Cmos
Me parece muy interesante lo que has añadido super_berny, de esta forma tenemos más opciones para incluir información, además es muy sencillo de entender. Así que lo he puesto en práctica en el canal seriecanal siguiendo tu ejemplo en pepecine, solo he podido añadir algunos parámetros, como el año, temporada o episodio, ya que la web no tiene un sistema fijo, sino que scrapea los datos a veces de filmaffinity y a veces de otras páginas, por lo que es un poco confuso. De todas maneras ha sido un primer intento para habituarme y tenerlo en cuenta para futuros canales que sean más completos en ese aspecto.
Gracias por el curro!
Re: xbmctools
Publicado: 13 Nov 2015, 16:14
por super_berny
Cmos escribió:solo he podido añadir algunos parámetros, como el año, temporada o episodio, ya que la web no tiene un sistema fijo
Cmos si la web no te aporta demasiada informacion puedes utilizar el
scraper Themoviedb para obtener el resto de datos.
Re: xbmctools
Publicado: 13 Nov 2015, 16:23
por Cmos
super_berny escribió:Cmos escribió:solo he podido añadir algunos parámetros, como el año, temporada o episodio, ya que la web no tiene un sistema fijo
Cmos si la web no te aporta demasiada informacion puedes utilizar el
scraper Themoviedb para obtener el resto de datos.
Gracias super_berny por la sugerencia, no había caído en ello, hace tiempo que leí ese hilo y lo dejé como pendiente para probarlo y mirármelo bien. Trastearé con ello este finde a ver qué sale de ahí y si no la lío parda lo incorporo al canal en lugar de la chapucilla que hay ahora

Re: xbmctools
Publicado: 16 Dic 2015, 00:13
por super_berny
A raiz de este
hilo he estado mirando como se añaden opciones al menu contextual y antes de tocar nada q pueda fastidiar a alguien me surjen algunas dudas.
Dentro de la funcion
addnewfolderextra():
- ¿para que sirve la opcion context =1: Borrar busqueda?
- El tema de los subtitulos, tanto aqui como en otras partes del plugin ¿funciona o es obsoleto?
- La opcion de Buscar trailers ¿funciona?
- Todo el codigo referente a justintv ¿podemos eliminarlo?
Mi idea es hacer algo mas generico: item.context podria contener un listado de pares-valor (etiqueta:comando)
Código: Seleccionar todo
for key, value in item.context.items():
contextCommands.append(key,value)
Re: xbmctools
Publicado: 16 Dic 2015, 08:26
por SeiTaN
super_berny escribió:A raiz de este
hilo he estado mirando como se añaden opciones al menu contextual y antes de tocar nada q pueda fastidiar a alguien me surjen algunas dudas.
Dentro de la funcion
addnewfolderextra():
- ¿para que sirve la opcion context =1: Borrar busqueda?
- El tema de los subtitulos, tanto aqui como en otras partes del plugin ¿funciona o es obsoleto?
- La opcion de Buscar trailers ¿funciona?
- Todo el codigo referente a justintv ¿podemos eliminarlo?
Mi idea es hacer algo mas generico: item.context podria contener un listado de pares-valor (etiqueta:comando)
Código: Seleccionar todo
for key, value in item.context.items():
contextCommands.append(key,value)
En mi xbmctools tengo comentado el codigo que dices de justin del resto no he mirado.
Lo de hacer context más genérico, a menos que se me escape algo, no veo necesidad de lo que dices.
Un saludo.
Re: xbmctools
Publicado: 16 Dic 2015, 18:04
por SeiTaN
Ahora que lo he mirado sin estar dormido, parece que tiene su lógica, sino quieres meter codigo dentro del xbmctools, añades esas dos líneas y te olvidas de tener que editar otro fichero más.
Buena idea super_berny, sólo una cosa.. ahora mismo el campo "context" está como texto, si se va a modificar Item y hacer lo que se comentó de campos basicos y luego el "tourl" y tal, no habría problemas, si se deja como str, habría que pasarlo a dict
Código: Seleccionar todo
for key, value in eval(item.context).items():
contextCommands.append(key,value)
Re: xbmctools
Publicado: 16 Dic 2015, 21:52
por super_berny
Efectivamente estaba pensando en el ítem de divadr
Pero lo básico creó q es averiguar si algún canal utiliza el context tal y como esta ahora, para no fastidiar a nadie.
Re: xbmctools
Publicado: 20 Dic 2015, 12:49
por jesus
Hace tiempo que tengo claro que la forma de pasar los atributos hay que hacerla mucho más dinámica...
No he podido echar un vistazo a lo que has hecho ni al item de divadr, pero por aportar mi idea yo pensaba más en lo que hace la versión de wiimc. Que hice mucho después que ese xbmctools.
En la URL solo había un parámetro, de valor:
Y recuperar el item era tan fácil como:
Código: Seleccionar todo
item = Item()
item.deserialize(base64.b64decode(itemserializado))
El serialize() del item ahora mismo tampoco es la leche, intenté hacerlo con "cerealizer" pero daba muchos problemas, sin embargo seguro que se puede hacer mucho mejor.
La idea es que pongas lo que pongas en el item, esté ahí cuando lo recuperes sin tener que preocuparte.
En la librería PluginTools la solución sigue siendo chapucera, nunca lo he resuelto de una forma que me convenza...