# from Plugins.Plugin import PluginDescriptor from Screens.Screen import Screen from Screens.MessageBox import MessageBox from Components.Button import Button from Components.ActionMap import ActionMap from Components.ConfigList import ConfigListScreen from Components.config import config, ConfigDateTime, ConfigClock, getConfigListEntry import enigma from enigma import eTimer, iServiceInformation from datetime import datetime import gettext import os import time import sys def _(txt): t = gettext.gettext(txt) return t def Plugins(**kwargs): return [PluginDescriptor(name='SetClock', description='SetClock plug-in (c)2009 by SatCat', where=PluginDescriptor.WHERE_PLUGINMENU, icon='plugin.png', fnc=main), PluginDescriptor(name='SetClock', description='SetClock plug-in (c)2009 by SatCat', where=[PluginDescriptor.WHERE_SESSIONSTART, PluginDescriptor.WHERE_AUTOSTART], fnc=autostart)] def main(session, servicereference = None, **kwargs): try: session.open(SetClockMain) except: print '[SetClock] Pluginexecution failed' def autostart(reason, **kwargs): pass class AutoCorrTime(Screen): skin = '<screen position="100,100" size="280,300" title="SetClock" > </screen>' def __init__(self, session): Screen.__init__(self, session) self.session = session if time.localtime().tm_year == 2000: self.limit = 0 self.cursorTimer = eTimer() self.cursorTimer_conn = self.cursorTimer.timeout.connect(self.timer) self.cursorTimer.start(75, False) def timer(self): if time.localtime().tm_year > 2000: refstr = dtt = 'n/a' try: service = self.session.nav.getCurrentService() if service: info = service.info() if info: refstr = info.getInfoString(iServiceInformation.sServiceref) except: refstr = 'ref error' if refstr == '1:0:1:1:65:64:3840000:0:0:0:': tc = time.time() - 13882 dtt = datetime.fromtimestamp(tc).strftime('%Y%m%d%H%M') enigma.eDVBLocalTimeHandler.getInstance().setUseDVBTime(False) try: os.system('/bin/date -s %s' % dtt) except: pass self.cursorTimer.stop() self.limit = self.limit + 1 if self.limit > 800: self.cursorTimer.stop() class SetClockMain(ConfigListScreen, Screen): skin = '\n\t\t<screen position="center,250" size="280,150" title="SetClock Menu" >\n\t\t\t<widget name="config" position="10,10" size="260,100" scrollbarMode="showOnDemand" />\n\t\t\t<widget name="key_green" \tposition="0,110" \tsize="140,40" valign="center" halign="center" zPosition="4" foregroundColor="white" font="Regular;18" transparent="1"/> \n\t\t\t<ePixmap name="green" \t\tposition="0,110" \tsize="140,40" zPosition="2" pixmap="skin_default/buttons/green.png" transparent="1" alphatest="on" />\n\t\t\t<widget name="key_red" \t\tposition="140,110" \tsize="140,40" valign="center" halign="center" zPosition="4" foregroundColor="white" font="Regular;18" transparent="1"/> \n\t\t\t<ePixmap name="red" \t\tposition="140,110" \tsize="140,40" zPosition="2" pixmap="skin_default/buttons/red.png" transparent="1" alphatest="on" />\n\t\t</screen>' def __init__(self, session, args = 0): self.skin = SetClockMain.skin self.session = session Screen.__init__(self, session) self.list = [] self.date_en = ConfigDateTime(default=time.time(), formatstring='%d.%m.%Y') self.entryDate = getConfigListEntry(_('Date'), self.date_en) self.time_en = ConfigClock(default=time.time()) self.entryTime = getConfigListEntry(_('Time'), self.time_en) self.list.append(self.entryDate) self.list.append(self.entryTime) self['key_red'] = Button(_('Cancel')) self['key_green'] = Button(_('SET!')) ConfigListScreen.__init__(self, self.list, session=session) self['setupActions'] = ActionMap(['SetupActions', 'ColorActions'], {'red': self.cancel, 'green': self.set, 'save': self.set, 'cancel': self.cancel, 'ok': self.set}, -2) self['config'].list = self.list def set(self, dtt = 0): d = time.localtime(self.date_en.value) dtt = '%d%02d%02d%02d%02d' % (d.tm_year, d.tm_mon, d.tm_mday, self.time_en.value[0], self.time_en.value[1]) enigma.eDVBLocalTimeHandler.getInstance().setUseDVBTime(False) try: os.system('/bin/date -s %s' % dtt) except: pass self.close() print '[SetClock] SET! ** %s' % time.strftime('%X %x (%Y) %Z') def cancel(self): self.close() |