#
"""
-Consume EchoNest web service
+Consume Last.fm web service
"""
__version__ = '0.5.0'
SOCKET_TIMEOUT = 6
-class SimaFM():
- """
+class SimaFM:
+ """Last.fm http client
"""
root_url = 'http://{host}/{version}/'.format(**LFM)
cache = {}
timeout=SOCKET_TIMEOUT)
#self.__class__.ratelimit = req.headers.get('x-ratelimit-remaining', None)
if req.status_code is not 200:
- raise WSHTTPError(req.status_code)
+ raise WSHTTPError('{0.status_code}: {0.reason}'.format(req))
self.current_element = req.json()
self._controls_answer()
if self.caching:
return True
def _forge_payload(self, artist, method='similar', track=None):
- """
+ """Build payload
"""
payloads = dict({'similar': {'method':'artist.getsimilar',},
'top': {'method':'artist.gettoptracks',},
if artist.mbid:
payload.update(mbid='{0}'.format(artist.mbid))
else:
- payload.update(artist=artist.name,
- autocorrect=1)
+ payload.update(artist=artist.name,
+ autocorrect=1)
payload.update(results=100)
if method == 'track':
payload.update(track=track)
return payload
def get_similar(self, artist=None):
- """
+ """Fetch similar artists
"""
payload = self._forge_payload(artist)
# Construct URL