X-Git-Url: https://git.cweiske.de/enigma2-curlytx.git/blobdiff_plain/51b645f28c1b9f5e955db225c28b864370755d70..fa12cde5bac344847397a0b8210c7237a6be9e34:/src/CurlyTx.py diff --git a/src/CurlyTx.py b/src/CurlyTx.py index d85143b..5e58e72 100644 --- a/src/CurlyTx.py +++ b/src/CurlyTx.py @@ -1,4 +1,5 @@ from Screens.Screen import Screen +from Screens.HelpMenu import HelpableScreen from Screens.MessageBox import MessageBox from Components.Label import Label from Components.ScrollLabel import ScrollLabel @@ -9,7 +10,7 @@ from twisted.web import client from . import config from Components.config import config -class CurlyTx(Screen): +class CurlyTx(Screen,HelpableScreen): skin = """ @@ -24,10 +25,12 @@ class CurlyTx(Screen): """ currentUrl = None + currentPage = None def __init__(self, session, args = None): #self.skin = CurlyTx.skin Screen.__init__(self, session) + HelpableScreen.__init__(self) #self.skinName = [ "CurlyTx", "Setup" ] self["text"] = ScrollLabel("foo") @@ -38,17 +41,50 @@ class CurlyTx(Screen): self["key_blue"] = StaticText(_("Next")) - self["actions"] = NumberActionMap(["WizardActions", "ColorActions", "InputActions"], { - "ok": self.close, + self["actions"] = NumberActionMap( + ["WizardActions", "ColorActions", "InputActions", "HelpActions"], { + "ok": self.close, "back": self.close, - "up": self.pageUp, - "down": self.pageDown, + "up": self.pageUp, + "down": self.pageDown, - "red": self.showSettings, - "green": self.reload + "red": self.showSettings, + "green": self.reload, + "yellow": self.prevPage, + "blue": self.nextPage }, -1) - self.loadUrl("http://monitoring.home.cweiske.de/wetter/plain.txt") + self.loadHelp() + self.loadUrl(config.plugins.CurlyTx.defaultPage.value) + + def loadHelp(self): + self.helpList.append(( + self["actions"], "WizardActions", + [("up", _("Scroll page contents up"))])) + self.helpList.append(( + self["actions"], "WizardActions", + [("down", _("Scroll page contents down"))])) + self.helpList.append(( + self["actions"], "ColorActions", + [("red", _("Show program settings"))])) + self.helpList.append(( + self["actions"], "ColorActions", + [("green", _("Reload current page URL"))])) + self.helpList.append(( + self["actions"], "ColorActions", + [("yellow", _("Switch to next configured page URL"))])) + self.helpList.append(( + self["actions"], "ColorActions", + [("blue", _("Switch to previous configured page URL"))])) + self.helpList.append(( + self["actions"], "WizardActions", + [("ok", _("Close window"))])) + self.helpList.append(( + self["actions"], "WizardActions", + [("back", _("Close window"))])) + self.helpList.append(( + self["actions"], "HelpActions", + [("displayHelp", _("Show this help screen"))])) def pageUp(self): self["text"].pageUp() @@ -56,19 +92,50 @@ class CurlyTx(Screen): def pageDown(self): self["text"].pageDown() + def prevPage(self): + if self.currentPage == None: + return - def mycallback(self, answer): - print "answer:", answer - if answer: - raise Exception("test-crash") - self.close() + pageId = self.currentPage - 1 + if pageId < 0: + pageId = len(config.plugins.CurlyTx.pages) - 1 + self.loadUrl(pageId) + + def nextPage(self): + if self.currentPage == None: + return + + pageId = self.currentPage + 1 + if pageId > len(config.plugins.CurlyTx.pages) - 1: + pageId = 0 + self.loadUrl(pageId) def reload(self): - self.loadUrl(self.currentUrl) + if self.currentPage == None: + return + + self.loadUrl(self.currentPage) + + def loadUrl(self, pageId): + if pageId == None: + self.loadNoPage() + return + + pageId = int(pageId) + if pageId > (len(config.plugins.CurlyTx.pages) - 1): + if len(config.plugins.CurlyTx.pages) == 0: + self.loadNoPage() + else: + self["text"].setText("Invalid page " + pageId); + return + + url = config.plugins.CurlyTx.pages[pageId].uri.value + title = config.plugins.CurlyTx.pages[pageId].title.value + self.currentPage = pageId + self.currentUrl = url - def loadUrl(self, url): + self.setTitle(title) self["text"].setText("Loading ...\n" + url); - self.currentUrl = url client.getPage(url).addCallback(self.urlLoaded).addErrback(self.urlFailed, url) @@ -81,10 +148,17 @@ class CurlyTx(Screen): + "\n\nURL: " + url ) + def loadNoPage(self): + self["text"].setText("Go and add a page in the settings"); + def showSettings(self): - #self.session.openWithCallback(self.setConf ,Pic_Setup) from CurlyTxSettings import CurlyTxSettings self.session.openWithCallback(self.onSettingsChanged, CurlyTxSettings) def onSettingsChanged(self): - "fixme" + if len(config.plugins.CurlyTx.pages) == 0: + self.currentPage = None + self.loadUrl(self.currentPage) + elif self.currentPage == None: + self.currentPage = 0 + self.loadUrl(self.currentPage)