Página 1 de 3
SoD: Sistema di aggiornamento automatico
Publicado: 01 Sep 2015, 14:45
por zanzibar1982
Edito questo thread nella speranza di ridargli una qualche utilità.
I'm editing this thread in the hope it may come helpful somehow.
User Chryses had a good idea for update system using github.
I am opening this for his idea, that seem valid for me. This works
on openelec, I wonder if there is a chance to port this to the .bat file
I am using in win7 autostart, to kill explorer.exe and start kodi fullscreen.
Ok, I don't know if it works for you, on OpenElec I can enable the cron daemon, I don't know on your system if you can do it or how to enable cron. And one last thing, maybe you have to edit some path file.
This's the file that you need
https://dl.dropboxusercontent.com/u/266 ... tostart.sh
https://dl.dropboxusercontent.com/u/266 ... n-channels
So now:
1. Copy the pelisalacarta-italian-channels file on /storage/pelisalacarta-italian-channels (if you change this path, you need to change the path on cronjob and on autostart.sh)
2. Copy autostart.sh on /storage/.config/autostart.sh
3. Add a cronjob
crontab -e
30 * * * * /bin/sh /storage/pelisalacarta-italian-channels
REMEMBER, IF YOU CHANGE THE PATH OF THE FILE YOU MUST TO CHANGE THE PATH ON THE CRONJOB TOO AND ALSO ON THE AUTORUN.SH FILE
4. Make executable the pelisalacarta-italian-channels file
chmod +x /storage/pelisalacarta-italian-channels
5. Reboot your system
Done
Let me know.
Note, you someone is able to program with python this can be converted on a script addon and this mean that will works on every system
Chryses
Re: Update System development by Chryses user
Publicado: 01 Sep 2015, 17:20
por super_berny
¿Cual es realmente tu problema con las actualizaciones? ¿Que deseas actualizar los canales o el plugin?
Re: Update System development by Chryses user
Publicado: 02 Sep 2015, 00:45
por zanzibar1982
Hola super_berny
This works on openelec, I guess
it updates the entire plugin
(So both channels and servers)
I wonder if it os possible doing the same with
Windows.
Re: Update System development by Chryses user
Publicado: 02 Sep 2015, 05:09
por Chryses
I'm working on it
Re: Update System development by Chryses user
Publicado: 02 Sep 2015, 08:13
por super_berny
ok, ya lo entiendo.
Aprovechas el autostar para comprobar si el fichero master.zip de github ha cambiado y en ese caso actualizar todo el plugin.
Personalmente creo que debe ser el propio plugin el que compruebe si hay actualizaciones. Puedes ver mi propuesta (basada en la version 3.9) para actualizar canales desde mi
github.
Ver:
- channelselector.py
- platformcode/xbmc/launcher.py
- core/updater.py
La parte de actualizacion del plugin (servers incluidos) no esta implementada aun, pero la idea es similar. Pare el desarrollo esperando a la version oficial 4.0 y a ver como Jesus portaba a github el desarrollo multiplataforma.
Re: Update System development by Chryses user
Publicado: 02 Sep 2015, 08:57
por robalo
Si, eso es lo que parece que intentan hacer pero confunde porque es algo que existe en el plugin y da la sensación de que se intenta crear un script de sincronización.
Actulamente para los conales, en la versión 4.0.3, bastaría con descomentar el bloque que se encarga de llamar updatechannel del launcher y en get_channel_remote_url del updater cambiar remote_channel_url con la ruta + channel_name + extensión. También si se quiere, comprobar si la versión del canal está en <tag>n</tag> o <version>n</version>. Sólo con eso ya debería funcionar, a mi me ha funcionado.
Re: Update System development by Chryses user
Publicado: 05 Sep 2015, 15:09
por zanzibar1982
robalo escribió:También si se quiere, comprobar si la versión del canal está en <tag>n</tag> o <version>n</version>.
I am trying your way of updating channels.
The add-on repository I am trying to update to is here
https://github.com/Zanzibar82/plugin.vi ... a-italiano
The channel in update test I am using is altadefinizione01
What I did on my machine to test / understand how updates works:
1)Uncommented the line in launcher.py
Código: Seleccionar todo
if config.get_setting("updatechannels")=="true":
try:
from core import updater
actualizado = updater.updatechannel("channelselector")
if actualizado:
import xbmcgui
advertencia = xbmcgui.Dialog()
advertencia.ok("tvalacarta",config.get_localized_string(30064))
except:
pass
Please note that in config.py I have just:
Código: Seleccionar todo
def get_setting(name):
return __settings__.getSetting( name )
and I don't know if it's returning "true"
2) Modified updater.py as follows:
Código: Seleccionar todo
def get_channel_remote_url(channel_name):
for channel_name<>"channelselector":
remote_channel_url = "https://raw.githubusercontent.com/Zanzibar82/plugin.video.pelisalacarta-italiano/master/channels/"+config.PLUGIN_NAME+"/"+channel_name+".py"
remote_version_url = "https://raw.githubusercontent.com/Zanzibar82/plugin.video.pelisalacarta-italiano/master/channels/"+config.PLUGIN_NAME+"/"+channel_name+".xml"
else:
remote_channel_url = "https://raw.githubusercontent.com/Zanzibar82/plugin.video.pelisalacarta-italiano/master/channels/"+config.PLUGIN_NAME+"/"+channel_name+".py"
remote_version_url = "https://raw.githubusercontent.com/Zanzibar82/plugin.video.pelisalacarta-italiano/master/channels/"+config.PLUGIN_NAME+"/"+channel_name+".xml"
logger.info("pelisalacarta.core.updater remote_channel_url="+remote_channel_url)
logger.info("pelisalacarta.core.updater remote_version_url="+remote_version_url)
return remote_channel_url , remote_version_url
3) On my machine "version" in xml is set to 1, date 28/08/2015, while on github repo altadefinizione01.xml
is set to version 2, date 05/09/2015.
4) I enabled all updates options in plugin configuration
...but nothing happens. Can you please explain me what I am doing wrong?
Re: Update System development by Chryses user
Publicado: 05 Sep 2015, 19:09
por robalo
Ok. Ya veo con más claridad tu intención.
Quieres que a los usuarios se le actualice los canales que se modifiquen y que también se le instale los nuevos canales añadidos a la lista de canales del channelselector.
En
updater.py prueba cambiar la función
get_channel_remote_url con el siguiente contenido cambiando
_remote_channel_url_ con la dirección de tu repositorio:
Código: Seleccionar todo
def get_channel_remote_url(channel_name):
_remote_channel_url_ = "https://raw.githubusercontent.com/tvalacarta/pelisalacarta/master/python/main-classic/"
if channel_name <> "channelselector":
_remote_channel_url_+= "channels/"
remote_channel_url = _remote_channel_url_+channel_name+".py"
remote_version_url = _remote_channel_url_+channel_name+".xml"
logger.info("pelisalacarta.core.updater remote_channel_url="+remote_channel_url)
logger.info("pelisalacarta.core.updater remote_version_url="+remote_version_url)
return remote_channel_url , remote_version_url
También modifica en la función
updatechannel del archivo
updater.py las dos líneas que cargan la variable
patronvideos si quieres que compruebe las versiones de los canales tanto con la etiqueta
<tag> como con la etiqueta
<version>:
Código: Seleccionar todo
if "<tag>" in data: patronvideos = '<tag>([^<]+)</tag>'
elif "<version>" in data: patronvideos = '<version>([^<]+)</version>'
En el archivo
launcher.py además de descomentar el bloque que actualiza el
channelselector (el bloque que has posteado, líneas: 33-45) También tienes que descomentar el bloque que actualiza los canales (líneas: 78-90).
Con estas modificaciones si se modifica el channelselector.py y se incrementa el valor de la etiqueta <tag> o <versión> en channelselector.xml, al entrar al plugin se actualizará la lista de canales.
Cuando el usuario intente entrar a un canal que está en la lista de canales pero no está en su carpeta channels, se instalarán los archivos channel.py y channel.xml. Si el archivo existe en su carpeta channels y el archivo es una versión anterior se actualizara con los dos nuevos archivos.
Creo que no hace falta decir que la pareja de archivos deben de existir en el repositorio.
Re: Update System development by Chryses user
Publicado: 06 Sep 2015, 11:32
por zanzibar1982
robalo escribió:Ok. Ya veo con más claridad tu intención.
Quieres que a los usuarios se le actualice los canales que se modifiquen y que también se le instale los nuevos canales añadidos a la lista de canales del channelselector.
En
updater.py prueba cambiar la función
get_channel_remote_url con el siguiente contenido cambiando
_remote_channel_url_ con la dirección de tu repositorio:
Código: Seleccionar todo
def get_channel_remote_url(channel_name):
_remote_channel_url_ = "https://raw.githubusercontent.com/tvalacarta/pelisalacarta/master/python/main-classic/"
if channel_name <> "channelselector":
_remote_channel_url_+= "channels/"
remote_channel_url = _remote_channel_url_+channel_name+".py"
remote_version_url = _remote_channel_url_+channel_name+".xml"
logger.info("pelisalacarta.core.updater remote_channel_url="+remote_channel_url)
logger.info("pelisalacarta.core.updater remote_version_url="+remote_version_url)
return remote_channel_url , remote_version_url
También modifica en la función
updatechannel del archivo
updater.py las dos líneas que cargan la variable
patronvideos si quieres que compruebe las versiones de los canales tanto con la etiqueta
<tag> como con la etiqueta
<version>:
Código: Seleccionar todo
if "<tag>" in data: patronvideos = '<tag>([^<]+)</tag>'
elif "<version>" in data: patronvideos = '<version>([^<]+)</version>'
En el archivo
launcher.py además de descomentar el bloque que actualiza el
channelselector (el bloque que has posteado, líneas: 33-45) También tienes que descomentar el bloque que actualiza los canales (líneas: 78-90).
Con estas modificaciones si se modifica el channelselector.py y se incrementa el valor de la etiqueta <tag> o <versión> en channelselector.xml, al entrar al plugin se actualizará la lista de canales.
Cuando el usuario intente entrar a un canal que está en la lista de canales pero no está en su carpeta channels, se instalarán los archivos channel.py y channel.xml. Si el archivo existe en su carpeta channels y el archivo es una versión anterior se actualizara con los dos nuevos archivos.
Creo que no hace falta decir que la pareja de archivos deben de existir en el repositorio.
Thank you a million times, robalo! This is PERFECT.
Re: Update System development by Chryses user
Publicado: 06 Sep 2015, 16:22
por zanzibar1982
Could this be applied to servers too, robalo?