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

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

Split off urls

parent 03120885
No related branches found
No related tags found
No related merge requests found
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)
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')
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