Add external session preference #3

Merged
kbe merged 5 commits from develop into main 2025-07-20 15:32:47 +00:00
Showing only changes of commit c437f908ac - Show all commits

42
session_config.py Normal file
View File

@@ -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()