update plugin is now very user friendly :)
[enigma2.git] / lib / python / Plugins / update.py
1 from enigma import *
2 from Screens.Screen import Screen
3 from Screens.MessageBox import MessageBox
4 from Components.ActionMap import ActionMap
5 from Components.Label import Label
6
7 import os
8
9 class Example(Screen):
10         skin = """
11                 <screen position="100,100" size="550,400" title="IPKG upgrade..." >
12                         <widget name="text" position="0,0" size="550,400" font="Regular;15" />
13                 </screen>"""
14                 
15         def __init__(self, session):
16                 self.skin = Example.skin
17                 Screen.__init__(self, session)
18
19                 self["text"] = Label(_("Please press OK!"))
20                                 
21                 self["actions"] = ActionMap(["WizardActions"], 
22                 {
23                         "ok": self.go,
24                         "back": self.close
25                 }, -1)
26                 
27                 self.delayTimer = eTimer()
28                 self.delayTimer.timeout.get().append(self.doUpdateDelay)
29                 
30         def go(self):
31                 self.session.openWithCallback(self.doUpdate, MessageBox, _("Do you want to update your Dreambox?\nAfter pressing OK, please wait!"))            
32         
33         def doUpdateDelay(self):
34                 lines = os.popen("ipkg update && ipkg upgrade", "r").readlines()
35                 string = ""
36                 for x in lines:
37                         string += x
38                 self["text"].setText(_("Updating finished. Here is the result:") + "\n\n" + string)
39                         
40         
41         def doUpdate(self, val = False):
42                 if val == True:
43                         self["text"].setText(_("Updating... Please wait... This can take some minutes..."))
44                         self.delayTimer.start(0, 1)
45                 else:
46                         self.close()            
47                 
48                 
49 def main(session):
50         session.open(Example)
51         
52
53 def getPicturePath():
54                 return "/usr/lib/enigma2/python/Plugins/update.png"
55
56 def getPluginName():
57                 return "Softwareupdate"