from enigma import * from Screens.Screen import Screen from Screens.MessageBox import MessageBox from Components.ActionMap import ActionMap from Components.Label import Label import os class Example(Screen): skin = """ """ def __init__(self, session): self.skin = Example.skin Screen.__init__(self, session) self["text"] = Label(_("Please press OK!")) self["actions"] = ActionMap(["WizardActions"], { "ok": self.go, "back": self.close }, -1) self.delayTimer = eTimer() self.delayTimer.timeout.get().append(self.doUpdateDelay) def go(self): self.session.openWithCallback(self.doUpdate, MessageBox, _("Do you want to update your Dreambox?\nAfter pressing OK, please wait!")) def doUpdateDelay(self): lines = os.popen("ipkg update && ipkg upgrade", "r").readlines() string = "" for x in lines: string += x self["text"].setText(_("Updating finished. Here is the result:") + "\n\n" + string) def doUpdate(self, val = False): if val == True: self["text"].setText(_("Updating... Please wait... This can take some minutes...")) self.delayTimer.start(0, 1) else: self.close() def main(session): session.open(Example) def getPicturePath(): return "/usr/lib/enigma2/python/Plugins/update.png" def getPluginName(): return "Softwareupdate"