Fix: hide disabled and removed providers from inprogress widgets
authorMarcel van der Veldt <m.vanderveldt@outlook.com>
Thu, 6 Mar 2025 21:53:04 +0000 (22:53 +0100)
committerMarcel van der Veldt <m.vanderveldt@outlook.com>
Thu, 6 Mar 2025 21:53:04 +0000 (22:53 +0100)
music_assistant/controllers/music.py

index 775f7ec9454dee49a3bf936559ba6109edd82a5e..61c40ae37e3b6fbb18212bfca92e52c8bb4fa3f5 100644 (file)
@@ -484,9 +484,12 @@ class MusicController(CoreController):
         if media_types is None:
             media_types = MediaType.ALL
         media_types_str = "(" + ",".join(f'"{x}"' for x in media_types) + ")"
+        available_providers = ("library", *get_global_cache_value("unique_providers", []))
+        available_providers_str = "(" + ",".join(f'"{x}"' for x in available_providers) + ")"
         query = (
             f"SELECT * FROM {DB_TABLE_PLAYLOG} "
             f"WHERE media_type in {media_types_str} AND fully_played = 1 "
+            f"AND provider in {available_providers_str} "
             "ORDER BY timestamp DESC"
         )
         db_rows = await self.mass.music.database.get_rows_from_query(query, limit=limit)
@@ -510,15 +513,17 @@ class MusicController(CoreController):
     @api_command("music/in_progress_items")
     async def in_progress_items(self, limit: int = 10) -> list[ItemMapping]:
         """Return a list of the Audiobooks and PodcastEpisodes that are in progress."""
+        available_providers = ("library", *get_global_cache_value("unique_providers", []))
+        available_providers_str = "(" + ",".join(f'"{x}"' for x in available_providers) + ")"
         query = (
             f"SELECT * FROM {DB_TABLE_PLAYLOG} "
             f"WHERE media_type in ('audiobook', 'podcast_episode') AND fully_played = 0 "
+            f"AND provider in {available_providers_str} "
             "AND seconds_played > 0 "
             "ORDER BY timestamp DESC"
         )
         db_rows = await self.mass.music.database.get_rows_from_query(query, limit=limit)
         result: list[ItemMapping] = []
-        available_providers = ("library", *get_global_cache_value("unique_providers", []))
         for db_row in db_rows:
             result.append(
                 ItemMapping.from_dict(