e5d02f099ca984ec62c1dd5024d5e343db7ae9ee
[enigma2-curlytx.git] / src / CurlyTx.py
1 from Screens.Screen import Screen
2 from Screens.MessageBox import MessageBox
3 from Components.Label import Label
4 from Components.ScrollLabel import ScrollLabel
5 from Components.ActionMap import NumberActionMap
6 from twisted.web import client
7
8 class CurlyTx(Screen):
9     skin = """
10         <screen position="100,100" size="550,400" title="CurlyTx" >
11             <widget name="text" position="0,0" size="550,400" font="Console;20" />
12         </screen>"""
13
14     def __init__(self, session, args = None):
15         self.skin = CurlyTx.skin
16         Screen.__init__(self, session)
17
18         self["text"] = ScrollLabel("foo")
19
20         self["actions"] = NumberActionMap(["WizardActions", "InputActions"], {
21                 "ok": self.close,
22                 "back": self.close,
23                 "up": self.pageUp,
24                 "down": self.pageDown
25             }, -1)
26
27         self.loadUrl("http://monitoring.home.cweiske.de/wetter/plain.txt")
28
29     def pageUp(self):
30         self["text"].pageUp()
31
32     def pageDown(self):
33         self["text"].pageDown()
34
35
36     def mycallback(self, answer):
37         print "answer:", answer
38         if answer:
39             raise Exception("test-crash")
40         self.close()
41
42     def loadUrl(self, url):
43         self["text"].setText("Loading ...\n" + url);
44
45         client.getPage(url).addCallback(self.urlLoaded).addErrback(self.urlFailed, url)
46
47     def urlLoaded(self, html):
48         self["text"].setText(html)
49
50     def urlFailed(self, error, url):
51         self["text"].setText(
52             "Error fetching URL:\n " + error.getErrorMessage()
53             + "\n\nURL: " + url
54             )