update spotframework network actions to be tried and caught

This commit is contained in:
aj 2020-06-22 20:20:52 +01:00
parent 3089f25b59
commit bd404fa62b
2 changed files with 38 additions and 15 deletions

View File

@ -1,4 +1,4 @@
from spotframework.net.network import Network as SpotNetwork from spotframework.net.network import Network as SpotNetwork, SpotifyNetworkException
from spotframework.model.uri import Uri from spotframework.model.uri import Uri
from fmframework.net.network import Network as FmNetwork from fmframework.net.network import Network as FmNetwork
import logging import logging
@ -17,14 +17,17 @@ def get_chart_of_spotify_tracks(spotnet: SpotNetwork,
spotify_chart = [] spotify_chart = []
for track in chart: for track in chart:
spotify_search = spotnet.search(query_types=[Uri.ObjectType.track], try:
track=track.name, spotify_search = spotnet.search(query_types=[Uri.ObjectType.track],
artist=track.artist.name, track=track.name,
response_limit=5).tracks artist=track.artist.name,
if len(spotify_search) > 0: response_limit=5).tracks
spotify_chart.append(spotify_search[0]) if len(spotify_search) > 0:
else: spotify_chart.append(spotify_search[0])
logger.debug('no search tracks returned') else:
logger.debug('no search tracks returned')
except SpotifyNetworkException as e:
logger.error(f'error during search function - {e}')
return spotify_chart return spotify_chart

View File

@ -1,4 +1,4 @@
from spotframework.net.network import Network as SpotifyNetwork from spotframework.net.network import Network as SpotifyNetwork, SpotifyNetworkException
from spotframework.model.playlist import FullPlaylist from spotframework.model.playlist import FullPlaylist
from spotframework.model.track import SimplifiedTrack from spotframework.model.track import SimplifiedTrack
from spotframework.model.album import SimplifiedAlbum from spotframework.model.album import SimplifiedAlbum
@ -43,12 +43,20 @@ class Counter:
if playlist is not None: if playlist is not None:
if playlist.has_tracks() is False: if playlist.has_tracks() is False:
playlist.tracks = self.spotnet.get_playlist_tracks(uri=playlist.uri) try:
playlist.tracks = self.spotnet.get_playlist_tracks(uri=playlist.uri)
except SpotifyNetworkException as e:
logger.error(f'error occured during playlist track retrieval - {e}')
return 0
if uri is not None: if uri is not None:
if uri.object_type != Uri.ObjectType.playlist: if uri.object_type != Uri.ObjectType.playlist:
raise ValueError('uri not a playlist') raise ValueError('uri not a playlist')
playlist = self.spotnet.get_playlist(uri=uri) try:
playlist = self.spotnet.get_playlist(uri=uri, tracks=True)
except SpotifyNetworkException as e:
logger.error(f'error occured during playlist retrieval - {e}')
return 0
scrobble_count = 0 scrobble_count = 0
@ -82,7 +90,11 @@ class Counter:
if uri is not None: if uri is not None:
if uri.object_type != Uri.ObjectType.track: if uri.object_type != Uri.ObjectType.track:
raise ValueError('uri not a track') raise ValueError('uri not a track')
track = self.spotnet.get_track(uri=uri) try:
track = self.spotnet.get_track(uri=uri)
except SpotifyNetworkException as e:
logger.error(f'error occured during track retrieval - {e}')
return 0
if username is not None: if username is not None:
fmtrack = self.fmnet.get_track(name=track.name, artist=track.artists[0].name, username=username) fmtrack = self.fmnet.get_track(name=track.name, artist=track.artists[0].name, username=username)
@ -103,7 +115,11 @@ class Counter:
if uri is not None: if uri is not None:
if uri.object_type != Uri.ObjectType.album: if uri.object_type != Uri.ObjectType.album:
raise ValueError('uri not an album') raise ValueError('uri not an album')
album = self.spotnet.get_album(uri=uri) try:
album = self.spotnet.get_album(uri=uri)
except SpotifyNetworkException as e:
logger.error(f'error occured during album retrieval - {e}')
return 0
if username is not None: if username is not None:
fmalbum = self.fmnet.get_album(name=album.name, artist=album.artists[0].name, username=username) fmalbum = self.fmnet.get_album(name=album.name, artist=album.artists[0].name, username=username)
@ -124,7 +140,11 @@ class Counter:
if uri is not None: if uri is not None:
if uri.object_type != Uri.ObjectType.artist: if uri.object_type != Uri.ObjectType.artist:
raise ValueError('uri not an artist') raise ValueError('uri not an artist')
artist = self.spotnet.get_artist(uri=uri) try:
artist = self.spotnet.get_artist(uri=uri)
except SpotifyNetworkException as e:
logger.error(f'error occured during artist retrieval - {e}')
return 0
if username is not None: if username is not None:
fmartist = self.fmnet.get_artist(name=artist.name, username=username) fmartist = self.fmnet.get_artist(name=artist.name, username=username)