from flask import Blueprint rss_bp = Blueprint("rss", __name__) @rss_bp.route("/feed//rss.xml") def feed(name): if name not in data.POSTS: abort(404) entries = [] for post in data.get_posts(name, data.STATE_PUBLISHED, end=50): post["timestamp"] = post[data.TIMESTAMP] post["link"] = url_for( "post", name=name, timestamp=post["timestamp"], _external=True ) entries.append({"content": post}) title = f"{data.POSTS[name]} AFPy.org" return render_template( "rss.xml", entries=entries, title=title, description=title, link=url_for("feed", name=name, _external=True), ) @rss_bp.route("/planet/") @rss_bp.route("/planet/rss.xml") def planet(): entries = [] for name, url in PLANET.items(): for entry in feedparser.parse(url).entries: if hasattr(entry, "updated_parsed"): date = entry.updated_parsed elif hasattr(entry, "published_parsed"): date = entry.published_parsed else: date = time.time() entry["timestamp"] = time.mktime(date) if date else time.time() entries.append({"feed": name, "content": entry}) entries.sort(reverse=True, key=lambda entry: entry["content"]["timestamp"]) return render_template( "rss.xml", entries=entries, title="Planet Python francophone", description="Nouvelles autour de Python en français", link=url_for("planet", _external=True), )