From 3f406f141753a72de98af03db4bc1c7dc7a8b2a1 Mon Sep 17 00:00:00 2001 From: NoeBerdoz Date: Sat, 12 Apr 2025 14:00:11 +0200 Subject: [PATCH] enhance store files naming --- services/player.py | 10 ++++++++-- utils/storage/game_files_manager.py | 4 ++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/services/player.py b/services/player.py index 3a142f2..a1634f3 100644 --- a/services/player.py +++ b/services/player.py @@ -36,7 +36,6 @@ class Player: decision = self.make_decision(start_response.client_data) decision_counter = 0 - store_game_round_data(start_response, decision_counter, str(start_response.session_id)) while status not in ['gameover', 'complete']: payload = GameDecisionRequestDTO( @@ -50,12 +49,19 @@ class Player: status = decision_response.status decision = self.make_decision(decision_response.client_data) - store_game_round_data(decision_response, decision_counter, str(start_response.session_id)) + # Handle first response from game initialization logic + if decision_counter == 0: + # Store start response + store_game_round_data(decision, start_response, decision_counter, str(start_response.session_id) ,status) + else: + # store ongoing decision response + store_game_round_data(decision, decision_response, decision_counter, str(start_response.session_id), status) decision_counter += 1 time.sleep(1.5) + def make_decision(self, client_data: Dict[str, Any]) -> Literal["Accept", "Reject"]: # Do your magic! diff --git a/utils/storage/game_files_manager.py b/utils/storage/game_files_manager.py index d052d07..adc638f 100644 --- a/utils/storage/game_files_manager.py +++ b/utils/storage/game_files_manager.py @@ -10,7 +10,7 @@ GAME_FILES_DIR = config.GAME_FILES_DIR # Define padding for round numbers (e.g., 6 digits for up to 999,999 rounds) FOLDER_ROUND_PADDING = 6 -def store_game_round_data(response: GameStartResponseDTO | GameDecisionResponseDTO, round_number: int, session_id: str): +def store_game_round_data(decision: str, response: GameStartResponseDTO | GameDecisionResponseDTO, round_number: int, session_id: str, status: str): """ Logs structured response data and saves associated client files. """ @@ -18,7 +18,7 @@ def store_game_round_data(response: GameStartResponseDTO | GameDecisionResponseD try: padded_round = str(round_number).zfill(FOLDER_ROUND_PADDING) - round_folder_name = f"{padded_round}_decision" + round_folder_name = f"{padded_round}_decision_{decision.lower()}_{status.lower()}" # Construct the directory path: base_dir / session_id / decision_XXXXXX round_dir = os.path.join(GAME_FILES_DIR, str(session_id), round_folder_name)