Update artists.py
authorMarcel van der Veldt <m.vanderveldt@outlook.com>
Wed, 6 Jul 2022 14:41:30 +0000 (16:41 +0200)
committerMarcel van der Veldt <m.vanderveldt@outlook.com>
Wed, 6 Jul 2022 14:41:30 +0000 (16:41 +0200)
music_assistant/controllers/music/artists.py

index 9b4ba3b8b13171f0002461ab5a9acbf996cbc50d..59a65e7b020158f7bc4103a5e84aac55a4845291 100644 (file)
@@ -177,31 +177,28 @@ class ArtistsController(MediaControllerBase[Artist]):
     ) -> Artist:
         """Add a new item record to the database."""
         assert item.provider_ids, "Artist is missing provider id(s)"
-        async with self.mass.database.get_db(db) as db:
-            # always try to grab existing item by musicbrainz_id
-            cur_item = None
-            if item.musicbrainz_id:
-                match = {"musicbrainz_id": item.musicbrainz_id}
-                cur_item = await self.mass.database.get_row(self.db_table, match, db=db)
-            if not cur_item:
-                # fallback to matching
-                # NOTE: we match an artist by name which could theoretically lead to collisions
-                # but the chance is so small it is not worth the additional overhead of grabbing
-                # the musicbrainz id upfront
-                match = {"sort_name": item.sort_name}
-                for row in await self.mass.database.get_rows(
-                    self.db_table, match, db=db
-                ):
-                    row_artist = Artist.from_db_row(row)
-                    if row_artist.sort_name == item.sort_name:
-                        # just to be sure ?!
-                        cur_item = row_artist
-                        break
-            if cur_item:
-                # update existing
-                return await self.update_db_item(
-                    cur_item.item_id, item, overwrite=overwrite_existing, db=db
-                )
+        # always try to grab existing item by musicbrainz_id
+        cur_item = None
+        if item.musicbrainz_id:
+            match = {"musicbrainz_id": item.musicbrainz_id}
+            cur_item = await self.mass.database.get_row(self.db_table, match)
+        if not cur_item:
+            # fallback to matching
+            # NOTE: we match an artist by name which could theoretically lead to collisions
+            # but the chance is so small it is not worth the additional overhead of grabbing
+            # the musicbrainz id upfront
+            match = {"sort_name": item.sort_name}
+            for row in await self.mass.database.get_rows(self.db_table, match):
+                row_artist = Artist.from_db_row(row)
+                if row_artist.sort_name == item.sort_name:
+                    # just to be sure ?!
+                    cur_item = row_artist
+                    break
+        if cur_item:
+            # update existing
+            return await self.update_db_item(
+                cur_item.item_id, item, overwrite=overwrite_existing
+            )
 
         # insert item
         if item.in_library and not item.timestamp: