OLD | NEW |
1 # coding: utf-8 | 1 # coding: utf-8 |
2 | 2 |
3 # This file is part of the Adblock Plus web scripts, | 3 # This file is part of the Adblock Plus web scripts, |
4 # Copyright (C) 2006-2015 Eyeo GmbH | 4 # Copyright (C) 2006-2015 Eyeo GmbH |
5 # | 5 # |
6 # Adblock Plus is free software: you can redistribute it and/or modify | 6 # Adblock Plus is free software: you can redistribute it and/or modify |
7 # it under the terms of the GNU General Public License version 3 as | 7 # it under the terms of the GNU General Public License version 3 as |
8 # published by the Free Software Foundation. | 8 # published by the Free Software Foundation. |
9 # | 9 # |
10 # Adblock Plus is distributed in the hope that it will be useful, | 10 # Adblock Plus is distributed in the hope that it will be useful, |
(...skipping 28 matching lines...) Expand all Loading... |
39 {% set code = status.split()|first|int %} | 39 {% set code = status.split()|first|int %} |
40 {% if code == 404 %} | 40 {% if code == 404 %} |
41 <p>No page found for the address {{uri}}.</p> | 41 <p>No page found for the address {{uri}}.</p> |
42 {% elif code == 500 %} | 42 {% elif code == 500 %} |
43 <p>An error occurred while processing the request for {{uri}}:</p> | 43 <p>An error occurred while processing the request for {{uri}}:</p> |
44 <pre>{{error}}</pre> | 44 <pre>{{error}}</pre> |
45 {% endif %} | 45 {% endif %} |
46 </body> | 46 </body> |
47 </html>""" | 47 </html>""" |
48 | 48 |
49 # Create our own instance, the default one will introduce "random" host-specific | 49 # Initilize the mimetypes modules manually for consistent behavior, |
50 # behavior by parsing local config files. | 50 # ignoring local files and Windows Registry. |
51 mime_types = mimetypes.MimeTypes() | 51 mimetypes.init([]) |
52 | 52 |
53 def get_page(path): | 53 def get_page(path): |
54 path = path.strip("/") | 54 path = path.strip("/") |
55 if path == "": | 55 if path == "": |
56 path = source.read_config().get("general", "defaultlocale") | 56 path = source.read_config().get("general", "defaultlocale") |
57 if "/" in path: | 57 if "/" in path: |
58 locale, page = path.split("/", 1) | 58 locale, page = path.split("/", 1) |
59 else: | 59 else: |
60 locale, page = path, "" | 60 locale, page = path, "" |
61 | 61 |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
98 for fragment in template.stream(status=status, **kwargs): | 98 for fragment in template.stream(status=status, **kwargs): |
99 yield fragment.encode(UNICODE_ENCODING) | 99 yield fragment.encode(UNICODE_ENCODING) |
100 | 100 |
101 def handler(environ, start_response): | 101 def handler(environ, start_response): |
102 path = environ.get("PATH_INFO") | 102 path = environ.get("PATH_INFO") |
103 | 103 |
104 data = get_data(path) | 104 data = get_data(path) |
105 if data is None: | 105 if data is None: |
106 return show_error(start_response, "404 Not Found", uri=path) | 106 return show_error(start_response, "404 Not Found", uri=path) |
107 | 107 |
108 mime = mime_types.guess_type(path)[0] or "text/html" | 108 mime = mimetypes.guess_type(path)[0] or "text/html" |
109 | 109 |
110 if isinstance(data, unicode): | 110 if isinstance(data, unicode): |
111 data = data.encode(UNICODE_ENCODING) | 111 data = data.encode(UNICODE_ENCODING) |
112 mime = "%s; charset=%s" % (mime, UNICODE_ENCODING) | 112 mime = "%s; charset=%s" % (mime, UNICODE_ENCODING) |
113 | 113 |
114 start_response("200 OK", [("Content-Type", mime)]) | 114 start_response("200 OK", [("Content-Type", mime)]) |
115 return [data] | 115 return [data] |
116 | 116 |
117 if __name__ == "__main__": | 117 if __name__ == "__main__": |
118 if len(sys.argv) < 2: | 118 if len(sys.argv) < 2: |
(...skipping 24 matching lines...) Expand all Loading... |
143 return app(environ, start_response) | 143 return app(environ, start_response) |
144 except Exception, e: | 144 except Exception, e: |
145 return show_error(start_response, "500 Internal Server Error", | 145 return show_error(start_response, "500 Internal Server Error", |
146 uri=environ.get("PATH_INFO"), error=e) | 146 uri=environ.get("PATH_INFO"), error=e) |
147 | 147 |
148 server = make_server(host, port, wrapper) | 148 server = make_server(host, port, wrapper) |
149 print " * Running on http://%s:%i/" % server.server_address | 149 print " * Running on http://%s:%i/" % server.server_address |
150 server.serve_forever() | 150 server.serve_forever() |
151 | 151 |
152 run("localhost", 5000, handler, use_reloader=True, use_debugger=True) | 152 run("localhost", 5000, handler, use_reloader=True, use_debugger=True) |
OLD | NEW |