diff --git a/src/clock.py b/src/clock.py index 4091949c..de358e27 100644 --- a/src/clock.py +++ b/src/clock.py @@ -10,9 +10,15 @@ from src.display_manager import DisplayManager logger = logging.getLogger(__name__) class Clock: - def __init__(self, display_manager: DisplayManager = None): - self.config_manager = ConfigManager() - self.config = self.config_manager.load_config() + def __init__(self, display_manager: DisplayManager = None, config: Dict[str, Any] = None): + if config is not None: + # Use provided config + self.config = config + self.config_manager = None # Not needed when config is provided + else: + # Fallback: create ConfigManager and load config (for standalone usage) + self.config_manager = ConfigManager() + self.config = self.config_manager.load_config() # Use the provided display_manager or create a new one if none provided self.display_manager = display_manager or DisplayManager(self.config.get('display', {})) logger.info("Clock initialized with display_manager: %s", id(self.display_manager)) diff --git a/src/display_controller.py b/src/display_controller.py index d78c0047..c52a7350 100644 --- a/src/display_controller.py +++ b/src/display_controller.py @@ -56,7 +56,7 @@ class DisplayController: # Initialize display modes init_time = time.time() - self.clock = Clock(self.display_manager) if self.config.get('clock', {}).get('enabled', True) else None + self.clock = Clock(self.display_manager, self.config) if self.config.get('clock', {}).get('enabled', True) else None self.weather = WeatherManager(self.config, self.display_manager) if self.config.get('weather', {}).get('enabled', False) else None self.stocks = StockManager(self.config, self.display_manager) if self.config.get('stocks', {}).get('enabled', False) else None self.news = StockNewsManager(self.config, self.display_manager) if self.config.get('stock_news', {}).get('enabled', False) else None @@ -66,7 +66,7 @@ class DisplayController: self.youtube = YouTubeDisplay(self.display_manager, self.config) if self.config.get('youtube', {}).get('enabled', False) else None self.text_display = TextDisplay(self.display_manager, self.config) if self.config.get('text_display', {}).get('enabled', False) else None self.of_the_day = OfTheDayManager(self.display_manager, self.config) if self.config.get('of_the_day', {}).get('enabled', False) else None - self.news_manager = NewsManager(self.config, self.display_manager) if self.config.get('news_manager', {}).get('enabled', False) else None + self.news_manager = NewsManager(self.config, self.display_manager, self.config_manager) if self.config.get('news_manager', {}).get('enabled', False) else None logger.info(f"Calendar Manager initialized: {'Object' if self.calendar else 'None'}") logger.info(f"Text Display initialized: {'Object' if self.text_display else 'None'}") logger.info(f"OfTheDay Manager initialized: {'Object' if self.of_the_day else 'None'}") diff --git a/src/leaderboard_manager.py b/src/leaderboard_manager.py index cbc68897..bf75db36 100644 --- a/src/leaderboard_manager.py +++ b/src/leaderboard_manager.py @@ -58,7 +58,8 @@ class LeaderboardManager: # Initialize managers self.cache_manager = CacheManager() - self.config_manager = ConfigManager() + # Store reference to config instead of creating new ConfigManager + self.config = config # State variables self.last_update = 0 diff --git a/src/mlb_manager.py b/src/mlb_manager.py index 74e15d09..56d1b752 100644 --- a/src/mlb_manager.py +++ b/src/mlb_manager.py @@ -29,7 +29,8 @@ class BaseMLBManager: def __init__(self, config: Dict[str, Any], display_manager, cache_manager: CacheManager): self.config = config self.display_manager = display_manager - self.config_manager = ConfigManager() + # Store reference to config instead of creating new ConfigManager + self.config_manager = None # Not used in this class self.mlb_config = config.get('mlb', {}) self.show_odds = self.mlb_config.get("show_odds", False) self.favorite_teams = self.mlb_config.get('favorite_teams', []) diff --git a/src/nba_managers.py b/src/nba_managers.py index 8f3ae15f..4a873f21 100644 --- a/src/nba_managers.py +++ b/src/nba_managers.py @@ -43,10 +43,11 @@ class BaseNBAManager: def __init__(self, config: Dict[str, Any], display_manager: DisplayManager, cache_manager: CacheManager): self.display_manager = display_manager - self.config_manager = ConfigManager() + # Store reference to config instead of creating new ConfigManager + self.config_manager = None # Not used in this class self.config = config self.cache_manager = cache_manager - self.odds_manager = OddsManager(self.cache_manager, self.config_manager) + self.odds_manager = OddsManager(self.cache_manager, None) self.logger = logging.getLogger(__name__) self.nba_config = config.get("nba_scoreboard", {}) self.is_enabled = self.nba_config.get("enabled", False) diff --git a/src/ncaa_baseball_managers.py b/src/ncaa_baseball_managers.py index 9f48a2a8..fe20b7ef 100644 --- a/src/ncaa_baseball_managers.py +++ b/src/ncaa_baseball_managers.py @@ -24,7 +24,8 @@ class BaseNCAABaseballManager: def __init__(self, config: Dict[str, Any], display_manager, cache_manager: CacheManager): self.config = config self.display_manager = display_manager - self.config_manager = ConfigManager() + # Store reference to config instead of creating new ConfigManager + self.config_manager = None # Not used in this class self.ncaa_baseball_config = config.get('ncaa_baseball_scoreboard', {}) self.show_odds = self.ncaa_baseball_config.get('show_odds', False) self.show_records = self.ncaa_baseball_config.get('show_records', False) diff --git a/src/ncaam_basketball_managers.py b/src/ncaam_basketball_managers.py index 66107571..4dd3f7c1 100644 --- a/src/ncaam_basketball_managers.py +++ b/src/ncaam_basketball_managers.py @@ -43,10 +43,11 @@ class BaseNCAAMBasketballManager: def __init__(self, config: Dict[str, Any], display_manager: DisplayManager, cache_manager: CacheManager): self.display_manager = display_manager - self.config_manager = ConfigManager() + # Store reference to config instead of creating new ConfigManager + self.config_manager = None # Not used in this class self.config = config self.cache_manager = cache_manager - self.odds_manager = OddsManager(self.cache_manager, self.config_manager) + self.odds_manager = OddsManager(self.cache_manager, None) self.logger = logging.getLogger(__name__) self.ncaam_basketball_config = config.get("ncaam_basketball_scoreboard", {}) self.is_enabled = self.ncaam_basketball_config.get("enabled", False) diff --git a/src/news_manager.py b/src/news_manager.py index 50a5b9ae..f198083f 100644 --- a/src/news_manager.py +++ b/src/news_manager.py @@ -29,9 +29,10 @@ logging.basicConfig(level=logging.INFO) logger = logging.getLogger(__name__) class NewsManager: - def __init__(self, config: Dict[str, Any], display_manager): + def __init__(self, config: Dict[str, Any], display_manager, config_manager=None): self.config = config - self.config_manager = ConfigManager() + # Use provided config_manager or create a new one if none provided + self.config_manager = config_manager or ConfigManager() self.display_manager = display_manager self.news_config = config.get('news_manager', {}) self.last_update = time.time() # Initialize to current time diff --git a/src/nfl_managers.py b/src/nfl_managers.py index 5d2f7ac2..16b65101 100644 --- a/src/nfl_managers.py +++ b/src/nfl_managers.py @@ -37,10 +37,11 @@ class BaseNFLManager: # Renamed class def __init__(self, config: Dict[str, Any], display_manager: DisplayManager, cache_manager: CacheManager): self.display_manager = display_manager - self.config_manager = ConfigManager() + # Store reference to config instead of creating new ConfigManager + self.config_manager = None # Not used in this class self.config = config self.cache_manager = cache_manager - self.odds_manager = OddsManager(self.cache_manager, self.config_manager) + self.odds_manager = OddsManager(self.cache_manager, None) self.logger = logging.getLogger(__name__) self.nfl_config = config.get("nfl_scoreboard", {}) # Changed config key self.is_enabled = self.nfl_config.get("enabled", False) diff --git a/src/nhl_managers.py b/src/nhl_managers.py index e39cf966..b281abe0 100644 --- a/src/nhl_managers.py +++ b/src/nhl_managers.py @@ -42,10 +42,11 @@ class BaseNHLManager: def __init__(self, config: Dict[str, Any], display_manager: DisplayManager, cache_manager: CacheManager): self.display_manager = display_manager - self.config_manager = ConfigManager() + # Store reference to config instead of creating new ConfigManager + self.config_manager = None # Not used in this class self.config = config self.cache_manager = cache_manager - self.odds_manager = OddsManager(self.cache_manager, self.config_manager) + self.odds_manager = OddsManager(self.cache_manager, None) self.logger = logging.getLogger(__name__) self.nhl_config = config.get("nhl_scoreboard", {}) self.is_enabled = self.nhl_config.get("enabled", False) diff --git a/src/odds_ticker_manager.py b/src/odds_ticker_manager.py index e153b88a..351fd322 100644 --- a/src/odds_ticker_manager.py +++ b/src/odds_ticker_manager.py @@ -107,7 +107,8 @@ class OddsTickerManager: # Initialize managers self.cache_manager = CacheManager() - self.odds_manager = OddsManager(self.cache_manager, ConfigManager()) + # OddsManager doesn't actually use the config_manager parameter, so pass None + self.odds_manager = OddsManager(self.cache_manager, None) # State variables self.last_update = 0 diff --git a/src/soccer_managers.py b/src/soccer_managers.py index a5bde061..a0b27fc9 100644 --- a/src/soccer_managers.py +++ b/src/soccer_managers.py @@ -61,12 +61,13 @@ class BaseSoccerManager: def __init__(self, config: Dict[str, Any], display_manager: DisplayManager, cache_manager: CacheManager): self.display_manager = display_manager - self.config_manager = ConfigManager() + # Store reference to config instead of creating new ConfigManager + self.config_manager = None # Not used in this class self.config = config self.soccer_config = config.get("soccer_scoreboard", {}) # Use 'soccer_scoreboard' config BaseSoccerManager._soccer_config_shared = self.soccer_config # Store for class methods self.cache_manager = cache_manager - self.odds_manager = OddsManager(self.cache_manager, self.config_manager) + self.odds_manager = OddsManager(self.cache_manager, None) self.is_enabled = self.soccer_config.get("enabled", False) self.show_odds = self.soccer_config.get("show_odds", False) self.test_mode = self.soccer_config.get("test_mode", False) diff --git a/src/stock_news_manager.py b/src/stock_news_manager.py index debe6eb8..2ab85f3d 100644 --- a/src/stock_news_manager.py +++ b/src/stock_news_manager.py @@ -29,7 +29,8 @@ logger = logging.getLogger(__name__) class StockNewsManager: def __init__(self, config: Dict[str, Any], display_manager): self.config = config - self.config_manager = ConfigManager() + # Store reference to config instead of creating new ConfigManager + self.config_manager = None # Not used in this class self.display_manager = display_manager self.stocks_config = config.get('stocks', {}) self.stock_news_config = config.get('stock_news', {})