# 2018.07.29 18:10:21 EAT #Embedded file name: /usr/lib/enigma2/python/Plugins/Extensions/SetClock/plugin.py 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, ConfigSubsection, ConfigDateTime, ConfigClock, ConfigText, getConfigListEntry import enigma from enigma import eTimer, iServiceInformation from datetime import datetime from os import system import gettext import time, httplib config.plugins.SetClock = ConfigSubsection() config.plugins.SetClock.HostName = ConfigText(default='ya.ru', fixed_size=False) ver = '1.1' def _(txt): t = gettext.gettext(txt) return t def Plugins(**kwargs): return [PluginDescriptor(name='SetClock', description='SetClock plug-in v.' + ver + ' (c)2011 by SatCat', where=PluginDescriptor.WHERE_PLUGINMENU, icon='set_clock.png', fnc=main), PluginDescriptor(name='SetClock', description='SetClock plug-in v.' + ver + '(c)2011 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): global session if reason == 0 and kwargs.has_key('session'): session = kwargs['session'] session.open(AutoCorrTime) class AutoCorrTime(Screen): skin = ' ' 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.callback.append(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() - 189391980 dtt = datetime.fromtimestamp(tc).strftime('%Y%m%d%H%M') enigma.eDVBLocalTimeHandler.getInstance().setUseDVBTime(False) try: system('/bin/date -s %s' % dtt) print '[SetClock] Set clock!' except: pass self.cursorTimer.stop() print '[SetClock] Stop timer.' self.limit = self.limit + 1 if self.limit > 1200: self.cursorTimer.stop() print '[SetClock] Stop timer (limit).' class SetClockMain(ConfigListScreen, Screen): skin = '\n\t\t\n\t\t\t\n\t\t\t \n\t\t\t\n\t\t\t \n\t\t\t\n\t\t\t \n\t\t\t\n\t\t' 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.list.append(getConfigListEntry('HTTP host:', config.plugins.SetClock.HostName)) self['key_green'] = Button(_('SET!')) self['key_blue'] = Button(_('HTTP SET')) self['key_red'] = Button(_('Cancel')) ConfigListScreen.__init__(self, self.list, session=session) self['setupActions'] = ActionMap(['SetupActions', 'ColorActions'], {'red': self.cancel, 'green': self.set, 'blue': self.inet_set, 'save': self.set, 'cancel': self.cancel, 'ok': self.pressed_ok}, -2) self['config'].list = self.list self['config'].l.setList(self.list) def pressed_ok(self): config.plugins.SetClock.HostName.save() self.set() 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: system('/bin/date -s %s' % dtt) except: pass self.close() print '[SetClock] SET! ** %s' % time.strftime('%X %x (%Y) %Z') def inet_set(self): config.plugins.SetClock.HostName.save() conn = httplib.HTTPConnection(config.plugins.SetClock.HostName.value) try: conn.request('HEAD', '/favicon.ico') t_rtt = time.clock() res_time = conn.getresponse().getheader('date') except: self.session.open(MessageBox, 'Error: No server responce: ' + config.plugins.SetClock.HostName.value, MessageBox.TYPE_ERROR, timeout=3) return t = time.localtime(time.mktime(time.strptime(res_time, '%a, %d %b %Y %H:%M:%S %Z')) - time.timezone) enigma.eDVBLocalTimeHandler.getInstance().setUseDVBTime(False) dtt = time.strftime('%Y%m%d%H%M.%S', t) try: system('/bin/date -s %s' % dtt) except: pass self.close() print '[SetClock] inet SET! ** %s' % time.strftime('%X %x (%Y) %Z') def cancel(self): self.close() # okay decompyling /tmp/plugin.pyo # decompiled 1 files: 1 okay, 0 failed, 0 verify failed # 2018.07.29 18:10:27 EAT