Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #
- 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()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement