Página 1 de 1
RESUELTO ¿Alguien con conocimientos de Python y Kodi puede ayudarme?
Publicado: 10 Ago 2017, 13:28
por hav
Hola, he adaptado un addon que circula por ahí para que arranque como un servicio y se repita cada 30 segundos. Mis conocimientos son muy limitados y, por ello, no he logrado que vuelve a ejecutarse transcurrido el tiempo indicado. Dejo el .py por si alguien quiere ayudarme:
https://mega.nz/#!j4VxUJIB!ONSwsOYWpEdL ... J2zHhVsws4
Gracias, un saludo.
Re: ¿Alguien con conocimientos de Python y Kodi puede ayudarme?
Publicado: 10 Ago 2017, 14:55
por Willyn
Diria que te falta una tabulacion ya que ese if deberia de estar dentro de la funcion set_all_enable, pruebalo a ver..
Código: Seleccionar todo
#!/usr/bin/python
# -*- coding: utf-8 -*-
import xbmc, xbmcgui, os
from sqlite3 import dbapi2 as db_lib
conn =db_lib.connect(os.path.join(xbmc.translatePath('special://profile/Database'),'Addons27.db'))
conn.text_factory = str
def get_kodi_version():
try:
return float(xbmc.getInfoLabel('System.BuildVersion').split('-')[0])
except:
return float(xbmc.getInfoLabel('System.BuildVersion').split('.')[0])
def check_updates():
xbmc.executebuiltin('XBMC.UpdateLocalAddons()')
xbmc.executebuiltin('XBMC.UpdateAddonRepos()')
def set_all_enable():
conn.executemany('update installed set enabled=1 WHERE addonID = (?)',((val,) for val in os.listdir(xbmc.translatePath(os.path.join('special://home','addons')))))
conn.commit()
if get_kodi_version() > 16.9 :
dp = xbmcgui.DialogProgress()
dp.create('¡Activando los add-ons!','Por favor, espere ...','')
dp.update(0)
check_updates()
xbmc.sleep(2000)
dp.update(30)
set_all_enable()
xbmc.sleep(2000)
dp.update(60)
check_updates()
xbmc.sleep(2000)
dp.update(100)
xbmc.sleep(2000)
dp.close()
if __name__ == '__main__':
monitor = xbmc.Monitor()
while not monitor.abortRequested():
# Sleep/wait for abort for 10 seconds ( media hora )
if monitor.waitForAbort(30):
# Abort was requested while waiting. We should exit
break
set_all_enable()
Re: ¿Alguien con conocimientos de Python y Kodi puede ayudarme?
Publicado: 10 Ago 2017, 15:38
por hav
Lo he modificado, pero la situación persiste, no vuelve a ejecutarse a los 30 segundos

Re: ¿Alguien con conocimientos de Python y Kodi puede ayudarme?
Publicado: 10 Ago 2017, 16:08
por Willyn
hav escribió: ↑10 Ago 2017, 15:38
Lo he modificado, pero la situación persiste, no vuelve a ejecutarse a los 30 segundos
Código: Seleccionar todo
#!/usr/bin/python
# -*- coding: utf-8 -*-
import xbmc, xbmcgui, os
from sqlite3 import dbapi2 as db_lib
conn =db_lib.connect(os.path.join(xbmc.translatePath('special://profile/Database'),'Addons27.db'))
conn.text_factory = str
def get_kodi_version():
try:
return float(xbmc.getInfoLabel('System.BuildVersion').split('-')[0])
except:
return float(xbmc.getInfoLabel('System.BuildVersion').split('.')[0])
def check_updates():
xbmc.executebuiltin('XBMC.UpdateLocalAddons()')
xbmc.executebuiltin('XBMC.UpdateAddonRepos()')
def set_all_enable():
conn.executemany('update installed set enabled=1 WHERE addonID = (?)',((val,) for val in os.listdir(xbmc.translatePath(os.path.join('special://home','addons')))))
conn.commit()
if get_kodi_version() > 16.9 :
dp = xbmcgui.DialogProgress()
dp.create('¡Activando los add-ons!','Por favor, espere ...','')
dp.update(0)
check_updates()
xbmc.sleep(2000)
dp.update(30)
xbmc.sleep(2000)
dp.close()
if __name__ == '__main__':
monitor = xbmc.Monitor()
while not monitor.abortRequested():
set_all_enable()
xbmc.sleep(30000)
y asi? voy un poco a ciegas porque no lo estoy probando y no se que hace monitor exactamente..
Dentro del if tenias que volviera a llamar a set_all_enable y esa recursividad no tenia mucho sentido
Re: ¿Alguien con conocimientos de Python y Kodi puede ayudarme?
Publicado: 10 Ago 2017, 17:09
por hav
Resuelto, el problema estaba en la tabulación del If cuando se llamaba a set_all_enable. He eliminado, de paso, todas las llamadas para que no muestre mensaje alguno, porque un cartelito cada 30 segundos...