Added ten-minute caching to blog and meetings views
This commit is contained in:
@ -1,7 +1,7 @@
|
|||||||
from flask import abort, render_template, request
|
from flask import abort, render_template, request
|
||||||
from werkzeug.contrib.atom import AtomFeed
|
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.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
|
from i2p2www.helpers import Pagination, get_for_page
|
||||||
|
|
||||||
@ -9,6 +9,7 @@ from i2p2www.helpers import Pagination, get_for_page
|
|||||||
############
|
############
|
||||||
# Blog views
|
# Blog views
|
||||||
|
|
||||||
|
@cache.memoize(600)
|
||||||
def blog_index(page):
|
def blog_index(page):
|
||||||
all_posts = get_blog_posts()
|
all_posts = get_blog_posts()
|
||||||
posts = get_for_page(all_posts, page, BLOG_POSTS_PER_PAGE)
|
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))
|
pagination = Pagination(page, BLOG_POSTS_PER_PAGE, len(all_posts))
|
||||||
return render_template('blog/index.html', pagination=pagination, posts=posts)
|
return render_template('blog/index.html', pagination=pagination, posts=posts)
|
||||||
|
|
||||||
|
@cache.memoize(600)
|
||||||
def blog_post(slug):
|
def blog_post(slug):
|
||||||
# try to render that blog post.. throws 404 if it does not exist
|
# try to render that blog post.. throws 404 if it does not exist
|
||||||
parts = render_blog_post(slug)
|
parts = render_blog_post(slug)
|
||||||
@ -33,6 +35,7 @@ def blog_rss():
|
|||||||
# TODO: implement
|
# TODO: implement
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
@cache.cached(600)
|
||||||
def blog_atom():
|
def blog_atom():
|
||||||
# TODO: Only output beginning of each blog post
|
# TODO: Only output beginning of each blog post
|
||||||
feed = AtomFeed('I2P Blog', feed_url=request.url, url=request.url_root)
|
feed = AtomFeed('I2P Blog', feed_url=request.url, url=request.url_root)
|
||||||
|
@ -3,7 +3,7 @@ from flask import abort, render_template, request, safe_join
|
|||||||
import os.path
|
import os.path
|
||||||
from werkzeug.contrib.atom import AtomFeed
|
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.helpers import Pagination, get_for_page
|
||||||
from i2p2www.meetings.helpers import get_meetings, get_meetings_feed_items
|
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 handlers
|
||||||
|
|
||||||
# Meeting index
|
# Meeting index
|
||||||
|
@cache.memoize(600)
|
||||||
def meetings_index(page):
|
def meetings_index(page):
|
||||||
all_meetings = get_meetings()
|
all_meetings = get_meetings()
|
||||||
meetings = get_for_page(all_meetings, page, MEETINGS_PER_PAGE)
|
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)
|
return render_template('meetings/index.html', pagination=pagination, meetings=meetings)
|
||||||
|
|
||||||
# Renderer for specific meetings
|
# Renderer for specific meetings
|
||||||
|
@cache.memoize(600)
|
||||||
def meetings_show(id, log=False, rst=False):
|
def meetings_show(id, log=False, rst=False):
|
||||||
"""
|
"""
|
||||||
Render the meeting X.
|
Render the meeting X.
|
||||||
@ -71,6 +73,7 @@ def meetings_show_log(id):
|
|||||||
def meetings_show_rst(id):
|
def meetings_show_rst(id):
|
||||||
return meetings_show(id, rst=True)
|
return meetings_show(id, rst=True)
|
||||||
|
|
||||||
|
@cache.cached(600)
|
||||||
def meetings_atom():
|
def meetings_atom():
|
||||||
feed = AtomFeed('I2P Meetings', feed_url=request.url, url=request.url_root)
|
feed = AtomFeed('I2P Meetings', feed_url=request.url, url=request.url_root)
|
||||||
items = get_meetings_feed_items(10)
|
items = get_meetings_feed_items(10)
|
||||||
|
Reference in New Issue
Block a user