async def get_library_tracks(self) -> AsyncGenerator[Track, None]:
"""Retrieve all library tracks from Deezer."""
for track in await self.client.get_user_tracks():
- if self.track_available(track, self.gw_client.user_country):
- yield self.parse_track(track=track, user_country=self.gw_client.user_country)
+ yield self.parse_track(track=track, user_country=self.gw_client.user_country)
async def get_artist(self, prov_artist_id: str) -> Artist:
"""Get full artist details by id."""
return [
self.parse_track(track=track, user_country=self.gw_client.user_country)
for track in album.tracks
- if self.track_available(track, self.gw_client.user_country)
]
async def get_playlist_tracks(self, prov_playlist_id: str) -> AsyncGenerator[Track, None]:
return [
self.parse_track(track=track, user_country=self.gw_client.user_country)
for track in top_tracks
- if self.track_available(track, self.gw_client.user_country)
]
async def library_add(self, prov_item_id: str, media_type: MediaType) -> bool:
item_id=str(track.id),
provider_domain=self.domain,
provider_instance=self.instance_id,
- available=user_country in track.available_countries,
+ available=self.track_available(track, user_country),
)
},
metadata=self.parse_metadata_track(track=track),
) -> list[Track]:
"""Search for tracks and parse them."""
deezer_tracks = await self.client.search_track(query=query, limit=limit)
- return [
- self.parse_track(track, user_country)
- for track in deezer_tracks
- if self.track_available(track, user_country)
- ]
+ return [self.parse_track(track, user_country) for track in deezer_tracks]
async def search_and_parse_artists(self, query: str, limit: int = 5) -> list[Artist]:
"""Search for artists and parse them."""