aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mediagoblin/listings/routing.py5
-rw-r--r--mediagoblin/listings/views.py24
2 files changed, 19 insertions, 10 deletions
diff --git a/mediagoblin/listings/routing.py b/mediagoblin/listings/routing.py
index e5683168..f762c6be 100644
--- a/mediagoblin/listings/routing.py
+++ b/mediagoblin/listings/routing.py
@@ -19,5 +19,10 @@ from mediagoblin.tools.routing import add_route
add_route('mediagoblin.listings.tags_listing',
"/tag/<string:tag>/",
"mediagoblin.listings.views:tag_listing")
+
+# Atom feeds:
add_route('mediagoblin.listings.tag_atom_feed', "/tag/<string:tag>/atom/",
"mediagoblin.listings.views:tag_atom_feed")
+# The all new entries feed
+add_route('mediagoblin.listings.atom_feed', '/atom/',
+ "mediagoblin.listings.views:tag_atom_feed")
diff --git a/mediagoblin/listings/views.py b/mediagoblin/listings/views.py
index d37161fc..a09aa24d 100644
--- a/mediagoblin/listings/views.py
+++ b/mediagoblin/listings/views.py
@@ -68,22 +68,26 @@ def tag_atom_feed(request):
"""
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)
+ 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 = media_entries_for_tag_slug(request.db, tag_slug)
cursor = cursor.order_by(MediaEntry.created.desc())
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(
- "MediaGoblin: Feed for tag '%s'" % tag_slug,
+ feed_title,
feed_url=request.url,
- id='tag:'+request.host+',2011:gallery.tag-%s' % tag_slug,
- links=[{'href': request.urlgen(
- 'mediagoblin.listings.tags_listing',
- qualified=True, tag=tag_slug ),
+ id=link,
+ links=[{'href': link,
'rel': 'alternate',
'type': 'text/html'}])
for entry in cursor: