From: Christian Weiske Date: Wed, 23 Nov 2011 17:09:24 +0000 (+0100) Subject: get page list feed import working properly X-Git-Tag: v1.0.0~36 X-Git-Url: https://git.cweiske.de/enigma2-curlytx.git/commitdiff_plain/501da75aa8febdf32b57f4ad6761fabcbd10b1dd get page list feed import working properly --- diff --git a/ChangeLog b/ChangeLog index b240dfd..7cd59a7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2011-11-23 Christian Weiske + + * Add page list import via Atom feed + 2011-11-21 Christian Weiske * hide color buttons when no/only one page configured diff --git a/README.rst b/README.rst index 463c816..2bb1713 100644 --- a/README.rst +++ b/README.rst @@ -10,7 +10,6 @@ Multiple URLs can be configured and navigated. Open issues =========== -- page import via atom feed/opml - move mode to re-order pages - how to show clock in lcd? - show headers when pressing info button diff --git a/src/AtomFeed.py b/src/AtomFeed.py index 07a6345..f89c22f 100644 --- a/src/AtomFeed.py +++ b/src/AtomFeed.py @@ -6,7 +6,11 @@ class AtomFeed: """ ns = "{http://www.w3.org/2005/Atom}" def __init__(self, url, callback): - getPage(url).addCallback(self.parse, callback) + getPage(url).addCallback(self.parse, callback).addErrback(self.fail) + + + def fail(self, msg): + print("CurlyTx", msg) def parse(self, data, callback): xml = fromstring(data) diff --git a/src/CurlyTxSettings.py b/src/CurlyTxSettings.py index bd6dc1c..23deb23 100644 --- a/src/CurlyTxSettings.py +++ b/src/CurlyTxSettings.py @@ -77,6 +77,9 @@ class CurlyTxSettings(ConfigListScreen, HelpableScreen, Screen): self.helpList.append(( self["actions"], "SetupActions", [("ok", _("Edit selected page"))])) + self.helpList.append(( + self["actions"], "SetupActions", + [("ok", _("Load pages from feed"))])) self.helpList.append(( self["actions"], "ColorActions", [("yellow", _("Add new page"))])) @@ -142,13 +145,17 @@ class CurlyTxSettings(ConfigListScreen, HelpableScreen, Screen): return del config.plugins.CurlyTx.pages[:] - config.plugins.CurlyTx.pages.save() - print("CurlyTx", len(config.plugins.CurlyTx.pages)) + for pageData in pages: page = createPage() - page.title.value = pageData["title"] - page.uri.value = pageData["url"] config.plugins.CurlyTx.pages.append(page) + page.title.setValue(pageData["title"]) + page.uri.setValue(pageData["url"]) + + #we cannot restore the old pages without enigma2 restart, so + # it's better to save here for a consistent user experience + config.plugins.CurlyTx.pages.save() + self["config"].setList(self.getConfigList()) def keySave(self):