OLD | NEW |
1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
2 # coding: utf-8 | 2 # coding: utf-8 |
3 | 3 |
4 # This file is part of the Adblock Plus web scripts, | 4 # This file is part of the Adblock Plus web scripts, |
5 # Copyright (C) 2006-2014 Eyeo GmbH | 5 # Copyright (C) 2006-2014 Eyeo GmbH |
6 # | 6 # |
7 # Adblock Plus is free software: you can redistribute it and/or modify | 7 # Adblock Plus is free software: you can redistribute it and/or modify |
8 # it under the terms of the GNU General Public License version 3 as | 8 # it under the terms of the GNU General Public License version 3 as |
9 # published by the Free Software Foundation. | 9 # published by the Free Software Foundation. |
10 # | 10 # |
11 # Adblock Plus is distributed in the hope that it will be useful, | 11 # Adblock Plus is distributed in the hope that it will be useful, |
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of | 12 # but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
14 # GNU General Public License for more details. | 14 # GNU General Public License for more details. |
15 # | 15 # |
16 # You should have received a copy of the GNU General Public License | 16 # You should have received a copy of the GNU General Public License |
17 # along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>. | 17 # along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>. |
18 | 18 |
| 19 import re |
19 import flask | 20 import flask |
20 from sitescripts.web import handlers | 21 from sitescripts.web import handlers |
21 from urlparse import urlparse | 22 from urlparse import urlparse |
22 | 23 |
23 app = flask.Flask(__name__) | 24 app = flask.Flask(__name__) |
24 | 25 |
25 @app.route("/<path:path>", methods = ["GET", "POST"]) | 26 @app.route("/<path:path>", methods = ["GET", "POST"]) |
26 def multiplex(path): | 27 def multiplex(path): |
27 request_url = urlparse(flask.request.url) | 28 request_url = urlparse(flask.request.url) |
| 29 if 'SERVER_ADDR' not in flask.request.environ: |
| 30 flask.request.environ['SERVER_ADDR'] = flask.request.environ['SERVER_NAME'] |
| 31 if 'REQUEST_URI' not in flask.request.environ: |
| 32 flask.request.environ['REQUEST_URI'] = flask.request.url |
| 33 |
28 request_path = request_url.path | 34 request_path = request_url.path |
29 if request_path in handlers: | 35 if request_path in handlers: |
30 if 'SERVER_ADDR' not in flask.request.environ: | |
31 flask.request.environ['SERVER_ADDR'] = flask.request.environ['SERVER_NAME'
] | |
32 return handlers[request_path] | 36 return handlers[request_path] |
| 37 request_dir = re.sub(r'[^/]+$', '', request_path) |
| 38 if request_dir in handlers: |
| 39 return handlers[request_dir] |
33 return flask.abort(404) | 40 return flask.abort(404) |
34 | 41 |
35 if __name__ == "__main__": | 42 if __name__ == "__main__": |
36 app.run(debug=True) | 43 app.run(debug=True) |
OLD | NEW |