Voy a probar la nueva versión.
Actualizaciones automaticas y channelselector dinamico

Re: Actualizaciones automaticas y channelselector dinamico
Mensaje por Cmos » 15 Dic 2015, 18:45
Sí, sí, eso fue lo primero que hice, los json son iguales que en github, pero como los .py que descomprime el zip son distintos, detecta que se ha actualizado cuando en realidad es la misma versión. No es un problema gordo porque actualizas y punto, pero es lo que dice divadr, que lo que haya en el zip debería ser exactamente igual que lo que hay en github.SeiTaN escribió:Cmos en la 4.0.4 no están los jsons, bajate los canales del GitHub.
Voy a probar la nueva versión.
Publicidad
Re: Actualizaciones automaticas y channelselector dinamico
Mensaje por SeiTaN » 15 Dic 2015, 19:07
Código: Seleccionar todo
19:05:04 T:17024 NOTICE: pelisalacarta.platformcode.launcher multiplatform channel
19:05:04 T:17024 NOTICE: pelisalacarta.platformcode.launcher executing channel 'mainlist' method
19:05:04 T:17024 NOTICE: get_channels_list
19:05:04 T:17024 NOTICE: [get_channels_list] No es necesario regenerar el indice
19:05:04 T:17024 NOTICE: get_servers_list
19:05:04 T:17024 NOTICE: [get_servers_list] No es necesario regenerar el indice
19:05:04 T:17024 NOTICE: [xbmctools.py] renderItems
19:05:04 T:17024 NOTICE: [xbmctools.py] addnewfolderextra( "","updater" , "refresh" , "Actualizaciones", "Buscar actualizaciones de nuevo" , "" , "" , "" , "")
19:05:04 T:17024 NOTICE: [xbmctools.py] addnewfolderextra( "","" , "" , "Actualizaciones", "¡No hay actualizaciones!" , "" , "" , "" , "")
19:05:04 T:8904 NOTICE: Thread BackgroundLoader start, auto delete: false
19:05:04 T:15324 ERROR: XFILE::CDirectory::GetDirectory - Error getting plugin://plugin.video.pelisalacarta/?Serie&action=refresh&category=Actualizaciones&channel=updater&extradata&fanart=C%3a%2fUsers%2fSeiTaN%2fAppData%2fRoaming%2fKodi%2faddons%2fplugin.video.pelisalacarta%2ffanart.jpg&fulltitle=Buscar%20actualizaciones%20de%20nuevo&plot&show&thumbnail&title=Buscar%20actualizaciones%20de%20nuevo&url
19:05:04 T:15324 ERROR: CGUIMediaWindow::GetDirectory(plugin://plugin.video.pelisalacarta/?Serie&action=refresh&category=Actualizaciones&channel=updater&extradata&fanart=C%3a%2fUsers%2fSeiTaN%2fAppData%2fRoaming%2fKodi%2faddons%2fplugin.video.pelisalacarta%2ffanart.jpg&fulltitle=Buscar%20actualizaciones%20de%20nuevo&plot&show&thumbnail&title=Buscar%20actualizaciones%20de%20nuevo&url) failed
19:05:04 T:16868 NOTICE: Thread LanguageInvoker start, auto delete: false
19:05:04 T:16868 NOTICE: -->Python Interpreter Initialized<--
19:05:04 T:16868 NOTICE: pelisalacarta.default init...
19:05:04 T:16868 NOTICE: pelisalacarta.platformcode.launcher run
19:05:04 T:16868 NOTICE: pelisalacarta.core.config.verify_directories_created
19:05:04 T:16868 NOTICE: pelisalacarta.platformcode.launcher extract_parameters
19:05:04 T:16868 NOTICE: pelisalacarta.platformcode.launcher sys.argv=['plugin://plugin.video.pelisalacarta/', '10', '?action=mainlist&category=Actualizaciones&channel=updater']
19:05:04 T:16868 NOTICE: get_params
19:05:04 T:16868 NOTICE: get_params ?action=mainlist&category=Actualizaciones&channel=updater
19:05:04 T:16868 NOTICE: get_params command=action=mainlist
19:05:04 T:16868 NOTICE: get_params command=category=Actualizaciones
19:05:04 T:16868 NOTICE: get_params command=channel=updater
19:05:04 T:16868 NOTICE: get_params {'action': 'mainlist', 'category': 'Actualizaciones', 'channel': 'updater'}
19:05:04 T:16868 NOTICE: pelisalacarta.platformcode.launcher params={'action': 'mainlist', 'category': 'Actualizaciones', 'channel': 'updater'}
19:05:04 T:16868 NOTICE: pelisalacarta.platformcode.launcher fanart=, channel_name=updater, title=, fulltitle=, url=, thumbnail=, plot=, action=mainlist, server=, extra=, subtitle=, category=Actualizaciones, show=, password=
19:05:04 T:16868 NOTICE: pelisalacarta.platformcode.launcher.set_server_list start
19:05:04 T:16868 NOTICE: set_server_list whiteList ['streamcloud', 'powvideo', 'streaminto']
19:05:04 T:16868 NOTICE: set_server_list blackList []
19:05:04 T:16868 NOTICE: pelisalacarta.platformcode.launcher.set_server_list end
19:05:04 T:16868 NOTICE: pelisalacarta.core.channeltools is_adult channel_name=updater
19:05:04 T:16868 NOTICE: pelisalacarta.core.channeltools get_channel_parameters channel_name=updater
19:05:04 T:16868 NOTICE: pelisalacarta.core.channeltools get_channel_parameters updater.xml NOT found
19:05:04 T:16868 NOTICE: pelisalacarta.platformcode.launcher regular_channel_path=C:\Users\SeiTaN\AppData\Roaming\Kodi\addons\plugin.video.pelisalacarta\channels\updater.py
19:05:04 T:16868 NOTICE: pelisalacarta.platformcode.launcher core_channel_path=C:\Users\SeiTaN\AppData\Roaming\Kodi\addons\plugin.video.pelisalacarta\core\updater.py
19:05:04 T:16868 NOTICE: pelisalacarta.platformcode.launcher running channel core.updater C:\Users\SeiTaN\AppData\Roaming\Kodi\addons\plugin.video.pelisalacarta\core\updater.pyo
19:05:04 T:16868 NOTICE: pelisalacarta.platformcode.launcher multiplatform channel
19:05:04 T:16868 NOTICE: pelisalacarta.platformcode.launcher executing channel 'mainlist' method
19:05:04 T:16868 NOTICE: get_channels_list
19:05:04 T:16868 NOTICE: [get_channels_list] No es necesario regenerar el indice
19:05:04 T:16868 NOTICE: get_servers_list
19:05:04 T:16868 NOTICE: [get_servers_list] No es necesario regenerar el indice
19:05:04 T:16868 NOTICE: [xbmctools.py] renderItems
19:05:04 T:16868 NOTICE: [xbmctools.py] addnewfolderextra( "","updater" , "refresh" , "Actualizaciones", "Buscar actualizaciones de nuevo" , "" , "" , "" , "")
19:05:04 T:16868 NOTICE: [xbmctools.py] addnewfolderextra( "","" , "" , "Actualizaciones", "¡No hay actualizaciones!" , "" , "" , "" , "")
19:05:04 T:16896 NOTICE: Thread BackgroundLoader start, auto delete: false
Re: Actualizaciones automaticas y channelselector dinamico
Mensaje por divadr » 15 Dic 2015, 19:11
Lo comento porque en los canales, el updater SOLO comprueba el json, cuando descargas la actualización si que descarga los dos json + py
Lo hice asi porque me parece tontería comprobar los dos archivos, y ya que el json es el que lleva el numero de versión, cuando este cambia es que hay una actualización y deben actualizarse los dos
Re: Actualizaciones automaticas y channelselector dinamico
Mensaje por SeiTaN » 15 Dic 2015, 19:39
Vale, entonces es eso, gracias por la explicación.divadr escribió:Que es lo que has modificado? El jspn el .py?
Lo comento porque en los canales, el updater SOLO comprueba el json, cuando descargas la actualización si que descarga los dos json + py
Lo hice asi porque me parece tontería comprobar los dos archivos, y ya que el json es el que lleva el numero de versión, cuando este cambia es que hay una actualización y deben actualizarse los dos
-
- Mensajes: 801
- Registrado: 12 Jun 2014, 23:28
Re: Actualizaciones automaticas y channelselector dinamico
Mensaje por super_berny » 15 Dic 2015, 20:34
Antes de nada queria recordaros una premisas q marco nuestro "Gran Lider Espiritual Jesus" (y no, no es el de nazaret)



Los canales han de incluir entre sus parametros/caracteristicas/json (a ver si le buscamos un nombre) "update_url", normalmente este sera: "https://raw.githubusercontent.com/tvala ... n-classic/...", pero se abre la posibilidad de fijar otros repositorios (Github o no, eso esta por decidir). Discutimos bastante sobre esto, ya que a mi me parecia un fallo grave de seguridad, pero me hizo ver q en algunos casos no hay mas remedio por temas de la LPI.
Yo distingia entre canales q se actualizan en el repositorio de Jesus (canales oficiales) y los q lo hacen desde otras fuentes (canales no oficiales) y daba la posibilidad de actualizar solo los oficiales (no quiero darle la llave de mi sistema a cualquiera), pero Jesus me dijo q seria un lio explicar al usuario medio esas diferencias y q debiamos tratar todos los canales por igual. Aqui si q me gustaria oir vuestra opinion.
Bueno, por lo demas voy poco a poco analizando el codigo y de momento solo he podido ver updater.py:
- Me encanta la linea 295: logger.info("Opciñon seleccionada: No Descargar")
Opciñon si alguna vez monto un negocio seguro q le pongo ese nombre
- Creacion de channels.json (¿no te gustaba list_channels.json?
): veo la estructura un poco lio, yo la simplificaria.
Código: Seleccionar todo
{ "count": 114, "date": 1450019790.0, "channels": { "animeflv": { "active": true, "adult": false, "category": [ "anime" ], "changes": "resueltos problemas utf, libreria requests, pep8 conventions, etc", "date": "24/10/2015", "fanart": "", "id": "animeflv", "include_in_global_search": true, "language": "es", "name": "Animeflv", "sha": "ebd51e52acc64ba5452c3af51344195210969814" "thumbnail": "", "update_url": "", "version": "3.0" }, "animeid": { "active": true, "adult": false, ...
- En el mismo punto, la asignacion de JSONIndex["date"] y JSONIndex["count"] mediante la creacion de listas por compresion queda muy chulo, pero volver a recorrer el listado de canales es innecesario:
Código: Seleccionar todo
Lineas 394 a 410: JSONIndex={"list":{}, "date":0, "count":0} for File in os.listdir(ChannelsPath): File = os.path.join(ChannelsPath,File) if File.endswith(".json"): FileData = open(File, 'rb').read() JSONFileData = {} JSONFileData["json"] = json.loads(FileData)["channel"] JSONFileData["sha"] = hashlib.sha1("blob " + str(len(FileData)) + "\0" + FileData).hexdigest() JSONIndex["list"][os.path.basename(File)[:-5]] = JSONFileData if os.path.getmtime(File) > JSONIndex["date"]: JSONIndex["date"] = os.path.getmtime(File) JSONIndex["count"] += 1 open(ChannelsIndex,"w").write(json.dumps(JSONIndex, indent=4, sort_keys=True)) return JSONIndex["list"]
- Lo anterior tb es aplicable a get_servers_list()
Objeto Item
Modulo tmdb
Mejorando nuestros canales
Github y Pelisalacarta
Tips Github y Pelisalacarta
Re: Actualizaciones automaticas y channelselector dinamico
Mensaje por divadr » 15 Dic 2015, 21:14
Hoy por hoy los json no contienen eseparametro... de todas formas yo no acavo de ver claro como gestionar un updater con varios repositorios con todos los canales juntos... pero seria cuestion de mirarlo...Los canales han de incluir entre sus parametros/caracteristicas/json (a ver si le buscamos un nombre) "update_url", normalmente este sera:"https://raw.githubusercontent.com/tvala ... n-classic/...", pero se abre la posibilidad de fijar otros repositorios (Github o no, eso esta por decidir). Discutimos bastante sobre esto, ya que a mi me parecia un fallo grave de seguridad, pero me hizo ver q en algunos casos no hay mas remedio por temas de la LPI.
Por otro lado nos es que no me guste el list_channels.json... solo es que no contiene la informacion q necesito... y necesito que se regenere cuando algun archivo se modifica.... la idea es juntarlo en uno solo.. la estructura no la veo tan liada...
Estoy seguro que es mejorable... y espero que entre todos aporemos ideas
-
- Mensajes: 801
- Registrado: 12 Jun 2014, 23:28
Re: Actualizaciones automaticas y channelselector dinamico
Mensaje por super_berny » 15 Dic 2015, 23:55
El parametro esta, lo q pasa es q cuando converti los xml en json fije como valor de "update_url" una cadena vacia para todos los canales.divadr escribió:Hoy por hoy los json no contienen eseparametro...
Me referia al nombre del fichero no a su contenidodivadr escribió:Por otro lado nos es que no me guste el list_channels.json... solo es que no contiene la informacion q necesito

Bueno, liada no es la mejor definicion. Pero coincidiras conmigo q no es lo mismo:divadr escribió: la estructura no la veo tan liada...
Código: Seleccionar todo
316 if "noupdate" in LocalJSONData[file["name"]]["json"]["channel"] and LocalJSONData[file["name"]]["json"]["channel"]["noupdate"] == True:
Código: Seleccionar todo
316 if "noupdate" in LocalJSONData[file["name"]] and LocalJSONData[file["name"]]["noupdate"] == True:
Objeto Item
Modulo tmdb
Mejorando nuestros canales
Github y Pelisalacarta
Tips Github y Pelisalacarta
Re: Actualizaciones automaticas y channelselector dinamico
Mensaje por divadr » 16 Dic 2015, 00:09
La estructura del índice es la siguiente:
tiene 3 claves principales:
date: contiene la fecha de modificación del archivo que sea mas alta
count: el numero de archivos
list: contiene la lista de canales
dentro de list hay dos claves:
sha: contiene el sha del canal
json: contiene el fichero json del canal tal y como esta con todos su niveles... aquí es donde se podría sustituir esto y poner directamente los parámetros leídos del json sin tantos niveles, desde luego es una opción, pero como tampoco se si los json se van a quedar como están o si se van a sustituir, pues de momento lo he cargado tal cual.
acabo de corregir ese punto, tienes toda la razón, no es necesario listar los directorios tantas veces.En el mismo punto, la asignacion de JSONIndex["date"] y JSONIndex["count"] mediante la creacion de listas por compresion queda muy chulo, pero volver a recorrer el listado de canales es innecesario:
Bueno, a eso me refiero, que no esta la url, de todos modos la update_url, cual seria? la del json, la del .py?El parametro esta, lo q pasa es q cuando converti los xml en json fije como valor de "update_url" una cadena vacia para todos los canales.
-
- Mensajes: 801
- Registrado: 12 Jun 2014, 23:28
Re: Actualizaciones automaticas y channelselector dinamico
Mensaje por super_berny » 16 Dic 2015, 00:38
En mi mensaje anterior te proponia incluir el sha y los parametros obtenidos del canal.json juntos bajo el nombre del canal y todos los canales bajo el indice list (q yo he llamado channels por concretar, pero q es igual), el indice settings del channel.json no es necesario copiarlo aqui. (es mas facil escribir el esquema q explicarlodivadr escribió:Bueno, si en ese sentido si que es un poco liado.
La estructura del índice es la siguiente:
tiene 3 claves principales:
date: contiene la fecha de modificación del archivo que sea mas alta
count: el numero de archivos
list: contiene la lista de canales
dentro de list hay dos claves:
sha: contiene el sha del canal
json: contiene el fichero json del canal tal y como esta con todos su niveles... aquí es donde se podría sustituir esto y poner directamente los parámetros leídos del json sin tantos niveles, desde luego es una opción, pero como tampoco se si los json se van a quedar como están o si se van a sustituir, pues de momento lo he cargado tal cual.

Yo tampoco se si los channel.json se van a quedar asi o no, pero creo q tal y como lo hemos planteado no limitamos q en un futuro se puedan añadir o modificar parametros.
Digamos q para los "oficiales" (ya se q esta definicion no gusta al jefedivadr escribió:Bueno, a eso me refiero, que no esta la url, de todos modos la update_url, cual seria? la del json, la del .py?

Otro tema, creo q no hemos interpretado igual el comentario de cmos:
Yo entiendo a q se refiere a un canal subido al github q no debe ser descargado con la version actual, ya q necesita la modificacion de alguna "libreria" q no sera distribuida hasta la proxima actualizacion del plugin. En este caso coincido con @seitan y con el propio @cmos q es necesario una rama "develop" en github para estas cosas y dejar master con el codigo funcional de la version distribuida.cmos escribió:Por cierto, creo que no se ha comentado por el hilo, pero me preguntaba si no se debería añadir algún campo en los json para que un canal se incluyera o no dentro de la actualización. Lo digo porque a veces se crea o modifica un canal o servidor que lleva consigo un cambio en una librería o la implementación de una nueva que no se añadiría hasta la siguiente versión por lo que el canal/servidor no sería funcional hasta entonces. Sé que no lo más común, pero puede darse el caso...
Por el contrario creo q tu lo has interpretado como poner un flag (o candado

PD: no me has dicho nada del nombre de mi futura empresa



Objeto Item
Modulo tmdb
Mejorando nuestros canales
Github y Pelisalacarta
Tips Github y Pelisalacarta
- 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: Ahrefs [Bot] y 12 invitados