From 5b69c91e325c0f304496d0003e30d4f3f8998477 Mon Sep 17 00:00:00 2001 From: lokiberra <33937467+lokiberra@users.noreply.github.com> Date: Mon, 6 May 2024 06:48:16 -0400 Subject: [PATCH] Better handling of Jellyfin metadata missing (#1253) --- .../server/providers/jellyfin/__init__.py | 15 ++++++++++++++- .../server/providers/jellyfin/const.py | 1 + 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/music_assistant/server/providers/jellyfin/__init__.py b/music_assistant/server/providers/jellyfin/__init__.py index 4028bce8..41b4a8fa 100644 --- a/music_assistant/server/providers/jellyfin/__init__.py +++ b/music_assistant/server/providers/jellyfin/__init__.py @@ -84,6 +84,7 @@ from .const import ( ITEM_TYPE_ALBUM, ITEM_TYPE_ARTIST, ITEM_TYPE_AUDIO, + ITEM_TYPE_MUSICARTISTS, MAX_IMAGE_WIDTH, SUPPORTED_CONTAINER_FORMATS, USER_APP_NAME, @@ -469,6 +470,15 @@ class JellyfinProvider(MusicProvider): current_jellyfin_track[ITEM_KEY_PARENT_ID], current_jellyfin_track[ITEM_KEY_ALBUM], ) + elif ITEM_KEY_PARENT_ID in current_jellyfin_track: + parent_album = API.get_item( + self._jellyfin_server.jellyfin, current_jellyfin_track[ITEM_KEY_PARENT_ID] + ) + track.album = self._get_item_mapping( + MediaType.ALBUM, + parent_album[ITEM_KEY_ID], + parent_album[ITEM_KEY_NAME], + ) if ITEM_KEY_PARENT_INDEX_NUM in current_jellyfin_track: track.disc_number = current_jellyfin_track[ITEM_KEY_PARENT_INDEX_NUM] if ITEM_KEY_RUNTIME_TICKS in current_jellyfin_track: @@ -748,8 +758,11 @@ class JellyfinProvider(MusicProvider): params = { "Recursive": "true", ITEM_KEY_PARENT_ID: parent_id, - "IncludeItemTypes": item_type, } + if item_type in ITEM_TYPE_ARTIST: + params["IncludeItemTypes"] = [ITEM_TYPE_MUSICARTISTS, ITEM_TYPE_ARTIST] + else: + params["IncludeItemTypes"] = item_type if item_type in ITEM_TYPE_AUDIO: params["Fields"] = ITEM_KEY_MEDIA_SOURCES diff --git a/music_assistant/server/providers/jellyfin/const.py b/music_assistant/server/providers/jellyfin/const.py index 677af969..b2197e72 100644 --- a/music_assistant/server/providers/jellyfin/const.py +++ b/music_assistant/server/providers/jellyfin/const.py @@ -41,6 +41,7 @@ ITEM_KEY_RUNTIME_TICKS: Final = "RunTimeTicks" ITEM_TYPE_ALBUM: Final = "MusicAlbum" ITEM_TYPE_ARTIST: Final = "MusicArtist" +ITEM_TYPE_MUSICARTISTS: Final = "MusicArtists" ITEM_TYPE_AUDIO: Final = "Audio" ITEM_TYPE_LIBRARY: Final = "CollectionFolder" -- 2.34.1