diff --git a/store/app.py b/store/app.py index ba787bc1..e161e510 100644 --- a/store/app.py +++ b/store/app.py @@ -11,6 +11,7 @@ import hmac import string import random import urllib +from datetime import datetime from slugify import slugify from flask import ( Flask, @@ -19,6 +20,7 @@ from flask import ( session, redirect, request, + make_response, ) from flask_babel import Babel from flask_babel import gettext as _ @@ -89,6 +91,13 @@ def days_ago(timestamp): return int((time.time() - timestamp) / (60 * 60 * 24)) +@app.template_filter("format_datetime") +def format_datetime(value, format="%d %b %Y %I:%M %p"): + if value is None: + return "" + return datetime.strptime(value, "%b %d %Y").strftime(format) + + @app.context_processor def utils(): d = { @@ -487,6 +496,22 @@ def charts(): ) +@app.route("/news.rss") +def news_rss(): + + news_per_date = json.loads(open(".cache/news.json").read()) + + # Keepy only the last N entries + news_per_date = {d: infos for d, infos in reversed(list(news_per_date.items())[-2:])} + + rss_xml = render_template('news_rss.xml', news_per_date=news_per_date, catalog=get_catalog()) + response = make_response(rss_xml) + response.headers['Content-Type'] = 'application/rss+xml' + response.headers['Content-Disposition'] = "inline; filename=news_rss.xml" + return response + + + ############################################################################### # Session / SSO using Discourse # ############################################################################### diff --git a/store/templates/charts.html b/store/templates/charts.html index 0eccab3d..4fc086d7 100644 --- a/store/templates/charts.html +++ b/store/templates/charts.html @@ -10,8 +10,13 @@
-