# HG changeset patch # User paulo # Date 1434085414 25200 # Node ID ae0f2f438a95977c9cfd455ed56e80ad45f77e51 # Parent 66a232bae83c3b1a1d907cb036ff0a71f57a253c myrss: add support for new "purl" RSS type diff -r 66a232bae83c -r ae0f2f438a95 myrss/myrss_app.py --- a/myrss/myrss_app.py Thu Jun 11 21:25:03 2015 -0700 +++ b/myrss/myrss_app.py Thu Jun 11 22:03:34 2015 -0700 @@ -87,6 +87,23 @@ return (title, link, items) +def _go_purl_rss(elementTree): + ns = "http://purl.org/rss/1.0/" + + title = _strip_if_not_none(elementTree.find("{%s}channel/{%s}title" % (ns, ns)).text) + link = elementTree.find("{%s}channel/{%s}link" % (ns, ns)).text + + items = [] + + for i in elementTree.findall("{%s}item" % ns)[:MAX_ITEMS]: + it_title = _strip_if_not_none(i.find("{%s}title" % ns).text) + it_link = i.find("{%s}link" % ns).text + + items.append((it_title, it_link)) + + return (title, link, items) + + _STRIP_HTML_RE = re.compile(r"<.*?>") _htmlParser = HTMLParser.HTMLParser() @@ -159,6 +176,8 @@ raise NotImplementedError("Unsupported rss version") elif parsed_root_tag == ("http://www.w3.org/2005/Atom", "feed"): ret = _go_atom(elementTree) + elif parsed_root_tag == ("http://www.w3.org/1999/02/22-rdf-syntax-ns#", "RDF"): + ret = _go_purl_rss(elementTree) else: raise NotImplementedError("Unknown root tag")