| @@ -27,18 +27,21 @@ def write_access_log(response): | |||||
| @app.route("/") | @app.route("/") | ||||
| def index(): | def index(): | ||||
| cookies = parse_cookies(request.environ) | |||||
| return render_template("index.mako", environ=request.environ, cookies=cookies) | |||||
| root = request.environ["SCRIPT_NAME"] | |||||
| cookies = parse_cookies(root, request.environ.get("HTTP_COOKIE")) | |||||
| return render_template("index.mako", root=root, environ=request.environ, cookies=cookies) | |||||
| @app.route("/settings") | @app.route("/settings") | ||||
| def settings(): | def settings(): | ||||
| cookies = parse_cookies(request.environ) | |||||
| return render_template("settings.mako", environ=request.environ, cookies=cookies) | |||||
| root = request.environ["SCRIPT_NAME"] | |||||
| cookies = parse_cookies(root, request.environ.get("HTTP_COOKIE")) | |||||
| return render_template("settings.mako", root=root, environ=request.environ, cookies=cookies) | |||||
| @app.route("/debug") | @app.route("/debug") | ||||
| def debug(): | def debug(): | ||||
| cookies = parse_cookies(request.environ) | |||||
| return render_template("debug.mako", environ=request.environ, cookies=cookies) | |||||
| root = request.environ["SCRIPT_NAME"] | |||||
| cookies = parse_cookies(root, request.environ.get("HTTP_COOKIE")) | |||||
| return render_template("debug.mako", root=root, environ=request.environ, cookies=cookies) | |||||
| if __name__ == '__main__': | if __name__ == '__main__': | ||||
| WSGIServer(app).run() | WSGIServer(app).run() | ||||
| @@ -3,16 +3,15 @@ | |||||
| import base64 | import base64 | ||||
| from Cookie import CookieError, SimpleCookie | from Cookie import CookieError, SimpleCookie | ||||
| from datetime import datetime, timedelta | from datetime import datetime, timedelta | ||||
| from os import path | |||||
| class _CookieManager(SimpleCookie): | class _CookieManager(SimpleCookie): | ||||
| MAGIC = "--cpv2" | MAGIC = "--cpv2" | ||||
| def __init__(self, environ): | |||||
| self._path = path.dirname(environ["SCRIPT_NAME"]) | |||||
| def __init__(self, path, cookies): | |||||
| self._path = path | |||||
| try: | try: | ||||
| super(_CookieManager, self).__init__(environ["HTTP_COOKIE"]) | |||||
| except (CookieError, KeyError): | |||||
| super(_CookieManager, self).__init__(cookies) | |||||
| except CookieError: | |||||
| super(_CookieManager, self).__init__() | super(_CookieManager, self).__init__() | ||||
| for cookie in self.keys(): | for cookie in self.keys(): | ||||
| if self[cookie].value is False: | if self[cookie].value is False: | ||||
| @@ -38,8 +37,8 @@ class _CookieManager(SimpleCookie): | |||||
| return self._path | return self._path | ||||
| def parse_cookies(environ): | |||||
| return _CookieManager(environ) | |||||
| def parse_cookies(path, cookies): | |||||
| return _CookieManager(path, cookies) | |||||
| def set_cookie(headers, cookies, key, value, days=0): | def set_cookie(headers, cookies, key, value, days=0): | ||||
| cookies[key] = value | cookies[key] = value | ||||
| @@ -1,4 +1,4 @@ | |||||
| <%include file="/support/header.mako" args="environ=environ, cookies=cookies, title='Debug - Earwig\'s Copyvio Detector'"/> | |||||
| <%include file="/support/header.mako" args="title='Debug - Earwig\'s Copyvio Detector', root=root, cookies=cookies"/> | |||||
| <ul> | <ul> | ||||
| % for key, value in environ.items(): | % for key, value in environ.items(): | ||||
| % if key not in ["wsgi.input", "wsgi.errors", "PATH"]: | % if key not in ["wsgi.input", "wsgi.errors", "PATH"]: | ||||
| @@ -8,4 +8,4 @@ | |||||
| % endif | % endif | ||||
| % endfor | % endfor | ||||
| </ul> | </ul> | ||||
| <%include file="/support/footer.mako" args="environ=environ, cookies=cookies"/> | |||||
| <%include file="/support/footer.mako" args="cookies=cookies"/> | |||||
| @@ -1,4 +1,4 @@ | |||||
| <%include file="/support/header.mako" args="environ=environ, cookies=cookies, title='Earwig\'s Copyvio Detector'"/>\ | |||||
| <%include file="/support/header.mako" args="title='Earwig\'s Copyvio Detector', root=root, cookies=cookies"/> | |||||
| <%namespace module="copyvios" import="main, highlight_delta"/>\ | <%namespace module="copyvios" import="main, highlight_delta"/>\ | ||||
| <%namespace module="copyvios.misc" import="urlstrip"/>\ | <%namespace module="copyvios.misc" import="urlstrip"/>\ | ||||
| <% | <% | ||||
| @@ -158,4 +158,4 @@ | |||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| % endif | % endif | ||||
| <%include file="/support/footer.mako" args="environ=environ, cookies=cookies"/> | |||||
| <%include file="/support/footer.mako" args="cookies=cookies"/> | |||||
| @@ -1,6 +1,6 @@ | |||||
| <%namespace module="copyvios.settings" import="main"/>\ | <%namespace module="copyvios.settings" import="main"/>\ | ||||
| <% bot, status, langs, projects = main(environ, headers, cookies) %>\ | <% bot, status, langs, projects = main(environ, headers, cookies) %>\ | ||||
| <%include file="/support/header.mako" args="environ=environ, cookies=cookies, title='Settings - Earwig\'s Copyvio Detector'"/>\ | |||||
| <%include file="/support/header.mako" args="title='Settings - Earwig\'s Copyvio Detector', root=root, cookies=cookies"/> | |||||
| <%! from json import dumps, loads %>\ | <%! from json import dumps, loads %>\ | ||||
| % if status: | % if status: | ||||
| <div id="info-box" class="green-box"> | <div id="info-box" class="green-box"> | ||||
| @@ -106,4 +106,4 @@ | |||||
| % else: | % else: | ||||
| <p>No cookies!</p> | <p>No cookies!</p> | ||||
| % endif | % endif | ||||
| <%include file="/support/footer.mako" args="environ=environ, cookies=cookies"/> | |||||
| <%include file="/support/footer.mako" args="cookies=cookies"/> | |||||
| @@ -1,4 +1,4 @@ | |||||
| <%page args="environ, cookies"/>\ | |||||
| <%page args="cookies"/>\ | |||||
| <%namespace module="copyvios.background" import="get_desc_url"/>\ | <%namespace module="copyvios.background" import="get_desc_url"/>\ | ||||
| </div> | </div> | ||||
| <div id="footer"> | <div id="footer"> | ||||
| @@ -1,6 +1,5 @@ | |||||
| <%page args="environ, cookies, title"/>\ | |||||
| <%page args="title, root, cookies"/>\ | |||||
| <%namespace module="copyvios.background" import="set_background"/>\ | <%namespace module="copyvios.background" import="set_background"/>\ | ||||
| <% root = environ["SCRIPT_NAME"] %>\ | |||||
| <!DOCTYPE html> | <!DOCTYPE html> | ||||
| <html lang="en"> | <html lang="en"> | ||||
| <head> | <head> | ||||