From 54ef7bcf3e2211bf575c603c93e34cb278cd0442 Mon Sep 17 00:00:00 2001 From: Andreas Valder <andreasv@fsmpi.rwth-aachen.de> Date: Thu, 8 Sep 2016 02:27:58 +0200 Subject: [PATCH] added sitemap.xml closes #10 --- server.py | 18 ++++++++++++++++++ templates/sitemap.xml | 9 +++++++++ 2 files changed, 27 insertions(+) create mode 100644 templates/sitemap.xml diff --git a/server.py b/server.py index ea711cc..2bb1a7e 100755 --- a/server.py +++ b/server.py @@ -399,6 +399,24 @@ def new_featured(): return redirect(request.values['ref']) return id, 200 +@app.route('/sitemap.xml', methods=['GET']) +def sitemap(): + pages=[] + # static pages + for rule in app.url_map.iter_rules(): + if 'GET' in rule.methods and len(rule.arguments)==0: + if rule.endpoint not in mod_endpoints: + pages.append([rule.rule]) + for i in query('select * from courses where visible and listed'): + pages.append([url_for('course',handle=i['handle'])]) + for j in query('select * from lectures where (course_id = ? and visible)',i['id']): + pages.append([url_for('lecture',id=j['id'])]) + + + return Response(render_template('sitemap.xml', pages=pages), 200, {'Content-Type': 'application/atom+xml'} ) + + + import feeds import importer import schedule diff --git a/templates/sitemap.xml b/templates/sitemap.xml new file mode 100644 index 0000000..c847d22 --- /dev/null +++ b/templates/sitemap.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> + {% for page in pages %} + <url> + <loc>{{page[0]|safe}}</loc> + <lastmod>{{page[1]}}</lastmod> + </url> + {% endfor %} +</urlset> -- GitLab