Version 1.0: Complete code- cleanup. New Feature "cheat- detection" for kids switchin...
[enigma2-plugins.git] / kiddytimer / src / plugin.py
1 from Components.ActionMap import ActionMap, NumberActionMap
2 from Components.config import config, ConfigInteger, ConfigSubsection, ConfigSelection, \
3     ConfigSubList, ConfigText, ConfigYesNo, ConfigDateTime, ConfigClock, ConfigPIN
4 from KTmain import kiddyTimer
5 from KTsetup import KiddyTimerSetup
6 from Plugins.Plugin import PluginDescriptor
7 from Screens.MessageBox import MessageBox
8 from __init__ import _
9 import KTglob
10 import time
11
12 config.plugins.KiddyTimer = ConfigSubsection()
13 config.plugins.KiddyTimer.enabled = ConfigYesNo(default=False)
14 config.plugins.KiddyTimer.position_x = ConfigInteger(default=590)
15 config.plugins.KiddyTimer.position_y = ConfigInteger(default=35)
16 config.plugins.KiddyTimer.timerStyle = ConfigSelection(choices = [("clock", _("Clock")), ("smiley", _("Smiley"))])
17 config.plugins.KiddyTimer.lastStartDay = ConfigText(default="")
18 config.plugins.KiddyTimer.lastStatus = ConfigText(default="") # Used for cheat detection
19 config.plugins.KiddyTimer.monitorStartTime = ConfigClock(default=KTglob.FOUROCLOCK)
20 config.plugins.KiddyTimer.monitorEndTime = ConfigClock(default=KTglob.EIGHTOCLOCKNOON)
21 config.plugins.KiddyTimer.activationDialogTimeout = ConfigInteger(default=10)
22 config.plugins.KiddyTimer.pin = ConfigPIN(default = 1111 , censor = "*")
23 config.plugins.KiddyTimer.remainingTime = ConfigInteger(default=int(KTglob.ONEHOUR), limits = (0,86400) )
24
25 config.plugins.KiddyTimer.dayTimes = ConfigSubList()
26 for i in range(0, 7):
27     s = ConfigSubsection()
28     s.timeValue = ConfigClock(default=KTglob.ONEOCLOCK)
29     config.plugins.KiddyTimer.dayTimes.append(s)
30     del s
31
32 def setup(session, **kwargs):
33     session.open(KiddyTimerSetup)
34
35 def sessionstart(reason, **kwargs):
36     if reason == 0:
37         kiddyTimer.gotSession(kwargs["session"])
38
39 def autostart(reason, **kwargs):
40     if reason == 1:
41         global kiddyTimer
42         kiddyTimer.stopTimer()
43         kiddyTimer = None
44
45 def extensionMenu(session, **kwargs):
46     kiddyTimer.showExtensionsMenu()
47         
48 def Plugins(path,**kwargs):
49     # Assign global variable plugin_path
50     KTglob.plugin_path = path
51     return [
52             PluginDescriptor(where=PluginDescriptor.WHERE_SESSIONSTART, fnc=sessionstart),
53             PluginDescriptor(where=PluginDescriptor.WHERE_AUTOSTART, fnc=autostart),
54             PluginDescriptor(name=_("KiddyTimer"), where=PluginDescriptor.WHERE_EXTENSIONSMENU, fnc=extensionMenu),
55             PluginDescriptor(name=_("KiddyTimer"), description=_("Allows to controls your kids' daily TV usage"), icon = "KiddyTimer.png", where = PluginDescriptor.WHERE_PLUGINMENU, fnc=setup)]
56