Página 1 de 1

Actualización automática de canales en pelisalacarta (v2)

Publicado: 27 Sep 2010, 22:04
por jesus
EDITO: Para recoger el nuevo funcionamiento desde la versión 2.19.1

Si queréis que un canal se actualice no tenéis que esperar a una nueva versión de pelisalacarta, basta con que lo subáis al trunk del subversion y subais el número de la versión.

1) Todos los canales tienen un fichero xml con el mismo nombre que el canal (por ejemplo letmewatchthis.py tiene letmewatchthis.xml), que dentro contiene la versión del canal.

Código: Seleccionar todo

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<version>
	<name>letmewatchthis</name>
	<tag>1</tag>
	<date>03/12/2010</date>
	<changes>Website changed</changes>
</version>
2) Si quieres que un canal se actualice en todas las instalaciones de pelisalacarta que tienen activada esta opción, lo único que tienes que hacer es subir al subversion el canal modificado y el fichero XML con el número de version (tag) incrementado. Es mejor que uses números en lugar de v1.1 y cosas así.
3) Cada vez que entras al canal el plugin comprueba que no haya una versión más reciente de ese canal en el trunk del subversion, comparando la versión de tu canal local y la versión remota. Si no hay fichero XML, la versión es 0 (cero).
4) Si hay una versión posterior se descarga el .py y el .xml, y se borra el .pyo con el canal compilado para que XBMC vuelva a compilarla, muestra un popup para avisarte, y listo.
5) Canal actualizado.

Mola ¿no?

Cuando un canal falle y queráis arreglarlo, basta con que lo subáis al SVN. Si tenéis versiones "a medida" de algunos canales mejor desactivad la opción, porque os las chafará :(

De momento está en modo experimental, a ver qué tal funciona. El canal letmewatchthis tiene un fichero para que podáis usarlo como ejemplo.

Tiene una ventaja para los usuarios, más que evidente porque así podemos arreglar los canales muy rápido. Pero también tiene una ventaja para los desarrolladores, y es que a la hora de sacar nuevas versiones ya no tenemos que preocuparnos de ir arreglando uno por uno los canales contrarreloj. Arreglamos los canales tranquilamente entre versiones, y dejamos las versiones oficiales para incorporar nuevos canales y mejoras generales.

Re: Actualización automática de canales en pelisalacarta

Publicado: 04 Oct 2010, 16:19
por bandavi
Si que mola,
La unica pega que yo le veo, es que vamos a tener problemas cuando subamos al svn aquellos canales que "importen" nuevos servidores o utilicen alguna libreria y que aun no lo tengan instalado los usuarios en sus versiones actuales.

Osea que en este momento no podemos hacer un cambio profundo en un canal y subirlo al svn, porque podria saltar errores de script en todos los que la actualicen, asi que tendremos que limitarnos a hacer cambios sencillos que solo afecten al canal, hasta ver como podriamos resolverlo, no crees Jesus?

Re: Actualización automática de canales en pelisalacarta

Publicado: 05 Oct 2010, 13:25
por jesus
Lo pensé, pero teniendo en cuenta que no se suelen hacer grandes cambios en canales como los que indicas tampoco le veo mucho inconveniente.

Está más pensado para arreglar fallitos de esos que se producen por cambio del HTML.

Y los nuevos canales no entran dentro de este sistema, ya que no estarán recogidos en el channelselector.py.

De todas formas se admiten sugerencias. Pero que sean fáciles de mantener :)

Re: Actualización automática de canales en pelisalacarta

Publicado: 05 Oct 2010, 17:53
por bandavi
Pues yo si lo he hecho en la anterior version 2.18, he incorporado un nuevo servidor [VKServer] a las librerias y las he utilizado en canales que ya estaban, por eso te lo comentaba, ademas nos limitaria mucho al no poder utilizar ninguna mejoria que se haga al plugin y que afecte a los canales, incluso aunque retrasemos la subida al trunk hasta ultimo momento, fallará justo en el momento que lo subamos.

Una solucion seria que, en vez de descargar del "trunk" directamente lo haga desde "branches" o "tags", y que tenga una version igual o anterior a la ultima, y que solo la utilicemos para actualizar los canales con fallos de HTML.

Pienso que no será necesario hacerle ningun mantenimiento, solo con subir el canal arreglado con nueva fecha bastará , porque supongo que cada canal que se actualiza automaticamente verifica si la fecha es mayor a la que tiene para actualizarse y si es menor o igual no hace nada.

Re: Actualización automática de canales en pelisalacarta

Publicado: 09 Oct 2010, 09:43
por jesus
Si, usar otra rama es más coherente.

Pero creo que usando el trunk es más práctico, puesto que así hacemos el commit y ya está. En la próxima versión el arreglo está en su sitio.

Si vemos que se convierte en un impedimento muy habitual lo pensamos, pero hasta ahora solemos hacer todos el commit uno o dos días antes de subir la versión.

Re: Actualización automática de canales en pelisalacarta

Publicado: 24 Oct 2010, 18:07
por jesus
Después de trabajar estos días con el plugin he llegado a la conclusión de que realmente esto es un problema. Voy a subir una versión 2.18.2 modificando el comportamiento de las actualizaciones automáticas, para así poder ir subiendo cosas al SVN sin que afecte, pero esta vez antes os cuento lo que he pensado para que veamos si se nos ocurre algún problema.

1) La idea será la misma, subir el canal al trunk para que la gente lo pueda descargar actualizado desde xbmc.
2) En el directorio "channels", junto a cada canal (por ejemplo "cinetube.py") habrá un fichero xml ("cinetube.xml") que tendrá el número de versión. De esa forma si tienes una versión "1" de cinetube y en el xml del trunk pone versión "2", se descargarán ambos ficheros.
3) Eso permitirá que el .py del canal pueda cambiar en el trunk, pero el usuario no lo verá hasta que no cambiemos el .xml asociado. Es relativamente fácil de mantener y resuelve el problema.

¿Que os parece?

Re: Actualización automática de canales en pelisalacarta

Publicado: 07 Nov 2010, 09:30
por bandavi
Muy interesante lo del fichero xml, me parece buena idea, en un futuro podriamos convertirlo en un minisetting del canal para marcar los videos reproducidos,ultimo reproducido, favoritos etc...

Seria bueno poder crear modulos que permitan acceder facilmente a los datos del fichero xml, mas o menos como las del setting general. :)

Re: Actualización automática de canales en pelisalacarta

Publicado: 07 Nov 2010, 20:16
por jesus
Pensado así... no se cómo se nos ha ocurrido antes :)

Podemos añadir un parámetro por defecto "canal" en el getSetting y en el setSetting del config.py, de forma que con getSetting(valor) obtengas el valor actual y con getSetting(valor, canal="seriesyonkis") obtengas el específico del canal.

Tengo que ver cómo encaja eso en lo de las actualizaciones automáticas, pero en general puede tener muchas posibilidades.

Re: Actualización automática de canales en pelisalacarta (v2)

Publicado: 03 Dic 2010, 02:53
por jesus
He actualizado las instrucciones.

@bandavi, el tema de la configuración por canal lo haremos de otra forma usando el mismo settings.xml. Le he dado vueltas pero no me encajaba mucho con esto.