diff options
author | 2013-10-03 19:21:05 +0200 | |
---|---|---|
committer | 2013-10-03 19:21:05 +0200 | |
commit | a8d3e8341eee6af4c778f512d7f8584c476d49fe (patch) | |
tree | 777681f695f64488c4aa5e869cf937112077befc /pyload/web/setup_app.py | |
parent | small bug fixes (diff) | |
download | pyload-a8d3e8341eee6af4c778f512d7f8584c476d49fe.tar.xz |
basically working web setup
Diffstat (limited to 'pyload/web/setup_app.py')
-rw-r--r-- | pyload/web/setup_app.py | 47 |
1 files changed, 45 insertions, 2 deletions
diff --git a/pyload/web/setup_app.py b/pyload/web/setup_app.py index 5163f9cc6..680c5ae89 100644 --- a/pyload/web/setup_app.py +++ b/pyload/web/setup_app.py @@ -3,26 +3,69 @@ from time import time +from pyload.utils import json_dumps + from bottle import route, request, response, HTTPError, redirect from webinterface import PROJECT_DIR, SETUP from utils import add_json_header +# returns http error +def error(code, msg): + return HTTPError(code, json_dumps(msg), **dict(response.headers)) + + def setup_required(func): def _view(*args, **kwargs): + global timestamp + # setup needs to be running if SETUP is None: - redirect("/nopermission") + return error(404, "Not Found") + + # setup finished + if timestamp == 0: + return error(409, "Done") + + # setup timed out due to inactivity + if timestamp + TIMEOUT * 60 < time(): + return error(410, "Timeout") + + timestamp = time() return func(*args, **kwargs) + return _view # setup will close after inactivity TIMEOUT = 15 timestamp = time() + @route("/setup") @setup_required def setup(): - pass # TODO + add_json_header(response) + + return json_dumps({ + "system": SETUP.check_system(), + "deps": SETUP.check_deps() + }) + + +@route("/setup_done") +@setup_required +def setup_done(): + global timestamp + add_json_header(response) + + SETUP.addUser( + request.params['user'], + request.params['password'] + ) + + # mark setup as finished + timestamp = 0 + + return error(409, "Done") |