From b9dd66311392382fa22da33a9566268473a37b0f Mon Sep 17 00:00:00 2001 From: simoncreates Date: Tue, 3 Mar 2026 20:19:47 +0100 Subject: [PATCH] reverted to older state to reintroduce louis changes --- app/sockets/socket.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/app/sockets/socket.py b/app/sockets/socket.py index bbd708b..10065a7 100644 --- a/app/sockets/socket.py +++ b/app/sockets/socket.py @@ -2,15 +2,16 @@ import random import string import time from dataclasses import dataclass, field +from datetime import datetime from threading import Lock from typing import Optional -import chess -from chess_sim.game_board import ChessBoard, Color, Outcome +from chess_sim.game_board import ChessBoard, Outcome, Color from flask_login import current_user from flask import request from flask_socketio import emit, join_room, leave_room from app import sIO +from app.models.game import save_finished_game from .types import validate_client_event @@ -18,10 +19,12 @@ from .types import validate_client_event class GameRoom: code: str p1_sid: str + p1_user_id: int p1_name: str p1_pref: str time_mode: str p2_sid: Optional[str] = None + p2_user_id: Optional[int] = None p2_name: Optional[str] = None ready: dict[str, bool] = field(default_factory=dict) board: ChessBoard = ChessBoard.init_default() @@ -33,6 +36,10 @@ class GameRoom: active_since: Optional[float] = None game_active: bool = False completed: bool = False + move_history: list[str] = field(default_factory=list) + started_at: Optional[str] = None + ended_at: Optional[str] = None + saved_game_id: Optional[int] = None games_by_code: dict[str, GameRoom] = {} @@ -74,6 +81,10 @@ def _room_for_sid(sid: str) -> Optional[GameRoom]: return games_by_code.get(code) +def _timestamp_now() -> str: + return datetime.now().strftime("%Y-%m-%d %H:%M:%S") + + def _sid_for_color(room: GameRoom, color: str) -> Optional[str]: for sid, c in room.color_by_sid.items(): if c == color: