Add websocket settings endpoint

This commit is contained in:
jimmy 2025-05-12 22:22:05 +12:00
parent cee8c20176
commit 0c219e0697
1 changed files with 9 additions and 7 deletions

View File

@ -24,18 +24,20 @@ def web(settings, patterns):
@app.post("/settings")
def settings_handler(request):
# Keep the POST handler for compatibility or alternative usage if needed
# For WebSocket updates, the /ws handler is now primary
return set_settings(request.body.decode('utf-8'), settings, patterns)
@app.route("/external")
@app.route("/ws")
@with_websocket
async def ws(request, ws):
patterns.select("external")
while True:
data = await ws.receive()
print(data)
for i in range(min(patterns.num_leds, int(len(data)/3))):
patterns.set(i, (data[i*3], data[i*3+1], data[i*3+2]))
patterns.write()
if data:
# Process the received data
_, status_code = set_settings(data, settings, patterns)
await ws.send(status_code)
else:
break
return app