diff options
author | Bernhard Keller <keller_bernhard@web.de> | 2011-05-23 19:00:46 +0200 |
---|---|---|
committer | Bernhard Keller <keller_bernhard@web.de> | 2011-05-23 19:00:46 +0200 |
commit | 00c39256145127b9a0f34f4fdc525412065f9426 (patch) | |
tree | 097c3c2256183ddda174830a40486982233483ac /mediagoblin/user_pages/views.py | |
parent | f4cfb4e9c8bdfdb3662417048cd6caf2fa4bcd02 (diff) | |
download | mediagoblin-00c39256145127b9a0f34f4fdc525412065f9426.tar.lz mediagoblin-00c39256145127b9a0f34f4fdc525412065f9426.tar.xz mediagoblin-00c39256145127b9a0f34f4fdc525412065f9426.zip |
modified atomfeed feature, corrected spacing, url generation, routing id
Diffstat (limited to 'mediagoblin/user_pages/views.py')
-rw-r--r-- | mediagoblin/user_pages/views.py | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py index 41bdb402..cc9c7b21 100644 --- a/mediagoblin/user_pages/views.py +++ b/mediagoblin/user_pages/views.py @@ -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() |