From d6b7ae2cd509275ff40a17451f54929494892154 Mon Sep 17 00:00:00 2001 From: Marcel van der Veldt Date: Mon, 8 Jan 2024 20:00:25 +0100 Subject: [PATCH] Add guard for missing id in MusicBrainz result (#995) guard for more missing ids --- music_assistant/server/providers/musicbrainz/__init__.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/music_assistant/server/providers/musicbrainz/__init__.py b/music_assistant/server/providers/musicbrainz/__init__.py index a69a5958..a1e0f742 100644 --- a/music_assistant/server/providers/musicbrainz/__init__.py +++ b/music_assistant/server/providers/musicbrainz/__init__.py @@ -311,6 +311,8 @@ class MusicbrainzProvider(MetadataProvider): f"artist/{artist_id}?inc=aliases+annotation+tags+ratings+genres+url-rels+work-rels" ) if result := await self.get_data(endpoint): + if "id" not in result: + result["id"] = artist_id # TODO: Parse all the optional data like relations and such return MusicBrainzArtist.from_dict(replace_hyphens(result)) raise InvalidDataError("Invalid MusicBrainz Artist ID provided") @@ -327,6 +329,8 @@ class MusicbrainzProvider(MetadataProvider): else: raise InvalidDataError("Invalid ISRC provided") if result := await self.get_data(f"recording/{recording_id}?inc=artists+releases"): + if "id" not in result: + result["id"] = recording_id return MusicBrainzRecording.from_dict(replace_hyphens(result)) raise InvalidDataError("Invalid ISRC provided") @@ -344,6 +348,8 @@ class MusicbrainzProvider(MetadataProvider): raise InvalidDataError("Invalid barcode provided") endpoint = f"release-group/{releasegroup_id}?inc=artists+aliases" if result := await self.get_data(endpoint): + if "id" not in result: + result["id"] = releasegroup_id return MusicBrainzReleaseGroup.from_dict(replace_hyphens(result)) raise InvalidDataError("Invalid MusicBrainz ReleaseGroup ID or barcode provided") -- 2.34.1