60 lines
1.9 KiB
Python
60 lines
1.9 KiB
Python
import datetime
|
|
|
|
from flask import Flask, render_template
|
|
|
|
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 render_template('index.html')
|
|
|
|
|
|
@app.route("/start_run/<run_index>")
|
|
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("/link/start/<run>/<index>")
|
|
def link_start(run, index):
|
|
if db["current_run"] != run:
|
|
return "Wrong run number, you are probably behind.", 404
|
|
else:
|
|
link_data = db["run_data"][run]["data"][index]
|
|
if link_data["start"]:
|
|
return "you already started in this run. Ignoring this request."
|
|
else:
|
|
link_data["start"] = datetime.datetime.now()
|
|
return "Success."
|
|
|
|
|
|
@app.route("/link/handoff/<run>/<index>")
|
|
def link_handoff(run, index):
|
|
if db["current_run"] != run:
|
|
return "Wrong run number, you are probably behind.", 404
|
|
else:
|
|
link_data = db["run_data"][run]["data"][index]
|
|
if link_data["handoff"]:
|
|
return "you already handed off control during this run. Ignoring this request"
|
|
else:
|
|
link_data["handoff"] = datetime.datetime.now()
|
|
return "Success."
|
|
|
|
|
|
if __name__ == '__main__':
|
|
app.run(host="0.0.0.0",debug=True)
|