From: Marcel van der Veldt Date: Thu, 18 Dec 2025 00:51:54 +0000 (+0100) Subject: Fix some items (podcasts, radio, playlists) not showing up in library X-Git-Url: https://git.kitaultman.com/?a=commitdiff_plain;h=271f2a2956a34a214755536ba755ab8d3b6d013d;p=music-assistant-server.git Fix some items (podcasts, radio, playlists) not showing up in library --- diff --git a/music_assistant/controllers/media/albums.py b/music_assistant/controllers/media/albums.py index 718fbd48..a7a4f785 100644 --- a/music_assistant/controllers/media/albums.py +++ b/music_assistant/controllers/media/albums.py @@ -170,7 +170,6 @@ class AlbumsController(MediaControllerBase[Album]): extra_query_parts=extra_query_parts, extra_query_params=extra_query_params, extra_join_parts=extra_join_parts, - in_library_only=True, ) # Calculate how many more items we need to reach the original limit diff --git a/music_assistant/controllers/media/artists.py b/music_assistant/controllers/media/artists.py index e1d0d216..d9acdd9e 100644 --- a/music_assistant/controllers/media/artists.py +++ b/music_assistant/controllers/media/artists.py @@ -103,7 +103,6 @@ class ArtistsController(MediaControllerBase[Artist]): provider_filter=self._ensure_provider_filter(provider), extra_query_parts=extra_query_parts, extra_query_params=extra_query_params, - in_library_only=True, ) async def tracks( diff --git a/music_assistant/controllers/media/audiobooks.py b/music_assistant/controllers/media/audiobooks.py index b21df255..54d37657 100644 --- a/music_assistant/controllers/media/audiobooks.py +++ b/music_assistant/controllers/media/audiobooks.py @@ -92,7 +92,6 @@ class AudiobooksController(MediaControllerBase[Audiobook]): provider_filter=self._ensure_provider_filter(provider), extra_query_parts=extra_query_parts, extra_query_params=extra_query_params, - in_library_only=True, ) if search and len(result) < 25 and not offset: # append author items to result @@ -108,7 +107,6 @@ class AudiobooksController(MediaControllerBase[Audiobook]): provider_filter=self._ensure_provider_filter(provider), extra_query_parts=extra_query_parts, extra_query_params=extra_query_params, - in_library_only=True, ) return result diff --git a/music_assistant/controllers/media/base.py b/music_assistant/controllers/media/base.py index 611ad9bd..c5abb11b 100644 --- a/music_assistant/controllers/media/base.py +++ b/music_assistant/controllers/media/base.py @@ -257,7 +257,6 @@ class MediaControllerBase[ItemCls: "MediaItemType"](metaclass=ABCMeta): provider_filter=self._ensure_provider_filter(provider), extra_query_parts=[extra_query] if extra_query else None, extra_query_params=extra_query_params, - in_library_only=True, ) async def iter_library_items( @@ -763,7 +762,6 @@ class MediaControllerBase[ItemCls: "MediaItemType"](metaclass=ABCMeta): extra_query_parts: list[str] | None = None, extra_query_params: dict[str, Any] | None = None, extra_join_parts: list[str] | None = None, - in_library_only: bool = False, ) -> list[ItemCls]: """Fetch MediaItem records from database by building the query.""" query_params = extra_query_params or {} @@ -779,7 +777,6 @@ class MediaControllerBase[ItemCls: "MediaItemType"](metaclass=ABCMeta): favorite=favorite, search=search, provider_filter=provider_filter, - in_library_only=in_library_only, limit=limit, ) else: @@ -791,7 +788,6 @@ class MediaControllerBase[ItemCls: "MediaItemType"](metaclass=ABCMeta): favorite=favorite, search=search, provider_filter=provider_filter, - in_library_only=in_library_only, ) # build and execute final query sql_query = self._build_final_query(query_parts, join_parts, order_by) @@ -826,7 +822,6 @@ class MediaControllerBase[ItemCls: "MediaItemType"](metaclass=ABCMeta): favorite: bool | None, search: str | None, provider_filter: list[str] | None, - in_library_only: bool, limit: int, ) -> None: """Build a fast random subquery with all filters applied.""" @@ -841,7 +836,6 @@ class MediaControllerBase[ItemCls: "MediaItemType"](metaclass=ABCMeta): favorite=favorite, search=search, provider_filter=provider_filter, - in_library_only=in_library_only, ) # Build the subquery @@ -870,7 +864,6 @@ class MediaControllerBase[ItemCls: "MediaItemType"](metaclass=ABCMeta): favorite: bool | None, search: str | None, provider_filter: list[str] | None, - in_library_only: bool, ) -> None: """Apply search, favorite, and provider filters.""" # handle search @@ -888,15 +881,9 @@ class MediaControllerBase[ItemCls: "MediaItemType"](metaclass=ABCMeta): join_parts.append( f"JOIN provider_mappings ON provider_mappings.item_id = {self.db_table}.item_id " f"AND provider_mappings.media_type = '{self.media_type.value}' " - f"AND provider_mappings.in_library = {in_library_only} " + f"AND provider_mappings.in_library = 1 " f"AND ({' OR '.join(provider_conditions)})" ) - elif in_library_only: - join_parts.append( - f"JOIN provider_mappings ON provider_mappings.item_id = {self.db_table}.item_id " - f"AND provider_mappings.media_type = '{self.media_type.value}' " - f"AND provider_mappings.in_library = {in_library_only} " - ) @final def _build_final_query( diff --git a/music_assistant/controllers/media/podcasts.py b/music_assistant/controllers/media/podcasts.py index 6fa8122c..7530b958 100644 --- a/music_assistant/controllers/media/podcasts.py +++ b/music_assistant/controllers/media/podcasts.py @@ -75,7 +75,6 @@ class PodcastsController(MediaControllerBase[Podcast]): provider_filter=self._ensure_provider_filter(provider), extra_query_parts=extra_query_parts, extra_query_params=extra_query_params, - in_library_only=True, ) if search and len(result) < 25 and not offset: # append publisher items to result @@ -91,7 +90,6 @@ class PodcastsController(MediaControllerBase[Podcast]): provider_filter=self._ensure_provider_filter(provider), extra_query_parts=extra_query_parts, extra_query_params=extra_query_params, - in_library_only=True, ) return result diff --git a/music_assistant/controllers/media/tracks.py b/music_assistant/controllers/media/tracks.py index 4e8daf50..7a9e555f 100644 --- a/music_assistant/controllers/media/tracks.py +++ b/music_assistant/controllers/media/tracks.py @@ -207,7 +207,6 @@ class TracksController(MediaControllerBase[Track]): extra_query_parts=extra_query_parts, extra_query_params=extra_query_params, extra_join_parts=extra_join_parts, - in_library_only=True, ) if search and len(result) < 25 and not offset: # append artist items to result @@ -228,7 +227,6 @@ class TracksController(MediaControllerBase[Track]): extra_query_parts=extra_query_parts, extra_query_params=extra_query_params, extra_join_parts=extra_join_parts, - in_library_only=True, ): # prevent duplicates (when artist is also in the title) if _track.uri not in existing_uris: diff --git a/music_assistant/controllers/music.py b/music_assistant/controllers/music.py index 10e1d0e0..d5c18601 100644 --- a/music_assistant/controllers/music.py +++ b/music_assistant/controllers/music.py @@ -2173,7 +2173,8 @@ class MusicController(CoreController): await self._database.execute( f"UPDATE {DB_TABLE_PROVIDER_MAPPINGS} SET in_library = 1 " "WHERE provider_domain IN " - "('filesystem_local', 'filesystem_smb', 'plex', 'jellyfin', 'opensubsonic', 'builtin');" # noqa: E501 + "('filesystem_local', 'filesystem_smb', 'plex', " + "'jellyfin', 'opensubsonic', 'builtin');" ) # save changes