from flask import Flask import datetime app = Flask(__name__) # We request users to send the run number to prevent accidentially getting old requests from a previous run # This maybe will give to much errors from people forgetting to change their number # Remove it? # TODO # Save and read from a file to persist over reboots # Save progress through time during 1 run # Save result of different runs db = { "current_run": 0, "run_start_timer": None, "run_data": { } } @app.route("/") def index(): return "Okay" @app.route("/start_run/") def start_run(run_index): db["current_run"] = run_index starttime = datetime.datetime.now() db["run_data"][run_index] = { "starttime": starttime, "data": {} } # TODO send start request to the first person in the chain. Probably a zeus part already written as example return f'Run {run_index} started at {starttime}' @app.route("/checkpoint/start//") def checkpoint_start(run, index): if db["current_run"] != run: return "Wrong run number, you are probably behind.", 404 else: db["run_data"][run]["data"][index]["start"] = datetime.datetime.now() return "Success." @app.route("/checkpoint/handoff//") def checkpoint_handoff(run, index): if db["current_run"] != run: return "Wrong run number, you are probably behind.", 404 else: db["run_data"][run]["data"][index]["handoff"] = datetime.datetime.now() return "Success." if __name__ == "__main__": app.run(debug=True)