# 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):
""" Parse atom feed data into pages list and run callback """
try:
xml = fromstring(data)
- except ParseError:
+ except Exception:
return self.errorCallback("Invalid XML")
pages = []
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 """