From 3dd0b65ceb785433e1c8ac25ab100188fa4a3aa1 Mon Sep 17 00:00:00 2001 From: Mawoka Date: Wed, 11 Oct 2023 15:31:54 +0200 Subject: [PATCH] :bug: Fixed Controller answering multiple times --- classquiz/routers/box_controller/embedded/socket.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/classquiz/routers/box_controller/embedded/socket.py b/classquiz/routers/box_controller/embedded/socket.py index 050bc1f..44d17bf 100644 --- a/classquiz/routers/box_controller/embedded/socket.py +++ b/classquiz/routers/box_controller/embedded/socket.py @@ -120,8 +120,10 @@ async def websocket_endpoint(ws: WebSocket, game_id: str): except (KeyError, AttributeError): await ws.send_text(WebSocketRequest(type=WebSocketTypes.Error, data="InvalidButton").json()) continue + if await redis.get(f"answer_given:{player_id}:{answer_index}") is not None: + continue + await redis.set(f"answer_given:{player_id}:{answer_index}", "True", ex=600) await submit_answer_fn(answer_index, game_pin, player_id, now) - print(f"Data from client {game_id}: {data}") except WebSocketDisconnect as ex: print(f"Client {game_id} is disconnected: {ex}")