Added ten-minute caching to blog and meetings views

This commit is contained in:
str4d
2013-01-16 22:12:51 +00:00
parent 7ee91521c0
commit 41c8b1c7f3
2 changed files with 8 additions and 2 deletions

View File

@ -1,7 +1,7 @@
from flask import abort, render_template, request
from werkzeug.contrib.atom import AtomFeed
from i2p2www import BLOG_POSTS_PER_PAGE
from i2p2www import BLOG_POSTS_PER_PAGE, cache
from i2p2www.blog.helpers import get_blog_posts, get_blog_feed_items, get_date_from_slug, get_metadata_from_meta, render_blog_post
from i2p2www.helpers import Pagination, get_for_page
@ -9,6 +9,7 @@ from i2p2www.helpers import Pagination, get_for_page
############
# Blog views
@cache.memoize(600)
def blog_index(page):
all_posts = get_blog_posts()
posts = get_for_page(all_posts, page, BLOG_POSTS_PER_PAGE)
@ -17,6 +18,7 @@ def blog_index(page):
pagination = Pagination(page, BLOG_POSTS_PER_PAGE, len(all_posts))
return render_template('blog/index.html', pagination=pagination, posts=posts)
@cache.memoize(600)
def blog_post(slug):
# try to render that blog post.. throws 404 if it does not exist
parts = render_blog_post(slug)
@ -33,6 +35,7 @@ def blog_rss():
# TODO: implement
pass
@cache.cached(600)
def blog_atom():
# TODO: Only output beginning of each blog post
feed = AtomFeed('I2P Blog', feed_url=request.url, url=request.url_root)

View File

@ -3,7 +3,7 @@ from flask import abort, render_template, request, safe_join
import os.path
from werkzeug.contrib.atom import AtomFeed
from i2p2www import MEETINGS_DIR, MEETINGS_PER_PAGE
from i2p2www import MEETINGS_DIR, MEETINGS_PER_PAGE, cache
from i2p2www.helpers import Pagination, get_for_page
from i2p2www.meetings.helpers import get_meetings, get_meetings_feed_items
@ -12,6 +12,7 @@ from i2p2www.meetings.helpers import get_meetings, get_meetings_feed_items
# Meeting handlers
# Meeting index
@cache.memoize(600)
def meetings_index(page):
all_meetings = get_meetings()
meetings = get_for_page(all_meetings, page, MEETINGS_PER_PAGE)
@ -21,6 +22,7 @@ def meetings_index(page):
return render_template('meetings/index.html', pagination=pagination, meetings=meetings)
# Renderer for specific meetings
@cache.memoize(600)
def meetings_show(id, log=False, rst=False):
"""
Render the meeting X.
@ -71,6 +73,7 @@ def meetings_show_log(id):
def meetings_show_rst(id):
return meetings_show(id, rst=True)
@cache.cached(600)
def meetings_atom():
feed = AtomFeed('I2P Meetings', feed_url=request.url, url=request.url_root)
items = get_meetings_feed_items(10)