From b99ddb4525ff82acd3b6dfc929fa8da6361558de Mon Sep 17 00:00:00 2001 From: kbe Date: Mon, 21 Jul 2025 02:26:32 +0200 Subject: [PATCH] docs: More comments on files --- book_crossfit.py | 12 ++++++++---- session_config.py | 44 ++++++++++++++++++++++++++++++-------------- 2 files changed, 38 insertions(+), 18 deletions(-) diff --git a/book_crossfit.py b/book_crossfit.py index 4e4ff21..fabd0e7 100755 --- a/book_crossfit.py +++ b/book_crossfit.py @@ -14,15 +14,19 @@ if __name__ == "__main__": ] ) + # Reduce the verbosity of the requests library's logging logging.getLogger("requests").setLevel(logging.WARNING) logging.info("Logging enhanced with request library noise reduction") - - # Start the main runner + + # Create an instance of the CrossFitBooker class booker = CrossFitBooker() + + # Attempt to log in to the CrossFit booking system if not booker.login(): + # If login fails, log the error and exit the script logging.error("Failed to login - Traceback: %s", traceback.format_exc()) exit(1) - # Start continuous booking loop + # Start the continuous booking loop booker.run() - logging.info("Script completed") \ No newline at end of file + logging.info("Script completed") diff --git a/session_config.py b/session_config.py index 8bdcd9f..0cd9340 100644 --- a/session_config.py +++ b/session_config.py @@ -8,10 +8,13 @@ class SessionConfig: """ @staticmethod - def load_preferred_sessions(): + def load_preferred_sessions(config_file="preferred_sessions.json"): """ Load preferred sessions from a JSON file. + Args: + config_file (str): Path to the JSON file containing preferred sessions. + Returns: List[Tuple[int, str, str]]: List of preferred sessions in the format (day_of_week, start_time, session_name_contains) @@ -19,23 +22,36 @@ class SessionConfig: preferred_sessions = [] try: - with open("preferred_sessions.json", "r") as f: + # Attempt to open and read the JSON file + with open(config_file, "r") as f: data = json.load(f) + + # Validate and parse each item in the JSON data for item in data: - day_of_week = item.get("day_of_week", 0) - start_time = item.get("start_time", "00:00") - session_name_contains = item.get("session_name_contains", "") + day_of_week = item.get("day_of_week", 0) # Default to Monday if not specified + start_time = item.get("start_time", "00:00") # Default to midnight if not specified + session_name_contains = item.get("session_name_contains", "") # Default to empty string if not specified + + # Append the parsed session to the list preferred_sessions.append((day_of_week, start_time, session_name_contains)) - except (FileNotFoundError, json.JSONDecodeError) as e: - logging.warning(f"Failed to load preferred sessions from file: {str(e)}") - # Fall back to default hardcoded sessions - # preferred_sessions = [ - # (2, "18:30", "CONDITIONING"), # Wednesday 18:30 CONDITIONING - # (4, "17:00", "WEIGHTLIFTING"), # Friday 17:00 WEIGHTLIFTING - # (5, "12:30", "HYROX"), # Saturday 12:30 HYROX - # ] + + except FileNotFoundError: + # Log a warning if the file is not found + logging.warning(f"Configuration file '{config_file}' not found. Falling back to default settings.") + + except json.JSONDecodeError: + # Log a warning if the file is not a valid JSON + logging.warning(f"Failed to decode JSON from file '{config_file}'. Falling back to default settings.") + + # Fallback to default hardcoded sessions if no valid sessions were loaded + if not preferred_sessions: + preferred_sessions = [ + (2, "18:30", "CONDITIONING"), # Wednesday 18:30 CONDITIONING + (4, "17:00", "WEIGHTLIFTING"), # Friday 17:00 WEIGHTLIFTING + (5, "12:30", "HYROX"), # Saturday 12:30 HYROX + ] return preferred_sessions # Load preferred sessions using the SessionConfig class -PREFERRED_SESSIONS = SessionConfig.load_preferred_sessions() \ No newline at end of file +PREFERRED_SESSIONS = SessionConfig.load_preferred_sessions()