diff --git a/app.py b/app.py new file mode 100644 index 0000000..bec45cb --- /dev/null +++ b/app.py @@ -0,0 +1,33 @@ +from flask import Flask, render_template, jsonify +import threading +import time + +app = Flask(__name__) +current_state = "red" +lock = threading.Lock() + +def reset_to_red(): + global current_state + time.sleep(10) + with lock: + current_state = "red" + +@app.route("/") +def index(): + return render_template("site_template.j2", state=current_state) + +@app.route("/status") +def status(): + return jsonify({"state": current_state}) + +@app.route("/toggle", methods=["POST"]) +def toggle(): + global current_state + with lock: + if current_state != "green": + current_state = "green" + threading.Thread(target=reset_to_red, daemon=True).start() + return jsonify({"state": current_state}) + +if __name__ == "__main__": + app.run(host="0.0.0.0", port=8000)