I2P Address: [http://git.idk.i2p]

Skip to content
Snippets Groups Projects
Commit 3f19792d authored by str4d's avatar str4d
Browse files

Use Werkzeug route level defaults to ensure unique urls

parent 8b608ea7
No related branches found
No related tags found
No related merge requests found
...@@ -165,9 +165,9 @@ def main_index(): ...@@ -165,9 +165,9 @@ def main_index():
return redirect(url_for('site_show', lang='en')) return redirect(url_for('site_show', lang='en'))
# Site pages # Site pages
@app.route('/<string:lang>/site/') @app.route('/<string:lang>/site/', defaults={'page': 'index'})
@app.route('/<string:lang>/site/<path:page>') @app.route('/<string:lang>/site/<path:page>')
def site_show(page='index'): def site_show(page):
if page.endswith('.html'): if page.endswith('.html'):
return redirect(url_for('site_show', page=page[:-5])) return redirect(url_for('site_show', page=page[:-5]))
name = 'site/%s.html' % page name = 'site/%s.html' % page
...@@ -264,9 +264,9 @@ def render_meeting_rst(id): ...@@ -264,9 +264,9 @@ def render_meeting_rst(id):
# Meeting handlers # Meeting handlers
# Meeting index # Meeting index
@app.route('/<string:lang>/meetings/') @app.route('/<string:lang>/meetings/', defaults={'page': 1})
@app.route('/<string:lang>/meetings/page/<int:page>') @app.route('/<string:lang>/meetings/page/<int:page>')
def meetings_index(page=0): def meetings_index(page):
meetings = get_meetings() meetings = get_meetings()
return render_template('meetings/index.html', meetings=meetings) return render_template('meetings/index.html', meetings=meetings)
...@@ -384,9 +384,9 @@ def downloads_select(file): ...@@ -384,9 +384,9 @@ def downloads_select(file):
obj.append(a) obj.append(a)
return render_template('downloads/select.html', mirrors=obj, file=file) return render_template('downloads/select.html', mirrors=obj, file=file)
@app.route('/download/<string:protocol>/any/<path:file>') @app.route('/download/<string:protocol>/any/<path:file>', defaults={'mirror': None})
@app.route('/download/<string:protocol>/<int:mirror>/<path:file>') @app.route('/download/<string:protocol>/<int:mirror>/<path:file>')
def downloads_redirect(protocol, file, mirror=None): def downloads_redirect(protocol, file, mirror):
mirrors=read_mirrors() mirrors=read_mirrors()
if not protocol in mirrors: if not protocol in mirrors:
abort(404) abort(404)
...@@ -473,9 +473,9 @@ def render_blog_entry(slug): ...@@ -473,9 +473,9 @@ def render_blog_entry(slug):
############### ###############
# Blog handlers # Blog handlers
@app.route('/<string:lang>/blog/') @app.route('/<string:lang>/blog/', defaults={'page': 1})
@app.route('/<string:lang>/blog/page/<int:page>') @app.route('/<string:lang>/blog/page/<int:page>')
def blog_index(page=0): def blog_index(page):
entries = get_blog_entries() entries = get_blog_entries()
return render_template('blog/index.html', entries=entries) return render_template('blog/index.html', entries=entries)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment