def atom_feed(request): """ generates the atom feed with the tag images """ 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 = cursor.order_by(MediaEntry.created.desc()) cursor = cursor.limit(ATOM_DEFAULT_NR_OF_UPDATED_ITEMS) feed = AtomFeed( feed_title, feed_url=request.url, id=link, links=atomlinks) for entry in cursor: feed.add(entry.get('title'), entry.description_html, id=entry.url_for_self(request.urlgen,qualified=True), content_type='html', author={'name': entry.get_actor.username, 'uri': request.urlgen( 'mediagoblin.user_pages.user_home', qualified=True, user=entry.get_actor.username)}, updated=entry.get('created'), links=[{ 'href':entry.url_for_self( request.urlgen, qualified=True), 'rel': 'alternate', 'type': 'text/html'}]) return feed.get_response()
def atom_feed(request): """ generates the atom feed with the tag images """ 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 = cursor.order_by(MediaEntry.created.desc()) cursor = cursor.limit(ATOM_DEFAULT_NR_OF_UPDATED_ITEMS) feed = AtomFeed(feed_title, feed_url=request.url, id=link, links=atomlinks) for entry in cursor: feed.add(entry.get('title'), entry.description_html, id=entry.url_for_self(request.urlgen, qualified=True), content_type='html', author={ 'name': entry.get_uploader.username, 'uri': request.urlgen('mediagoblin.user_pages.user_home', qualified=True, user=entry.get_uploader.username) }, updated=entry.get('created'), links=[{ 'href': entry.url_for_self(request.urlgen, qualified=True), 'rel': 'alternate', 'type': 'text/html' }]) return feed.get_response()
def tag_listing(request, page): """'Gallery'/listing for this tag slug""" tag_slug = request.matchdict[u'tag'] cursor = media_entries_for_tag_slug(request.db, tag_slug) cursor = cursor.order_by(MediaEntry.created.desc()) pagination = Pagination(page, cursor) media_entries = pagination() tag_name = _get_tag_name_from_entries(media_entries, tag_slug) return render_to_response( request, 'mediagoblin/listings/tag.html', {'tag_slug': tag_slug, 'tag_name': tag_name, 'media_entries': media_entries, 'pagination': pagination})
def tag_listing(request, page): """'Gallery'/listing for this tag slug""" tag_slug = request.matchdict[u'tag'] cursor = media_entries_for_tag_slug(request.db, tag_slug) cursor = cursor.order_by(MediaEntry.created.desc()) pagination = Pagination(page, cursor) media_entries = pagination() tag_name = _get_tag_name_from_entries(media_entries, tag_slug) return render_to_response( request, 'mediagoblin/listings/tag.html', {'tag_slug': tag_slug, 'tag_name': tag_name, 'media_entries': media_entries, 'pagination': pagination})
def tag_atom_feed(request): """ generates the atom feed with the tag images """ tag_slug = request.matchdict[u'tag'] cursor = media_entries_for_tag_slug(request.db, tag_slug) cursor = cursor.sort('created', DESCENDING) 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_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'}]) for entry in cursor: feed.add(entry.get('title'), entry.description_html, id=entry.url_for_self(request.urlgen,qualified=True), content_type='html', author={'name': entry.get_uploader.username, 'uri': request.urlgen( 'mediagoblin.user_pages.user_home', qualified=True, user=entry.get_uploader.username)}, updated=entry.get('created'), links=[{ 'href':entry.url_for_self( request.urlgen, qualified=True), 'rel': 'alternate', 'type': 'text/html'}]) return feed.get_response()
def atom_feed(request): """ generates the atom feed with the tag images """ tag_slug = request.matchdict.get(u'tag') feed_title = "MediaGoblin Feed" if tag_slug: feed_title += " for tag '%s'" % tag_slug link = request.urlgen('mediagoblin.listings.tags_listing', qualified=True, tag=tag_slug ) cursor = media_entries_for_tag_slug(request.db, tag_slug) else: # all recent item feed feed_title += " for all recent items" link = request.urlgen('index', qualified=True) cursor = MediaEntry.query.filter_by(state=u'processed') 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) """ 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}) feed = AtomFeed( feed_title, feed_url=request.url, id=link, links=atomlinks) for entry in cursor: # Include a thumbnail image in content. file_urls = get_media_file_paths(entry.media_files, request.urlgen) if 'thumb' in file_urls: content = u'<img src="{thumb}" alt='' /> {desc}'.format( thumb=file_urls['thumb'], desc=entry.description_html) else: content = entry.description_html feed.add( entry.get('title'), content, id=entry.url_for_self(request.urlgen, qualified=True), content_type='html', author={ 'name': entry.get_actor.username, 'uri': request.urlgen( 'mediagoblin.user_pages.user_home', qualified=True, user=entry.get_actor.username)}, updated=entry.get('created'), links=[{ 'href': entry.url_for_self( request.urlgen, qualified=True), 'rel': 'alternate', 'type': 'text/html'}]) return feed.get_response()
def atom_feed(request): """ generates the atom feed with the tag images """ tag_slug = request.matchdict.get('tag') feed_title = "MediaGoblin Feed" if tag_slug: feed_title += " for tag '%s'" % tag_slug link = request.urlgen('mediagoblin.listings.tags_listing', qualified=True, tag=tag_slug) cursor = media_entries_for_tag_slug(request.db, tag_slug) else: # all recent item feed feed_title += " for all recent items" link = request.urlgen('index', qualified=True) cursor = MediaEntry.query.filter_by(state='processed') 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) """ atomlinks = [] if mg_globals.app_config["push_urls"]: for push_url in mg_globals.app_config["push_urls"]: atomlinks.append({ 'rel': 'hub', 'href': push_url}) feed = AtomFeedWithLinks( title=feed_title, link=link, description='', feed_url=request.url, links=atomlinks, ) for entry in cursor: # Include a thumbnail image in content. file_urls = get_media_file_paths(entry.media_files, request.urlgen) if 'thumb' in file_urls: content = '<img src="{thumb}" alt='' /> {desc}'.format( thumb=file_urls['thumb'], desc=entry.description_html) else: content = entry.description_html feed.add_item( # AtomFeed requires a non-blank title. This situation can occur if # you edit a media item and blank out the existing title. title=entry.get('title') or _('Untitled'), link=entry.url_for_self( request.urlgen, qualified=True), description=content, unique_id=entry.url_for_self(request.urlgen, qualified=True), author_name=entry.get_actor.username, author_link=request.urlgen( 'mediagoblin.user_pages.user_home', qualified=True, user=entry.get_actor.username), updateddate=entry.get('created'), ) response = Response( feed.writeString(encoding='utf-8'), mimetype='application/atom+xml' ) return response