From ccd075463337c5f623122ad97da4660a577d012b Mon Sep 17 00:00:00 2001 From: aj Date: Sat, 25 Jan 2020 20:30:15 +0000 Subject: [PATCH] added page limit pass through variable --- spotframework/model/track.py | 21 +++++++++++++++++++++ spotframework/net/network.py | 12 ++++++++++-- 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/spotframework/model/track.py b/spotframework/model/track.py index 2ed027f..b2663a0 100644 --- a/spotframework/model/track.py +++ b/spotframework/model/track.py @@ -308,6 +308,27 @@ class AudioFeatures: self.track_href = track_href self.valence = self.check_float(valence) + def to_dict(self): + return { + 'acousticness': self.acousticness, + 'analysis_url': self.analysis_url, + 'danceability': self.danceability, + 'duration_ms': self.duration_ms, + 'energy': self.energy, + 'uri': str(self.uri) if self.uri is not None else None, + 'instrumentalness': self.instrumentalness, + 'key': self.key, + 'key_code': self._key, + 'liveness': self.liveness, + 'loudness': self.loudness, + 'mode': self.mode.value, + 'speechiness': self.speechiness, + 'tempo': self.tempo, + 'time_signature': self.time_signature, + 'track_href': self.track_href, + 'valence': self.valence + } + @property def key(self) -> str: legend = { diff --git a/spotframework/net/network.py b/spotframework/net/network.py index a3ddbf3..f197461 100644 --- a/spotframework/net/network.py +++ b/spotframework/net/network.py @@ -808,8 +808,13 @@ class Network: if resp: if resp.get('audio_features', None): - parsed_features = [self.parse_audio_features(i) for i in resp['audio_features']] - audio_features += parsed_features + + for feature in resp['audio_features']: + if feature is not None: + audio_features.append(self.parse_audio_features(feature)) + else: + audio_features.append(None) + else: logger.error('no audio features included') else: @@ -840,6 +845,9 @@ class Network: audio_features = self.get_track_audio_features([i.uri for i in tracks]) if audio_features: + if len(audio_features) != len(tracks): + logger.error(f'{len(audio_features)} features returned for {len(tracks)} tracks') + for index, track in enumerate(tracks): track.audio_features = audio_features[index]