Adding an Atom RSS feed for all media on the server
Go to /atom/ in your browser to see it.
This commit is contained in:
parent
cde7a07d5e
commit
b624ca0f8b
@ -19,5 +19,10 @@ from mediagoblin.tools.routing import add_route
|
|||||||
add_route('mediagoblin.listings.tags_listing',
|
add_route('mediagoblin.listings.tags_listing',
|
||||||
"/tag/<string:tag>/",
|
"/tag/<string:tag>/",
|
||||||
"mediagoblin.listings.views:tag_listing")
|
"mediagoblin.listings.views:tag_listing")
|
||||||
|
|
||||||
|
# Atom feeds:
|
||||||
add_route('mediagoblin.listings.tag_atom_feed', "/tag/<string:tag>/atom/",
|
add_route('mediagoblin.listings.tag_atom_feed', "/tag/<string:tag>/atom/",
|
||||||
"mediagoblin.listings.views:tag_atom_feed")
|
"mediagoblin.listings.views:tag_atom_feed")
|
||||||
|
# The all new entries feed
|
||||||
|
add_route('mediagoblin.listings.atom_feed', '/atom/',
|
||||||
|
"mediagoblin.listings.views:tag_atom_feed")
|
||||||
|
@ -68,22 +68,26 @@ def tag_atom_feed(request):
|
|||||||
"""
|
"""
|
||||||
generates the atom feed with the tag images
|
generates the atom feed with the tag images
|
||||||
"""
|
"""
|
||||||
tag_slug = request.matchdict[u'tag']
|
tag_slug = request.matchdict.get(u'tag')
|
||||||
|
feed_title = "MediaGoblin Feed"
|
||||||
|
if tag_slug:
|
||||||
cursor = media_entries_for_tag_slug(request.db, tag_slug)
|
cursor = media_entries_for_tag_slug(request.db, tag_slug)
|
||||||
|
link = request.urlgen('mediagoblin.listings.tags_listing',
|
||||||
|
qualified=True, tag=tag_slug )
|
||||||
|
feed_title += "for tag '%s'" % tag_slug,
|
||||||
|
else: # all recent item feed
|
||||||
|
cursor = MediaEntry.query.filter_by(state=u'processed')
|
||||||
|
link = request.urlgen('index', qualified=True)
|
||||||
|
feed_title += "for all recent items"
|
||||||
|
|
||||||
cursor = cursor.order_by(MediaEntry.created.desc())
|
cursor = cursor.order_by(MediaEntry.created.desc())
|
||||||
cursor = cursor.limit(ATOM_DEFAULT_NR_OF_UPDATED_ITEMS)
|
cursor = cursor.limit(ATOM_DEFAULT_NR_OF_UPDATED_ITEMS)
|
||||||
|
|
||||||
"""
|
|
||||||
ATOM feed id is a tag URI (see http://en.wikipedia.org/wiki/Tag_URI)
|
|
||||||
"""
|
|
||||||
feed = AtomFeed(
|
feed = AtomFeed(
|
||||||
"MediaGoblin: Feed for tag '%s'" % tag_slug,
|
feed_title,
|
||||||
feed_url=request.url,
|
feed_url=request.url,
|
||||||
id='tag:'+request.host+',2011:gallery.tag-%s' % tag_slug,
|
id=link,
|
||||||
links=[{'href': request.urlgen(
|
links=[{'href': link,
|
||||||
'mediagoblin.listings.tags_listing',
|
|
||||||
qualified=True, tag=tag_slug ),
|
|
||||||
'rel': 'alternate',
|
'rel': 'alternate',
|
||||||
'type': 'text/html'}])
|
'type': 'text/html'}])
|
||||||
for entry in cursor:
|
for entry in cursor:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user