Reputation: 1428
Right now, I'm using PyRSS2Gen to generate an RSS document (resyndicating a modification of an rss feed that was parsed with feedparser), but I can't figure out how to add uncommon tags to the item.
items = [
PyRSS2Gen.RSSItem(
title = x.title,
link = x.link,
description = x.summary,
guid = x.link,
pubDate = datetime(
x.modified_parsed[0],
x.modified_parsed[1],
x.modified_parsed[2],
x.modified_parsed[3],
x.modified_parsed[4],
x.modified_parsed[5])
)
for x in parsed_feed.entries]
rss = PyRSS2Gen.RSS2(
title = "Resyndicator",
link = parsed_feed['feed'].get("link"),
description = "etc",
language = parsed_feed['feed'].get("language"),
copyright = parsed_feed['feed'].get("copyright"),
managingEditor = parsed_feed['feed'].get("managingEditor"),
webMaster = parsed_feed['feed'].get("webMaster"),
pubDate = parsed_feed['feed'].get("pubDate"),
lastBuildDate = parsed_feed['feed'].get("lastBuildDate"),
categories = parsed_feed['feed'].get("categories"),
generator = parsed_feed['feed'].get("generator"),
docs = parsed_feed['feed'].get("docs"),
items = items
)
The original feed has a <show_id></show_id>
tag, as well as an enclosure
<enclosure url="http://url.com" length="10" type="" />
and I need to include that in the generated version as well.
Upvotes: 1
Views: 1131
Reputation: 15335
There are two ways. First, you could change the code directly. Edit 'publish' and put whatever you want wherever you want it.
But if you want to take the suggestion from the documentation, derive from RSS2 and implement your own publish_extensions, like this:
class YourRSS2Item(PyRSS2Gen.RSSItem):
def publish_extensions(self, handler):
handler.startElement("show_id")
handler.endElement("show_id")
'handler' follows the SAX2 API (start_element, characters, end_element).
And as for making an enclosure, use the Enclosure class, as in
item = RSSItem( .... enclosure = Enclosure("http://url.com", 10, ""), ...)
Upvotes: 1
Reputation: 11833
To add your own attributes (needed for namespace declarations), redefine
element_attrs
orrss_attrs
in your subclass [ofRSS
andRSSData
].
That's the whole point about subclassing, isn't it? :)
Upvotes: 1