Skip to content

Commit

Permalink
Allow RSS feed to be extended
Browse files Browse the repository at this point in the history
Allow RSS feed classes in webhelpers other than Atom1.
Allow additional values to be set on a feed item.
  • Loading branch information
martinburchell committed Apr 14, 2016
1 parent 691b3bf commit f5599ab
Showing 1 changed file with 14 additions and 5 deletions.
19 changes: 14 additions & 5 deletions ckan/controllers/feed.py
Expand Up @@ -352,10 +352,10 @@ def output_feed(self, results, feed_title, feed_description,
config.get('ckan.site_url', '').strip()

# TODO language
feed = _FixedAtom1Feed(
title=feed_title,
link=feed_link,
description=feed_description,
feed = self.create_feed(
feed_title,
feed_link,
feed_description,
language=u'en',
author_name=author_name,
author_link=author_link,
Expand All @@ -368,6 +368,8 @@ def output_feed(self, results, feed_title, feed_description,
)

for pkg in results:
extras = self.get_item_extras(pkg)

feed.add_item(
title=pkg.get('title', ''),
link=self.base_url + h.url_for(controller='package',
Expand All @@ -387,11 +389,18 @@ def output_feed(self, results, feed_title, feed_description,
id=pkg['name'],
ver='2'),
unicode(len(json.dumps(pkg))), # TODO fix this
u'application/json')
u'application/json'),
**extras
)
response.content_type = feed.mime_type
return feed.writeString('utf-8')

def create_feed(self, title, link, description, **kwargs):
return _FixedAtom1Feed(title, link, description, **kwargs)

def get_item_extras(self, pkg):
return {}

#### CLASS PRIVATE METHODS ####

def _feed_url(self, query, controller, action, **kwargs):
Expand Down

0 comments on commit f5599ab

Please sign in to comment.