very small fixes
authormarcelveldt <marcelvanderveldt@MacBook-Pro.local>
Thu, 21 Nov 2019 12:20:18 +0000 (13:20 +0100)
committermarcelveldt <marcelvanderveldt@MacBook-Pro.local>
Thu, 21 Nov 2019 12:20:18 +0000 (13:20 +0100)
music_assistant/database.py
music_assistant/models/musicprovider.py

index d5daa022c5f31b214ac3dc4f80448453d6608f31..ff985305069fa640c3193dc4223169fbcf7df2b4 100755 (executable)
@@ -124,13 +124,12 @@ class Database():
             return prov_item_id
         sql_query = '''SELECT item_id FROM provider_mappings
             WHERE prov_item_id = ? AND provider = ? AND media_type = ?;'''
-        cursor = await self._db.execute(sql_query,
-                                        (prov_item_id, provider, media_type))
-        item_id = await cursor.fetchone()
-        if item_id:
-            item_id = item_id[0]
-        await cursor.close()
-        return item_id
+        async with self._db.execute(
+                sql_query, (prov_item_id, provider, media_type)) as cursor:
+            item_id = await cursor.fetchone()
+            if item_id:
+                return item_id[0]
+        return None
 
     async def search(self, searchquery, media_types: List[MediaType]):
         ''' search library for the given searchphrase '''
index c269cae3aed57f4b0740147f0c74c10e73d41d21..baa1c42bbf2448cf865dd7a2927c2b8e1f5e78ce 100755 (executable)
@@ -37,7 +37,7 @@ class MusicProvider():
         item_id = await self.mass.db.get_database_id(self.prov_id,
                                                      prov_item_id,
                                                      MediaType.Artist)
-        if not item_id:
+        if item_id is not None:
             # artist not yet in local database so fetch details
             cache_key = f'{self.prov_id}.get_artist.{prov_item_id}'
             artist_details = await cached(self.cache, cache_key,
@@ -220,9 +220,13 @@ class MusicProvider():
         track_artists = []
         # we need to fetch track artists too
         for track_artist in track_details.artists:
-            db_track_artist = await self.artist(track_artist.item_id,
-                                                lazy=False,
-                                                ref_track=track_details)
+            if track_artist.provider == 'database':
+                db_track_artist = await self.mass.db.artist(
+                    track_artist.item_id)
+            else:
+                db_track_artist = await self.artist(track_artist.item_id,
+                                                    lazy=False,
+                                                    ref_track=track_details)
             if db_track_artist:
                 track_artists.append(db_track_artist)
         track_details.artists = track_artists