Support older dreamboxes (e.g. 7025+) that don't have a recent elementtree library.
[enigma2-curlytx.git] / src / AtomFeed.py
index 51da7f8249cd352fec76aba95b91b69e620c7758..f99d10526aa12dede451796252620fda2a603ef8 100644 (file)
@@ -4,13 +4,14 @@
 # License: GPLv3 or later
 
 from twisted.web.client import getPage
-from xml.etree.cElementTree import fromstring, ParseError
+from xml.etree.cElementTree import fromstring
 
 import os
 
 class AtomFeed:
     """ Simple XML parser that extracts pages from a atom feed """
     ns = "{http://www.w3.org/2005/Atom}"
+    nsc = "{http://ns.cweiske.de/curlytx}"
     errorCallback = None
 
     def __init__(self, url, callback, errorCallback):
@@ -34,7 +35,7 @@ class AtomFeed:
         """ Parse atom feed data into pages list and run callback """
         try:
             xml = fromstring(data)
-        except ParseError:
+        except Exception:
             return self.errorCallback("Invalid XML")
 
         pages = []
@@ -44,7 +45,12 @@ class AtomFeed:
             if titleE != None and titleE.text != "" and url != None:
                 pages.append({"title": titleE.text, "url": url})
 
-        callback(pages)
+        settings = dict()
+        for entry in list(xml):
+            if (entry.tag.startswith(self.nsc)):
+                settings[entry.tag[len(self.nsc):]] = entry.text
+
+        callback(pages, settings)
 
     def bestLink(self, list):
         """ Fetch the best matching link from an atom feed entry """