__author__ = 'Jack Kaliko'
-import logging
-
from datetime import datetime, timedelta
-from time import sleep
from requests import get, Request, Timeout, ConnectionError
SOCKET_TIMEOUT = 4
-class SimaEch():
- """
+class SimaEch:
+ """EchoNest http client
"""
root_url = 'http://{host}/api/{version}'.format(**ECH)
cache = {}
self.current_element = SimaEch.cache.get(url).elem
return
try:
- self._fetch_ech(payload)
+ self._fetch_ws(payload)
except Timeout:
raise WSTimeout('Failed to reach server within {0}s'.format(
SOCKET_TIMEOUT))
raise WSError(err)
@Throttle(WAIT_BETWEEN_REQUESTS)
- def _fetch_ech(self, payload):
+ def _fetch_ws(self, payload):
"""fetch from web service"""
req = get(self._ressource, params=payload,
timeout=SOCKET_TIMEOUT)
raise WSError(status.get('message'))
def _forge_payload(self, artist):
- """
+ """Build payload
"""
payload = {'api_key': ECH.get('apikey')}
if not isinstance(artist, Artist):
payload.update(
id='musicbrainz:artist:{0}'.format(artist.mbid))
else:
- payload.update(name=artist.name)
+ payload.update(name=artist.name)
payload.update(bucket='id:musicbrainz')
payload.update(results=100)
return payload
def get_similar(self, artist=None):
- """
+ """Fetch similar artists
"""
payload = self._forge_payload(artist)
# Construct URL