From 12a63e35238a9463115068d93527334dc625a871 Mon Sep 17 00:00:00 2001 From: DarkSlein Date: Thu, 22 May 2025 11:38:55 +0300 Subject: [PATCH] Rewrote websocket --- run.bat | 13 +++++++ setup.bat | 48 +++++++++++++++++++++++++ src/controllers/websocket_controller.py | 21 +++++++---- 3 files changed, 76 insertions(+), 6 deletions(-) create mode 100644 run.bat create mode 100644 setup.bat diff --git a/run.bat b/run.bat new file mode 100644 index 0000000..bd86cf0 --- /dev/null +++ b/run.bat @@ -0,0 +1,13 @@ +@echo off +cd %~dp0 + +if not exist "venv" ( + echo Virtual environment not found. + echo Please run setup.py to create the virtual environment. + pause + exit /b +) + +call venv/Scripts/activate +python src/app.py +pause \ No newline at end of file diff --git a/setup.bat b/setup.bat new file mode 100644 index 0000000..1bedb79 --- /dev/null +++ b/setup.bat @@ -0,0 +1,48 @@ +@echo off +python --version >nul 2>&1 +if %errorlevel% neq 0 ( + echo Python is not installed. Please install Python and ensure it's in your PATH. + pause + exit /b +) + +ping -n 1 www.google.com >nul 2>&1 +if %errorlevel% neq 0 ( + echo No internet connection detected. Please connect to the internet and try again. + pause + exit /b +) + +echo Installing virtual environment package... +python -m pip install virtualenv >nul 2>&1 +if %errorlevel% neq 0 ( + echo Failed to install virtualenv. Please check your Python installation or internet connection. + pause + exit /b +) + +echo Creating virtual environment... +python -m venv venv +if %errorlevel% neq 0 ( + echo Failed to create virtual environment. Please check your Python installation. + pause + exit /b +) + +echo Activating virtual environment... +call venv\Scripts\activate.bat +if %errorlevel% neq 0 ( + echo Failed to activate virtual environment. Please check your setup. + pause + exit /b +) + +python -m pip install -r requirements.txt +if %errorlevel% neq 0 ( + echo Failed to install required packages. Please check requirements.txt or internet connection. + pause + exit /b +) + +echo Setup completed successfully. +pause \ No newline at end of file diff --git a/src/controllers/websocket_controller.py b/src/controllers/websocket_controller.py index f72b44f..2a24136 100644 --- a/src/controllers/websocket_controller.py +++ b/src/controllers/websocket_controller.py @@ -1,5 +1,5 @@ from flask_jwt_extended import get_jwt_identity, jwt_required -from flask_socketio import emit +from flask_socketio import emit, join_room from infra.server import socketio from repos.reservation_repo import ReservationRepository @@ -16,12 +16,21 @@ def handle_disconnect(): print('Client disconnected') @socketio.on('subscribe_reservations') -#@jwt_required() def handle_subscribe(data): room_id = data.get('room_id') - reservations = [] # ReservationRepository.list_all({'room_id': room_id}) + date = data.get('date') + room = f"{room_id}_{date}" + join_room(room) + reservations = ReservationRepository.list_all({ + 'room_id': room_id, + 'date': date + }) emit('reservations_update', reservations) -def notify_clients(room_id): - reservations = [] # ReservationRepository.list_all({'room_id': room_id}) - socketio.emit('reservations_update', reservations, room=room_id) +def notify_clients(room_id, date): + room = f"{room_id}_{date}" + reservations = ReservationRepository.list_all({ + 'room_id': room_id, + 'date': date + }) + socketio.emit('reservations_update', reservations, room=room) \ No newline at end of file