feat: Remove load_main_playlist endpoint and implement automatic loading on startup

This commit is contained in:
JSC
2025-07-07 21:34:29 +02:00
parent bcd6ca8104
commit 96ab2bdf77
2 changed files with 25 additions and 37 deletions

View File

@@ -23,7 +23,7 @@ class MusicPlayerService:
"""Initialize the music player service."""
self.instance: Optional[vlc.Instance] = None
self.player: Optional[vlc.MediaPlayer] = None
self.app = None # Store Flask app instance for context
self.app: Optional[Any] = None # Store Flask app instance for context
self.current_playlist_id: Optional[int] = None
self.current_track_index = 0
@@ -67,6 +67,10 @@ class MusicPlayerService:
self.player.audio_set_volume(self.volume)
logger.info("VLC music player started successfully")
# Automatically load the main playlist
self._load_main_playlist_on_startup()
self._start_sync_thread()
return True
@@ -581,33 +585,29 @@ class MusicPlayerService:
except Exception as e:
logger.debug(f"Error syncing VLC state: {e}")
def load_main_playlist(self) -> bool:
"""Load main playlist if available (to be called from within Flask context)."""
def _load_main_playlist_on_startup(self):
"""Load the main playlist automatically on startup."""
try:
logger.info("Attempting to load main playlist...")
main_playlist = Playlist.query.filter_by(name="Main").first()
if main_playlist:
logger.info(
f"Found main playlist with {len(main_playlist.playlist_sounds)} tracks"
)
result = self.load_playlist(main_playlist.id)
logger.info(f"Load playlist result: {result}")
if result:
logger.info(
f"Successfully loaded main playlist with {len(main_playlist.playlist_sounds)} tracks"
)
return True
if not self.app:
logger.warning("No Flask app context available, skipping main playlist load")
return
with self.app.app_context():
# Find the main playlist
main_playlist = Playlist.find_main_playlist()
if main_playlist:
success = self.load_playlist(main_playlist.id)
if success:
logger.info(f"Automatically loaded main playlist '{main_playlist.name}' with {len(self.playlist_files)} tracks")
else:
logger.warning("Failed to load main playlist on startup")
else:
logger.warning("Failed to load main playlist")
return False
else:
logger.warning(
"Main playlist not found, player ready without playlist"
)
return False
logger.info("No main playlist found to load on startup")
except Exception as e:
logger.error(f"Error loading main playlist: {e}")
return False
logger.error(f"Error loading main playlist on startup: {e}")
# Global music player service instance