From ec089cae994b8fcd953fb0efdce1a033fdc478cb Mon Sep 17 00:00:00 2001 From: ChuckBuilds <33324927+ChuckBuilds@users.noreply.github.com> Date: Sun, 25 May 2025 19:21:01 -0500 Subject: [PATCH] reduce logging frequency to make more sense of changes --- requirements.txt | 2 +- src/music_manager.py | 7 ++++++- src/ytm_client.py | 9 +++++++-- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/requirements.txt b/requirements.txt index 788b9519..08a715e5 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,6 +1,6 @@ Pillow>=10.3.0 pytz==2023.3 -requests==2.31.0 +requests>=2.32.0 timezonefinder==6.2.0 geopy==2.4.1 rgbmatrix diff --git a/src/music_manager.py b/src/music_manager.py index 3e26854c..135cc578 100644 --- a/src/music_manager.py +++ b/src/music_manager.py @@ -150,7 +150,12 @@ class MusicManager: def _handle_ytm_direct_update(self, ytm_data): """Handles a direct state update from YTMClient.""" - logger.debug(f"MusicManager received direct YTM update: {ytm_data.get('track', {}).get('title') if ytm_data else 'No Data'}") + # Correctly log the title from the ytm_data structure + title_from_data = None + if ytm_data and isinstance(ytm_data, dict): + video_info = ytm_data.get('video', {}) + title_from_data = video_info.get('title') + logger.debug(f"MusicManager received direct YTM update. Title from data: {title_from_data if title_from_data else 'No Title in video block'}") if not self.enabled or not self.is_music_display_active: # Check if display is active logger.debug("Skipping YTM direct update: Manager disabled or music display not active.") diff --git a/src/ytm_client.py b/src/ytm_client.py index d48c5048..eb962d25 100644 --- a/src/ytm_client.py +++ b/src/ytm_client.py @@ -36,6 +36,7 @@ class YTMClient: self._connection_event = threading.Event() self.external_update_callback = update_callback self.last_processed_key_data = None # Stores key fields of the last update that triggered a callback + self.previous_key_data_for_debug_logging = None # Helps reduce repetitive non-significant change logs @self.sio.event(namespace='/api/v1/realtime') def connect(): @@ -91,8 +92,12 @@ class YTMClient: self.external_update_callback(data) except Exception as cb_ex: logging.error(f"Error executing YTMClient external_update_callback: {cb_ex}") - elif not significant_change_detected: - logging.debug(f"YTM state update received but no significant change to key fields. Title: {current_key_data.get('title') if current_key_data else 'N/A'}") + elif not significant_change_detected and current_key_data: + if current_key_data != self.previous_key_data_for_debug_logging: + logging.debug(f"YTM state update received but no significant change to callback. Title: {current_key_data.get('title')}, State: {current_key_data.get('trackState')}") + self.previous_key_data_for_debug_logging = current_key_data + elif not current_key_data: + logging.debug("YTM state update received but current_key_data was None/empty.") def load_config(self): default_url = "http://localhost:9863"