forked from kodi-community-addons/script.skin.helper.service
/
service.py
60 lines (50 loc) · 2.41 KB
/
service.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#!/usr/bin/python
# -*- coding: utf-8 -*-
import resources.lib.Utils as utils
import resources.lib.MainModule as mainmodule
from resources.lib.BackgroundsUpdater import BackgroundsUpdater
from resources.lib.ListItemMonitor import ListItemMonitor
from resources.lib.KodiMonitor import Kodi_Monitor
from resources.lib.WebService import WebService
import xbmc, xbmcaddon
class Main:
lastSkin = ""
def checkSkinVersion(self):
try:
skin = xbmc.getSkinDir()
skinLabel = xbmcaddon.Addon(id=skin).getAddonInfo('name').decode("utf-8")
skinVersion = xbmcaddon.Addon(id=skin).getAddonInfo('version').decode("utf-8")
if self.lastSkin != skinLabel+skinVersion:
#auto correct skin settings
self.lastSkin = skinLabel+skinVersion
utils.WINDOW.setProperty("SkinHelper.skinTitle",skinLabel + " - " + xbmc.getLocalizedString(19114) + ": " + skinVersion)
utils.WINDOW.setProperty("SkinHelper.skinVersion",xbmc.getLocalizedString(19114) + ": " + skinVersion)
utils.WINDOW.setProperty("SkinHelper.Version",utils.ADDON_VERSION.replace(".",""))
mainmodule.correctSkinSettings()
except Exception as e:
utils.logMsg("Error in setSkinVersion --> " + str(e), 0)
def __init__(self):
utils.WINDOW.clearProperty("SkinHelperShutdownRequested")
KodiMonitor = Kodi_Monitor()
listItemMonitor = ListItemMonitor()
backgroundsUpdater = BackgroundsUpdater()
webService = WebService()
lastSkin = None
#start the extra threads
listItemMonitor.start()
backgroundsUpdater.start()
webService.start()
while not (KodiMonitor.abortRequested() or utils.WINDOW.getProperty("SkinHelperShutdownRequested")):
self.checkSkinVersion()
KodiMonitor.waitForAbort(10)
else:
# Abort was requested while waiting. We should exit
utils.WINDOW.setProperty("SkinHelperShutdownRequested","shutdown")
utils.logMsg('Shutdown requested !',0)
#stop the extra threads
backgroundsUpdater.stop()
listItemMonitor.stop()
webService.stop()
utils.logMsg('skin helper service version %s started' % utils.ADDON_VERSION,0)
Main()
utils.logMsg('skin helper service version %s stopped' % utils.ADDON_VERSION,0)