Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
params = {'q': search_term}
return self._make_request(endpoint, params_=params)
def search_genius_web(self, search_term, per_page=5):
"""Use the web-version of Genius search"""
endpoint = "search/multi?"
params = {'per_page': per_page, 'q': search_term}
# This endpoint is not part of the API, requires different formatting
url = "https://genius.com/api/" + endpoint + urlencode(params)
response = requests.get(url, timeout=self.timeout)
time.sleep(max(self._SLEEP_MIN, self.sleep_time))
return response.json()['response'] if response else None
class Genius(API):
"""User-level interface with the Genius.com API."""
def __init__(self, client_access_token,
response_format='plain', timeout=5, sleep_time=0.5,
verbose=True, remove_section_headers=False,
skip_non_songs=True, excluded_terms=[],
replace_default_terms=False):
""" Genius Client Constructor
:param verbose: Turn printed messages on or off (bool)
:param remove_section_headers: If True, removes [Chorus], [Bridge], etc. headers from lyrics
:param skip_non_songs: If True, attempts to skip non-songs (e.g. track listings)
:param excluded_terms: (list) extra terms for flagging results as non-lyrics
:param replace_default_terms: if True, replaces default excluded terms with user's
"""
params = {'sort': sort, 'per_page': per_page, 'page': page}
return self._make_request(endpoint, params_=params)
def search_genius(self, search_term):
"""Search documents hosted on Genius."""
endpoint = "search/"
params = {'q': search_term}
return self._make_request(endpoint, params_=params)
def get_annotation(self, id_):
"""Data for a specific annotation."""
endpoint = "annotations/{id}".format(id=id_)
return self._make_request(endpoint)
class Genius(API):
"""User-level interface with the Genius.com API."""
def __init__(self,
client_access_token,
response_format='plain',
timeout=5,
sleep_time=0.5,
verbose=True,
remove_section_headers=False,
skip_non_songs=True,
take_first_result=False):
""" Genius Client Constructor
:param verbose: Turn printed messages on or off (bool)
:param remove_section_headers: If True, removes [Chorus], [Bridge], etc. headers from lyrics
:param skip_non_songs: If True, attempts to skip non-songs (e.g. track listings)