Changeset 1374:9dd8173575da
- Timestamp:
- 05/16/10 21:51:10 (2 years ago)
- Branch:
- default
- Location:
- zine
- Files:
-
- 1 added
- 3 edited
-
feeds.py (added)
-
urls.py (modified) (3 diffs)
-
views/__init__.py (modified) (1 diff)
-
views/blog.py (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
zine/urls.py
r1279 r1374 17 17 Rule('/', defaults={'page': 1}, endpoint='blog/index'), 18 18 Rule('/feed.atom', endpoint='blog/atom_feed'), 19 Submount('/feed', [ 20 Rule('/', endpoint='blog/rss_feed'), 21 Rule('/rss', endpoint='blog/rss_feed'), 22 Rule('/rss2', endpoint='blog/rss_feed'), 23 Rule('/atom', endpoint='blog/atom_feed'), 24 ]), 19 25 Rule('/page/<int:page>', endpoint='blog/index'), 20 26 Rule('/archive', endpoint='blog/archive'), … … 24 30 Rule('/<string:username>/page/<int:page>', endpoint='blog/show_author'), 25 31 Rule('/<string:author>/feed.atom', endpoint='blog/atom_feed'), 32 Submount('/<string:author>/feed', [ 33 Rule('/', endpoint='blog/rss_feed'), 34 Rule('/rss', endpoint='blog/rss_feed'), 35 Rule('/rss2', endpoint='blog/rss_feed'), 36 Rule('/atom', endpoint='blog/atom_feed'), 37 ]), 26 38 ]), 27 39 Submount(app.cfg['category_url_prefix'], [ 28 40 Rule('/<string:slug>', defaults={'page': 1}, endpoint='blog/show_category'), 29 41 Rule('/<string:slug>/page/<int:page>', endpoint='blog/show_category'), 30 Rule('/<string:category>/feed.atom', endpoint='blog/atom_feed') 42 Rule('/<string:category>/feed.atom', endpoint='blog/atom_feed'), 43 Submount('/<string:category>/feed', [ 44 Rule('/', endpoint='blog/rss_feed'), 45 Rule('/rss', endpoint='blog/rss_feed'), 46 Rule('/rss2', endpoint='blog/rss_feed'), 47 Rule('/atom', endpoint='blog/atom_feed'), 48 ]), 31 49 ]), 32 50 Submount(app.cfg['tags_url_prefix'], [ … … 34 52 Rule('/<string:slug>', defaults={'page': 1}, endpoint='blog/show_tag'), 35 53 Rule('/<string:slug>/page/<int:page>', endpoint='blog/show_tag'), 36 Rule('/<string:tag>/feed.atom', endpoint='blog/atom_feed') 54 Rule('/<string:tag>/feed.atom', endpoint='blog/atom_feed'), 55 Submount('/<string:tag>/feed', [ 56 Rule('/', endpoint='blog/rss_feed'), 57 Rule('/rss', endpoint='blog/rss_feed'), 58 Rule('/rss2', endpoint='blog/rss_feed'), 59 Rule('/atom', endpoint='blog/atom_feed'), 60 ]), 37 61 ]), 38 62 Submount(app.cfg['account_url_prefix'], [ -
zine/views/__init__.py
r1279 r1374 29 29 'blog/xml_service': blog.xml_service, 30 30 'blog/atom_feed': blog.atom_feed, 31 'blog/rss_feed': blog.rss_feed, 31 32 'blog/serve_translations': i18n.serve_javascript, 32 33 -
zine/views/blog.py
r1302 r1374 19 19 from zine.utils import dump_json, log 20 20 from zine.utils.text import build_tag_uri 21 from zine.utils.xml import generate_rsd, dump_xml , AtomFeed21 from zine.utils.xml import generate_rsd, dump_xml 22 22 from zine.utils.http import redirect_to, redirect 23 23 from zine.utils.redirects import lookup_redirect 24 24 from zine.forms import NewCommentForm 25 from zine.feeds import Rss201rev2Feed as RssFeed, Atom1Feed 25 26 from werkzeug.exceptions import NotFound, Forbidden 26 27 … … 336 337 def atom_feed(req, author=None, year=None, month=None, day=None, 337 338 category=None, tag=None, post=None): 339 feed = Atom1Feed(req.app.cfg['blog_title'], req.app.cfg['blog_url'], 340 "", # Description not supported 341 subtitle=req.app.cfg['blog_tagline'], feed_url=req.url) 342 343 results = populate_feed(req, feed, author, year, month, day, category, 344 tag, post) 345 346 return Response(results, mimetype="application/atom+xml") 347 348 349 @cache.response(vary=('user',)) 350 def rss_feed(req, author=None, year=None, month=None, day=None, 351 category=None, tag=None, post=None): 352 feed = RssFeed(req.app.cfg['blog_title'], req.app.cfg['blog_url'], 353 "", # Description not supported 354 subtitle=req.app.cfg['blog_tagline'], feed_url=req.url) 355 356 results = populate_feed(req, feed, author, year, month, day, category, 357 tag, post) 358 359 return Response(results, mimetype="application/rss+xml") 360 361 362 def populate_feed(req, feed, author=None, year=None, month=None, day=None, 363 category=None, tag=None, post=None): 338 364 """Renders an atom feed requested. 339 365 340 366 :URL endpoint: ``blog/atom_feed`` 341 367 """ 342 feed = AtomFeed(req.app.cfg['blog_title'], feed_url=req.url,343 url=req.app.cfg['blog_url'],344 subtitle=req.app.cfg['blog_tagline'])345 346 368 # the feed only contains published items 347 369 query = Post.query.lightweight(lazy=('comments',)).published() … … 372 394 for post in query.for_index().order_by(Post.pub_date.desc()) \ 373 395 .limit(15).all(): 374 links = [link.as_dict() for link in post.links] 375 feed.add(post.title or '%s @ %s' % (post.author.display_name, 376 post.pub_date), unicode(post.body), content_type='html', 377 author=post.author.display_name, links=links, 378 url=url_for(post, _external=True), id=post.uid, 379 updated=post.last_update, published=post.pub_date) 396 alt_title = '%s @ %s' % (post.author.display_name, post.pub_date) 397 feed.add_item(post.title or alt_title, 398 url_for(post, _external=True), unicode(post.body), 399 author_name=post.author.display_name, 400 pubdate=post.pub_date, unique_id=post.uid) 380 401 381 402 # otherwise we create a feed for all the comments of a post. … … 395 416 if comment.www: 396 417 author['uri'] = comment.www 397 feed.add (title, unicode(comment.body), content_type='html',398 author=author, url=url_for(comment, _external=True),399 id=uid, updated=comment.pub_date)418 feed.add_item(title, url_for(comment, _external=True), 419 unicode(comment.body), author_name=author, 420 pubdate=comment.pub_date, unique_id=uid) 400 421 comment_num += 1 401 422 402 return feed. get_response()423 return feed.writeString('utf-8') 403 424 404 425
Note: See TracChangeset
for help on using the changeset viewer.