get page list feed import working properly
authorChristian Weiske <cweiske@cweiske.de>
Wed, 23 Nov 2011 17:09:24 +0000 (18:09 +0100)
committerChristian Weiske <cweiske@cweiske.de>
Wed, 23 Nov 2011 17:09:24 +0000 (18:09 +0100)
ChangeLog
README.rst
src/AtomFeed.py
src/CurlyTxSettings.py

index b240dfd..7cd59a7 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2011-11-23  Christian Weiske  <cweiske@bogo>
+
+       * Add page list import via Atom feed
+
 2011-11-21  Christian Weiske  <cweiske@cweiske.de>
 
        * hide color buttons when no/only one page configured
index 463c816..2bb1713 100644 (file)
@@ -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
index 07a6345..f89c22f 100644 (file)
@@ -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)
index bd6dc1c..23deb23 100644 (file)
@@ -78,6 +78,9 @@ class CurlyTxSettings(ConfigListScreen, HelpableScreen, Screen):
                 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"))]))
         self.helpList.append((
@@ -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):