X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=mediagoblin%2Flistings%2Fviews.py;h=07dbb3d504b98cda4ad9572a2429b80cd1d35131;hb=eebd8fe3edb3cce4675f58eb02fe1d96229af0d5;hp=d37161fc32036082e818e5c5eb4efdbf31204d44;hpb=d1d535602cce3d93c5ee32f034d361ef99610cc1;p=mediagoblin.git diff --git a/mediagoblin/listings/views.py b/mediagoblin/listings/views.py index d37161fc..07dbb3d5 100644 --- a/mediagoblin/listings/views.py +++ b/mediagoblin/listings/views.py @@ -14,6 +14,7 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . +from mediagoblin import mg_globals from mediagoblin.db.models import MediaEntry from mediagoblin.db.util import media_entries_for_tag_slug from mediagoblin.tools.pagination import Pagination @@ -64,28 +65,42 @@ def tag_listing(request, page): ATOM_DEFAULT_NR_OF_UPDATED_ITEMS = 15 -def tag_atom_feed(request): +def 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" + + atomlinks = [ + {'href': link, + 'rel': 'alternate', + 'type': 'text/html'}] + + if mg_globals.app_config["push_urls"]: + for push_url in mg_globals.app_config["push_urls"]: + atomlinks.append({ + 'rel': 'hub', + 'href': push_url}) - 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 ), - 'rel': 'alternate', - 'type': 'text/html'}]) + id=link, + links=atomlinks) + for entry in cursor: feed.add(entry.get('title'), entry.description_html,