Página 1 de 1
Nuevo channelselector
Publicado: 18 Mar 2015, 01:17
por super_berny
Hola compañeros hoy le ha tocado el turno a este archivo
- Problemas del channelselector.py actual:
- Cuando se sube un nuevo canal al SVN, la persona que lo sube tiene q modificar tambien este archivo
- Cuando alguien publica un nuevo canal en el foro y no esta subido aun a SVN hay que editar la version local para poderlo utilizar y no todo el mundo sabe como.
- Cuando se actualiza, por la adiccion de un nuevo canal, machaca nuestra copia local (q podriamos haber modificado antes)
- Cuando un canal deja de funcionar, si bien se puede comentar la entrada para q no se vea, los archivos del canal no se eliminan (ocupando espacio)
Ventajas del channelselector.py propuesto:
- Solo con añadir a SVN algun canal, tendremos todos las actualizacion en local, sin necesidad de modificar nada mas.
- Si un canal esta en nuestro local pero no en SVN tendremos 3 opciones (configuracion_global):
1. Eliminar los archivos locales del canal (ha sido eliminado de SVN por q ya no funcionaba)
2. Seguir mostrandolo en el menu (puede ser un canal en pruebas o copiado del foro antes de subirlo a SVN)
3. Ignorarlo. En este caso ni se borra ni se muestra (para los indecisos
)
Condiciones que deberian cumplirse para que esto funcione bien:
- Todos los canales deben incluir una serie de argumentos obligatorios como el nombre, el titulo , si es un canal de adultos y el tipo, asi como otros opcionales como la categoria, el icono y el idioma.
- Deberiamos intentar ser lo mas precisos posibles (un canal generalista, aunque incluya alguna pelicula manga no se puede catalogar como Anime, por ejemplo)
- Mencion especial merece el argumento 'adult' responsable de ocultar los canales para adultos y que actualmente practicamente no se usa. (por eso no confieis aun de este channelselector si teneis niños en casa)
- De momento he tomado estos parametros de los archivos .py, pero creo q lo mas natural seria pasar estos argumentos al xml q indica la version.
Bueno probarlo y decirme que os parece la idea.
Por otra parte y cambiando de tema ¿los servers se actualizan automaticamente? Yo no lo he visto, y me parece tan interesante actualizar servers como los propios canales. ¿que me decis?
Re: Nuevo channelselector
Publicado: 18 Mar 2015, 07:18
por jesus
Yo tenía pensado algo parecido, me alegro que lo hayas planteado.
Además de cargar dinámicamente los canales por su archivo, sin tener una lista manual en el channelselector, pensaba añadir la posibilidad de que la gente instalara sus propios canales fácilmente permitiendo diferentes "repositorios" o algo de ese estilo.
Para incluirlo vamos a hacer lo siguiente.
Estoy preparando la actualización de la versión actual de pelisalacarta, con las actualizaciones de canales y servidores que he ido incorporando y que ha subido todo el mundo al SVN. Si no se tuerce nada será la última actualización de la versión 3.x.
Luego voy a crear en Github el repositorio para la versión 4.x, con el mismo que hay ahora en el SVN aunque ligeramente reordenado.
A partir de ese punto este tipo de cambios que son más complejos que un canal o un conector los hacemos directamente en Github, ya que serán más sencillos de integrar.
O al menos eso espero, mi experiencia con Github es limitada

Re: Nuevo channelselector
Publicado: 18 Mar 2015, 13:37
por divadr
Me parece una idea genial... pero acualemente hay muchos canales estan en la carpeta channels y no estan puestos en el channelselector. Supongo que porque no funcionan... habra que eliminarlos para que funcione?
Tambien estaria bien quitar todo el codigo especifico de xbmc del channelselector... como he hecho en el que adjunto con el launcher que he estado modificando
Re: Nuevo channelselector
Publicado: 18 Mar 2015, 17:34
por super_berny
divadr escribió:Me parece una idea genial... pero acualemente hay muchos canales estan en la carpeta channels y no estan puestos en el channelselector. Supongo que porque no funcionan... habra que eliminarlos para que funcione?
Tambien estaria bien quitar todo el codigo especifico de xbmc del channelselector... como he hecho en el que adjunto con el launcher que he estado modificando
Cuando dices q estan en la carpeta channels...
- Si te refieres a TU carpeta local channels: No hace falta hacer nada para que funcione, si seleccionas la opcion 1 en la configuracion se eliminaran automaticamente. Esta es la opcion q la inmensa mayoria de personas deberian utilizar. Aunque en el caso de que nos guste crear canales o probar canales 'beta' deberiamos utilizar la opcion 2 o 3
- Si te refieres a la carpeta channels remota: Si, alguien con acceso deberia hacer limpieza en el repositorio de canales (me ha gustado el concepto
)
Sobre lo de quitar el codigo xbmc totalmente de acuerdo, lo que pasa es q mientras estas 'propuestas' no se implanten creo q debemos ir haciendolas en base al codigo original. Si te fijas solo hay dos funciones q dependen de las librerias de xbmc (y ademas esta comentado en el codigo), asi q deberia ser muy facil sacarlas de ahi.
Por otra parte lo que si es fundamental para q esto funcione correctamente es editar los canales y añadir/corregir los atributos. Sobretodo los canales para adultos y algunos canales q tiene el type como genericos, pero q creo q no deberian serlos (personal.py, tengourl.py y alguno mas)
Re: Nuevo channelselector
Publicado: 18 Mar 2015, 18:32
por divadr
Tambien se podria añadir a los canales un atriburo "Disabled=True" asi podriamos deasctivar canales que temporalmente no funcionan sin necesidad de tener que eliminarlos del repositorio
Re: Nuevo channelselector
Publicado: 18 Mar 2015, 19:06
por super_berny
divadr escribió:Tambien se podria añadir a los canales un atriburo "Disabled=True" asi podriamos deasctivar canales que temporalmente no funcionan sin necesidad de tener que eliminarlos del repositorio
Lo pense. En un primer momento mi proposito era leer todos los atributos de todos los canales y asi saber si habia que actualizarlos. Pero lo descarte porque leer todos los canales (locales y remotos) era lento. Asi que lo que hago es comparar el listado de archivos en remoto con el listado de archivos locales, si se ha añadido en el repositorio algo nuevo, lo descargo y leo sus atributos para añadirlos a una especie de indice que se guarda en la configuracion personal de cada user, de donde despues sale el listado de canales mostrados.
La actualizacion de un canal por otra version continua haciendose como hasta ahora al entrar en dicho canal.
Otra alternativa que tambien baraje fue la de mantener en el repositorio un indice con los atributos de cada canal, incluyendo el numero de version y asi leyendo ese indice y comparandolo con el indice local que comente antes podriamos, por ejemplo: saber q canales tienen nuevas actualizaciones antes de entrar en el propio canal, podrimas desactivar caneles temporalmente por manteniminiento, etc... El problema es que mantener el indice remoto era como hasta ahora mantener el channelselector.py, asi q ganaba poca funcionalidad.
Re: Nuevo channelselector
Publicado: 18 Mar 2015, 19:33
por divadr
No, lo que yo quiero decir, es que igual que filtras los de contenido para adultos con el atributo __adult_ y si es true no se muestra, lo mismo con un atributo __disabled__ de manera, que si hay canales que no funcionan, si están desactivados no se cargarían. aunque estén en la carpeta local y en el repositorio, no se trata de que se actualicen automáticamente, sino que no sea necesario borrarlos y puedan estar ahí, ocultos hasta que se arreglen, y en la siguiente versión del plugin ya estén disponibles...
Re: Nuevo channelselector
Publicado: 19 Mar 2015, 07:33
por super_berny
divadr escribió:No, lo que yo quiero decir, es que igual que filtras los de contenido para adultos con el atributo __adult_ y si es true no se muestra, lo mismo con un atributo __disabled__ de manera, que si hay canales que no funcionan, si están desactivados no se cargarían. aunque estén en la carpeta local y en el repositorio, no se trata de que se actualicen automáticamente, sino que no sea necesario borrarlos y puedan estar ahí, ocultos hasta que se arreglen, y en la siguiente versión del plugin ya estén disponibles...
Creo q no me has entendido. El filtro funciona porque cuando se añade un nuevo canal al repositorio y se copia al local, ENTONCES y solo ENTONCES se abre el canal y se leen sus atributos. Estos atributos, que son INMUTABLES, se copian en el fichero indice y es la informacion de dicho indice la que utilizamos para filtrar los canales.
Si un canal deja de funcionar y se activa un atributo __disabled__, el plugin no se va a enterar, a menos q se cambie el numero de version del xml, en cuyo caso se actualizara (si tenemos la opcion marcada) con el metodo tradicional al entrar en dicho canal. Pero en ningun caso channelselector modificara el indice por esta actualizacion, por lo q siempre tendra los mismos atributos q cuando se añadio.
Por otra parte, no veo la razon de tener un canal desactivado. Si ha dejado de funcionar y hay q modificarlo, cualquier actualizacion va a pasar por sobreescribir el archivo channel.py
Re: Nuevo channelselector
Publicado: 19 Mar 2015, 09:26
por divadr
Tienes razón... es mas sencillo asi... de todos modos si hay un canal que no funciona y no se quiere borrar del repositorio porque está pendiente de ser corregido... con guardarlo en otra carpeta ya estaría...