Apply consistency & PEP8 to atom feeds

This patch applies the atom feed thumbnail changes from 65d8ca7 to user
atom feeds and rearranges the code in both views for better consistency
with PEP8 and with each other. It also fixes a spacing issue with the
feed title on the main page.
This commit is contained in:
Andrew Browning 2016-11-04 02:46:53 -04:00
parent 65d8ca7050
commit 2a01c5e793
2 changed files with 52 additions and 38 deletions

View File

@ -73,19 +73,25 @@ def atom_feed(request):
tag_slug = request.matchdict.get(u'tag') tag_slug = request.matchdict.get(u'tag')
feed_title = "MediaGoblin Feed" feed_title = "MediaGoblin Feed"
if tag_slug: if tag_slug:
cursor = media_entries_for_tag_slug(request.db, tag_slug) feed_title += " for tag '%s'" % tag_slug
link = request.urlgen('mediagoblin.listings.tags_listing', link = request.urlgen('mediagoblin.listings.tags_listing',
qualified=True, tag=tag_slug ) qualified=True, tag=tag_slug )
feed_title += "for tag '%s'" % tag_slug cursor = media_entries_for_tag_slug(request.db, tag_slug)
else: # all recent item feed else: # all recent item feed
cursor = MediaEntry.query.filter_by(state=u'processed') feed_title += " for all recent items"
link = request.urlgen('index', qualified=True) link = request.urlgen('index', qualified=True)
feed_title += "for all recent items" cursor = MediaEntry.query.filter_by(state=u'processed')
cursor = cursor.order_by(MediaEntry.created.desc())
cursor = cursor.limit(ATOM_DEFAULT_NR_OF_UPDATED_ITEMS)
atomlinks = [
{'href': link, """
'rel': 'alternate', ATOM feed id is a tag URI (see http://en.wikipedia.org/wiki/Tag_URI)
'type': 'text/html'}] """
atomlinks = [{
'href': link,
'rel': 'alternate',
'type': 'text/html'}]
if mg_globals.app_config["push_urls"]: if mg_globals.app_config["push_urls"]:
for push_url in mg_globals.app_config["push_urls"]: for push_url in mg_globals.app_config["push_urls"]:
@ -93,9 +99,6 @@ def atom_feed(request):
'rel': 'hub', 'rel': 'hub',
'href': push_url}) 'href': push_url})
cursor = cursor.order_by(MediaEntry.created.desc())
cursor = cursor.limit(ATOM_DEFAULT_NR_OF_UPDATED_ITEMS)
feed = AtomFeed( feed = AtomFeed(
feed_title, feed_title,
feed_url=request.url, feed_url=request.url,
@ -111,19 +114,22 @@ def atom_feed(request):
else: else:
content = entry.description_html content = entry.description_html
feed.add(entry.get('title'), feed.add(
entry.get('title'),
content, content,
id=entry.url_for_self(request.urlgen,qualified=True), id=entry.url_for_self(request.urlgen, qualified=True),
content_type='html', content_type='html',
author={'name': entry.get_actor.username, author={
'name': entry.get_actor.username,
'uri': request.urlgen( 'uri': request.urlgen(
'mediagoblin.user_pages.user_home', 'mediagoblin.user_pages.user_home',
qualified=True, user=entry.get_actor.username)}, qualified=True,
user=entry.get_actor.username)},
updated=entry.get('created'), updated=entry.get('created'),
links=[{ links=[{
'href':entry.url_for_self( 'href': entry.url_for_self(
request.urlgen, request.urlgen,
qualified=True), qualified=True),
'rel': 'alternate', 'rel': 'alternate',
'type': 'text/html'}]) 'type': 'text/html'}])

View File

@ -24,6 +24,7 @@ from mediagoblin import messages, mg_globals
from mediagoblin.db.models import (MediaEntry, MediaTag, Collection, Comment, from mediagoblin.db.models import (MediaEntry, MediaTag, Collection, Comment,
CollectionItem, LocalUser, Activity, \ CollectionItem, LocalUser, Activity, \
GenericModelReference) GenericModelReference)
from mediagoblin.plugins.api.tools import get_media_file_paths
from mediagoblin.tools.response import render_to_response, render_404, \ from mediagoblin.tools.response import render_to_response, render_404, \
redirect, redirect_obj redirect, redirect_obj
from mediagoblin.tools.text import cleaned_markdown_conversion from mediagoblin.tools.text import cleaned_markdown_conversion
@ -538,23 +539,21 @@ def atom_feed(request):
username = request.matchdict['user']).first() username = request.matchdict['user']).first()
if not user or not user.has_privilege(u'active'): if not user or not user.has_privilege(u'active'):
return render_404(request) return render_404(request)
feed_title = "MediaGoblin Feed for user '%s'" % request.matchdict['user']
link = request.urlgen('mediagoblin.user_pages.user_home',
qualified=True, user=request.matchdict['user'])
cursor = MediaEntry.query.filter_by(actor=user.id, state=u'processed')
cursor = cursor.order_by(MediaEntry.created.desc())
cursor = cursor.limit(ATOM_DEFAULT_NR_OF_UPDATED_ITEMS)
cursor = MediaEntry.query.filter_by(
actor = user.id,
state = u'processed').\
order_by(MediaEntry.created.desc()).\
limit(ATOM_DEFAULT_NR_OF_UPDATED_ITEMS)
""" """
ATOM feed id is a tag URI (see http://en.wikipedia.org/wiki/Tag_URI) ATOM feed id is a tag URI (see http://en.wikipedia.org/wiki/Tag_URI)
""" """
atomlinks = [{ atomlinks = [{
'href': request.urlgen( 'href': link,
'mediagoblin.user_pages.user_home', 'rel': 'alternate',
qualified=True, user=request.matchdict['user']), 'type': 'text/html'}]
'rel': 'alternate',
'type': 'text/html'
}]
if mg_globals.app_config["push_urls"]: if mg_globals.app_config["push_urls"]:
for push_url in mg_globals.app_config["push_urls"]: for push_url in mg_globals.app_config["push_urls"]:
@ -563,25 +562,34 @@ def atom_feed(request):
'href': push_url}) 'href': push_url})
feed = AtomFeed( feed = AtomFeed(
"MediaGoblin: Feed for user '%s'" % request.matchdict['user'], feed_title,
feed_url=request.url, feed_url=request.url,
id='tag:{host},{year}:gallery.user-{user}'.format( id='tag:{host},{year}:gallery.user-{user}'.format(
host=request.host, host=request.host,
year=datetime.datetime.today().strftime('%Y'), year=datetime.datetime.today().strftime('%Y'),
user=request.matchdict['user']), user=request.matchdict['user']),
links=atomlinks) links=atomlinks)
for entry in cursor: 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( feed.add(
entry.get('title'), entry.get('title'),
entry.description_html, content,
id=entry.url_for_self(request.urlgen, qualified=True), id=entry.url_for_self(request.urlgen, qualified=True),
content_type='html', content_type='html',
author={ author={
'name': entry.get_actor.username, 'name': entry.get_actor.username,
'uri': request.urlgen( 'uri': request.urlgen(
'mediagoblin.user_pages.user_home', 'mediagoblin.user_pages.user_home',
qualified=True, user=entry.get_actor.username)}, qualified=True,
user=entry.get_actor.username)},
updated=entry.get('created'), updated=entry.get('created'),
links=[{ links=[{
'href': entry.url_for_self( 'href': entry.url_for_self(