From d633b4a704844b30570176206532be7787a2c37d Mon Sep 17 00:00:00 2001 From: str4d <str4d@mail.i2p> Date: Wed, 19 Dec 2012 21:30:06 +0000 Subject: [PATCH] Split off urls --- i2p2www/__init__.py | 70 +-------------------------------------------- i2p2www/urls.py | 70 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 71 insertions(+), 69 deletions(-) create mode 100644 i2p2www/urls.py diff --git a/i2p2www/__init__.py b/i2p2www/__init__.py index 1f2d07f39..1bb725c26 100644 --- a/i2p2www/__init__.py +++ b/i2p2www/__init__.py @@ -1,12 +1,9 @@ from flask import Flask, request, g, redirect, url_for, abort, render_template, send_from_directory, safe_join from flaskext.babel import Babel -from werkzeug.routing import BaseConverter from docutils.core import publish_parts import os.path import os -from helpers import LazyView, Pagination - CURRENT_I2P_VERSION = '0.9.4' CANONICAL_DOMAIN = 'www.i2p2.de' @@ -27,72 +24,6 @@ app.debug = bool(os.environ.get('APP_DEBUG', 'False')) babel = Babel(app) -####################### -# Custom URL converters - -class LangConverter(BaseConverter): - def __init__(self, url_map): - super(LangConverter, self).__init__(url_map) - self.regex = '(?:[a-z]{2})(-[a-z]{2})?' - - def to_python(self, value): - parts = value.split('-') - if len(parts) == 2: - return parts[0] + '_' + parts[1].upper() - return value - - def to_url(self, value): - parts = value.split('_') - if len(parts) == 2: - return parts[0] + '-' + parts[1].lower() - return value - -app.url_map.converters['lang'] = LangConverter - - -###### -# URLs - -def url(url_rule, import_name, **options): - view = LazyView('i2p2www.' + import_name) - app.add_url_rule(url_rule, view_func=view, **options) - -url('/', 'views.main_index') -url('/<lang:lang>/', 'views.site_show', defaults={'page': 'index'}) -url('/<lang:lang>/<path:page>', 'views.site_show') - -url('/<lang:lang>/blog/', 'blog.views.blog_index', defaults={'page': 1}) -url('/<lang:lang>/blog/page/<int:page>', 'blog.views.blog_index') -url('/<lang:lang>/blog/entry/<path:slug>', 'blog.views.blog_entry') -url('/<lang:lang>/feed/blog/rss', 'blog.views.blog_rss') -url('/<lang:lang>/feed/blog/atom', 'blog.views.blog_atom') - -url('/<lang:lang>/meetings/', 'meetings.views.meetings_index', defaults={'page': 1}) -url('/<lang:lang>/meetings/page/<int:page>', 'meetings.views.meetings_index') -url('/<lang:lang>/meetings/<int:id>', 'meetings.views.meetings_show') -url('/<lang:lang>/meetings/<int:id>.log', 'meetings.views.meetings_show_log') -url('/<lang:lang>/meetings/<int:id>.rst', 'meetings.views.meetings_show_rst') -url('/<lang:lang>/feed/meetings/atom', 'meetings.views.meetings_atom') - -url('/<lang:lang>/download', 'downloads.downloads_list') -url('/<lang:lang>/download/<path:file>', 'downloads.downloads_select') -url('/download/<string:protocol>/any/<path:file>', 'downloads.downloads_redirect', defaults={'mirror': None}) -url('/download/<string:protocol>/<int:mirror>/<path:file>', 'downloads.downloads_redirect') - -url('/meeting<int:id>', 'legacy.legacy_meeting') -url('/meeting<int:id>.html', 'legacy.legacy_meeting') -url('/status-<int:year>-<int:month>-<int:day>', 'legacy.legacy_status') -url('/status-<int:year>-<int:month>-<int:day>.html', 'legacy.legacy_status') -url('/<string:f>_<lang:lang>', 'legacy.legacy_show') -url('/<string:f>_<lang:lang>.html', 'legacy.legacy_show') -url('/<string:f>/', 'legacy.legacy_show') -url('/<string:f>.html', 'legacy.legacy_show') - -url('/hosts.txt', 'views.hosts') -url('/robots.txt', 'views.robots') -url('/favicon.ico', 'views.favicon') - - ################# # Babel selectors @@ -195,6 +126,7 @@ def server_error(error): # Import these to ensure they get loaded import templatevars +import urls if __name__ == '__main__': app.run(debug=True) diff --git a/i2p2www/urls.py b/i2p2www/urls.py new file mode 100644 index 000000000..84ed409dd --- /dev/null +++ b/i2p2www/urls.py @@ -0,0 +1,70 @@ +from werkzeug.routing import BaseConverter + +from i2p2www import app +from i2p2www.helpers import LazyView + + +####################### +# Custom URL converters + +class LangConverter(BaseConverter): + def __init__(self, url_map): + super(LangConverter, self).__init__(url_map) + self.regex = '(?:[a-z]{2})(-[a-z]{2})?' + + def to_python(self, value): + parts = value.split('-') + if len(parts) == 2: + return parts[0] + '_' + parts[1].upper() + return value + + def to_url(self, value): + parts = value.split('_') + if len(parts) == 2: + return parts[0] + '-' + parts[1].lower() + return value + +app.url_map.converters['lang'] = LangConverter + + +###### +# URLs + +def url(url_rule, import_name, **options): + view = LazyView('i2p2www.' + import_name) + app.add_url_rule(url_rule, view_func=view, **options) + +url('/', 'views.main_index') +url('/<lang:lang>/', 'views.site_show', defaults={'page': 'index'}) +url('/<lang:lang>/<path:page>', 'views.site_show') + +url('/<lang:lang>/blog/', 'blog.views.blog_index', defaults={'page': 1}) +url('/<lang:lang>/blog/page/<int:page>', 'blog.views.blog_index') +url('/<lang:lang>/blog/entry/<path:slug>', 'blog.views.blog_entry') +url('/<lang:lang>/feed/blog/rss', 'blog.views.blog_rss') +url('/<lang:lang>/feed/blog/atom', 'blog.views.blog_atom') + +url('/<lang:lang>/meetings/', 'meetings.views.meetings_index', defaults={'page': 1}) +url('/<lang:lang>/meetings/page/<int:page>', 'meetings.views.meetings_index') +url('/<lang:lang>/meetings/<int:id>', 'meetings.views.meetings_show') +url('/<lang:lang>/meetings/<int:id>.log', 'meetings.views.meetings_show_log') +url('/<lang:lang>/meetings/<int:id>.rst', 'meetings.views.meetings_show_rst') +url('/<lang:lang>/feed/meetings/atom', 'meetings.views.meetings_atom') + +url('/<lang:lang>/download', 'downloads.downloads_list') +url('/<lang:lang>/download/<path:file>', 'downloads.downloads_select') +url('/download/<string:protocol>/any/<path:file>', 'downloads.downloads_redirect', defaults={'mirror': None}) +url('/download/<string:protocol>/<int:mirror>/<path:file>', 'downloads.downloads_redirect') + +url('/meeting<int:id>', 'legacy.legacy_meeting') +url('/meeting<int:id>.html', 'legacy.legacy_meeting') +url('/status-<int:year>-<int:month>-<int:day>', 'legacy.legacy_status') +url('/status-<int:year>-<int:month>-<int:day>.html', 'legacy.legacy_status') +url('/<string:f>_<lang:lang>', 'legacy.legacy_show') +url('/<string:f>_<lang:lang>.html', 'legacy.legacy_show') +url('/<string:f>/', 'legacy.legacy_show') +url('/<string:f>.html', 'legacy.legacy_show') + +url('/hosts.txt', 'views.hosts') +url('/robots.txt', 'views.robots') +url('/favicon.ico', 'views.favicon') -- GitLab