From: Marcel van der Veldt Date: Mon, 8 Jan 2024 19:00:25 +0000 (+0100) Subject: Add guard for missing id in MusicBrainz result (#995) X-Git-Url: https://git.kitaultman.com/?a=commitdiff_plain;h=d6b7ae2cd509275ff40a17451f54929494892154;p=music-assistant-server.git Add guard for missing id in MusicBrainz result (#995) guard for more missing ids --- 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")