modified atomfeed feature, corrected spacing, url generation, routing id
This commit is contained in:
parent
f4cfb4e9c8
commit
00c3925614
@ -20,6 +20,8 @@
|
|||||||
<title>{% block title %}MediaGoblin{% endblock title %}</title>
|
<title>{% block title %}MediaGoblin{% endblock title %}</title>
|
||||||
<link rel="stylesheet" type="text/css"
|
<link rel="stylesheet" type="text/css"
|
||||||
href="{{ request.staticdirect('/css/base.css') }}"/>
|
href="{{ request.staticdirect('/css/base.css') }}"/>
|
||||||
|
{% block mediagoblin_head %}
|
||||||
|
{% endblock mediagoblin_head %}
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
|
@ -16,6 +16,14 @@
|
|||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#}
|
#}
|
||||||
{% extends "mediagoblin/base.html" %}
|
{% extends "mediagoblin/base.html" %}
|
||||||
|
|
||||||
|
{% block mediagoblin_head %}
|
||||||
|
<link rel="alternate" type="application/atom+xml"
|
||||||
|
href="{{ request.urlgen(
|
||||||
|
'mediagoblin.user_pages.atom_feed',
|
||||||
|
user=user.username) }}">
|
||||||
|
{% endblock mediagoblin_head %}
|
||||||
|
|
||||||
{% block mediagoblin_content -%}
|
{% block mediagoblin_content -%}
|
||||||
{% if user %}
|
{% if user %}
|
||||||
<h1>User page for '{{ user.username }}'</h1>
|
<h1>User page for '{{ user.username }}'</h1>
|
||||||
@ -25,6 +33,9 @@
|
|||||||
{% include "mediagoblin/utils/object_gallery.html" %}
|
{% include "mediagoblin/utils/object_gallery.html" %}
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
|
<a href={{ request.urlgen(
|
||||||
|
'mediagoblin.user_pages.atom_feed',
|
||||||
|
user=user.username) }}> atom feed</a>
|
||||||
{% else %}
|
{% else %}
|
||||||
{# This *should* not occur as the view makes sure we pass in a user. #}
|
{# This *should* not occur as the view makes sure we pass in a user. #}
|
||||||
<p>Sorry, no such user found.<p/>
|
<p>Sorry, no such user found.<p/>
|
||||||
|
@ -21,4 +21,6 @@ user_routes = [
|
|||||||
controller="mediagoblin.user_pages.views:user_home"),
|
controller="mediagoblin.user_pages.views:user_home"),
|
||||||
Route('mediagoblin.user_pages.media_home', '/{user}/m/{media}/',
|
Route('mediagoblin.user_pages.media_home', '/{user}/m/{media}/',
|
||||||
requirements=dict(m_id="[0-9a-fA-F]{24}"),
|
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")]
|
||||||
|
@ -20,6 +20,7 @@ from mediagoblin.util import Pagination
|
|||||||
|
|
||||||
from mediagoblin.decorators import uses_pagination, get_user_media_entry
|
from mediagoblin.decorators import uses_pagination, get_user_media_entry
|
||||||
|
|
||||||
|
from werkzeug.contrib.atom import AtomFeed
|
||||||
|
|
||||||
@uses_pagination
|
@uses_pagination
|
||||||
def user_home(request, page):
|
def user_home(request, page):
|
||||||
@ -61,3 +62,36 @@ def media_home(request, media):
|
|||||||
template.render(
|
template.render(
|
||||||
{'request': request,
|
{'request': request,
|
||||||
'media': media}))
|
'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()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user