Artist,
ItemMapping,
MediaType,
+ PagedItems,
Track,
)
from music_assistant.models.music_provider import MusicProvider
media_type = MediaType.ARTIST
item_cls = Artist
+ async def album_artists(
+ self,
+ in_library: Optional[bool] = None,
+ search: Optional[str] = None,
+ limit: int = 500,
+ offset: int = 0,
+ order_by: str = "sort_name",
+ ) -> PagedItems:
+ """Get in-database album artists."""
+ return await self.db_items(
+ in_library=in_library,
+ search=search,
+ limit=limit,
+ offset=offset,
+ order_by=order_by,
+ query_parts=[
+ "artists.sort_name in (select albums.sort_artist from albums)"
+ ],
+ )
+
async def toptracks(
self,
item_id: Optional[str] = None,
params: Optional[dict] = None,
) -> int:
"""Get row count for given custom query."""
- query = query.split("from", 1)[-1].split("FROM", 1)[-1]
- query = f"SELECT count() FROM {query}"
+ query = f"SELECT count() FROM ({query})"
if result := await self._db.fetch_one(query, params):
return result[0]
return 0