File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 77from ..client import Client
88from ..config import Config
99from ..db import Database
10+ from ..exceptions import NonStreamableError
1011from ..filepath_utils import clean_filepath
1112from ..metadata import AlbumMetadata
1213from ..metadata .util import get_album_track_ids
@@ -50,7 +51,14 @@ class PendingAlbum(Pending):
5051 db : Database
5152
5253 async def resolve (self ) -> Album | None :
53- resp = await self .client .get_metadata (self .id , "album" )
54+ try :
55+ resp = await self .client .get_metadata (self .id , "album" )
56+ except NonStreamableError as e :
57+ logger .error (
58+ f"Album { self .id } not available to stream on { self .client .source } ({ e } )" ,
59+ )
60+ return None
61+
5462 meta = AlbumMetadata .from_album_resp (resp , self .client .source )
5563 if meta is None :
5664 logger .error (
Original file line number Diff line number Diff line change 77from ..config import Config , QobuzDiscographyFilterConfig
88from ..console import console
99from ..db import Database
10+ from ..exceptions import NonStreamableError
1011from ..metadata import ArtistMetadata
1112from .album import Album , PendingAlbum
1213from .media import Media , Pending
@@ -180,8 +181,15 @@ class PendingArtist(Pending):
180181 config : Config
181182 db : Database
182183
183- async def resolve (self ) -> Artist :
184- resp = await self .client .get_metadata (self .id , "artist" )
184+ async def resolve (self ) -> Artist | None :
185+ try :
186+ resp = await self .client .get_metadata (self .id , "artist" )
187+ except NonStreamableError as e :
188+ logger .error (
189+ f"Artist { self .id } not available to stream on { self .client .source } ({ e } )" ,
190+ )
191+ return None
192+
185193 meta = ArtistMetadata .from_resp (resp , self .client .source )
186194 albums = [
187195 PendingAlbum (album_id , self .client , self .config , self .db )
Original file line number Diff line number Diff line change @@ -147,7 +147,14 @@ class PendingPlaylist(Pending):
147147 db : Database
148148
149149 async def resolve (self ) -> Playlist | None :
150- resp = await self .client .get_metadata (self .id , "playlist" )
150+ try :
151+ resp = await self .client .get_metadata (self .id , "playlist" )
152+ except NonStreamableError as e :
153+ logger .error (
154+ f"Playlist { self .id } not available to stream on { self .client .source } ({ e } )" ,
155+ )
156+ return None
157+
151158 meta = PlaylistMetadata .from_resp (resp , self .client .source )
152159 name = meta .name
153160 parent = self .config .session .downloads .folder
@@ -261,6 +268,7 @@ async def _make_query(
261268 if that fails.
262269
263270 Args:
271+ ----
264272 query (str): Query to search
265273 s (Status):
266274 callback: function to call after each query completes
You can’t perform that action at this time.
0 commit comments