diff --git a/session_config.py b/session_config.py new file mode 100644 index 0000000..99a4141 --- /dev/null +++ b/session_config.py @@ -0,0 +1,42 @@ +import json +import logging +from typing import List, Tuple + +# Class to handle session configuration +class SessionConfig: + """ + Class to handle loading and managing preferred sessions configuration. + """ + + @staticmethod + def load_preferred_sessions(): + """ + Load preferred sessions from a JSON file. + + Returns: + List[Tuple[int, str, str]]: List of preferred sessions in the format + (day_of_week, start_time, session_name_contains) + """ + preferred_sessions = [] + + try: + with open("preferred_sessions.json", "r") as f: + data = json.load(f) + 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", "") + 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 + # ] + + return preferred_sessions + +# Load preferred sessions using the SessionConfig class +PREFERRED_SESSIONS = SessionConfig.load_preferred_sessions() \ No newline at end of file