modified atomfeed feature, corrected spacing, url generation, routing id

This commit is contained in:
Bernhard Keller
2011-05-23 19:00:46 +02:00
parent f4cfb4e9c8
commit 00c3925614
4 changed files with 50 additions and 1 deletions

View File

@@ -21,4 +21,6 @@ user_routes = [
controller="mediagoblin.user_pages.views:user_home"),
Route('mediagoblin.user_pages.media_home', '/{user}/m/{media}/',
requirements=dict(m_id="[0-9a-fA-F]{24}"),
controller="mediagoblin.user_pages.views:media_home")]
controller="mediagoblin.user_pages.views:media_home"),
Route('mediagoblin.user_pages.atom_feed', '/{user}/atom/',
controller="mediagoblin.user_pages.views:atom_feed")]

View File

@@ -20,6 +20,7 @@ from mediagoblin.util import Pagination
from mediagoblin.decorators import uses_pagination, get_user_media_entry
from werkzeug.contrib.atom import AtomFeed
@uses_pagination
def user_home(request, page):
@@ -61,3 +62,36 @@ def media_home(request, media):
template.render(
{'request': request,
'media': media}))
ATOM_DEFAULT_NR_OF_UPDATED_ITEMS = 5
def atom_feed(request):
"""
generates the atom feed with the newest images
"""
user = request.db.User.find_one({
'username': request.matchdict['user'],
'status': 'active'})
if not user:
return exc.HTTPNotFound()
cursor = request.db.MediaEntry.find({
'uploader': user['_id'],
'state': 'processed'}) \
.sort('created', DESCENDING) \
.limit(ATOM_DEFAULT_NR_OF_UPDATED_ITEMS)
feed = AtomFeed(request.matchdict['user'],
feed_url=request.url,
url=request.host_url)
for entry in cursor:
feed.add(entry.get('title'),
entry.get('description'),
content_type='html',
author=request.matchdict['user'],
updated=entry.get('created'),
url=entry.url_for_self(request.urlgen))
return feed.get_response()