@@ -597,7 +597,6 @@ async def _set_track_artist(
597597 ) -> ItemMapping :
598598 """Store Track Artist info."""
599599 db_artist : Artist | ItemMapping | None = None
600-
601600 if artist .provider == "library" :
602601 db_artist = artist
603602 elif existing := await self .mass .music .artists .get_library_item_by_prov_id (
@@ -606,14 +605,13 @@ async def _set_track_artist(
606605 db_artist = existing
607606
608607 if not db_artist or overwrite :
609- # ensure we pass only Artist to add_item_to_library
610- if isinstance (artist , Artist ):
608+ if isinstance (artist , ItemMapping ):
609+ # Can't add ItemMapping to library, use existing or artist itself
610+ db_artist = db_artist or artist
611+ else :
611612 db_artist = await self .mass .music .artists .add_item_to_library (
612613 artist , overwrite_existing = overwrite
613614 )
614- else :
615- raise InvalidDataError ("Cannot add ItemMapping as a library artist" )
616-
617615 # write (or update) record in album_artists table
618616 assert self .mass .music .database is not None
619617 await self .mass .music .database .insert_or_replace (
@@ -623,5 +621,4 @@ async def _set_track_artist(
623621 "artist_id" : int (db_artist .item_id ),
624622 },
625623 )
626-
627624 return ItemMapping .from_item (db_artist )
0 commit comments