|  | @@ -12,10 +12,14 @@
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  from json import loads
 |  |  from json import loads
 | 
											
												
													
														|  |  from searx.url_utils import urlencode
 |  |  from searx.url_utils import urlencode
 | 
											
												
													
														|  | 
 |  | +import requests
 | 
											
												
													
														|  | 
 |  | +import base64
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  # engine dependent config
 |  |  # engine dependent config
 | 
											
												
													
														|  |  categories = ['music']
 |  |  categories = ['music']
 | 
											
												
													
														|  |  paging = True
 |  |  paging = True
 | 
											
												
													
														|  | 
 |  | +api_client_id = None
 | 
											
												
													
														|  | 
 |  | +api_client_secret = None
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  # search-url
 |  |  # search-url
 | 
											
												
													
														|  |  url = 'https://api.spotify.com/'
 |  |  url = 'https://api.spotify.com/'
 | 
											
										
											
												
													
														|  | @@ -31,6 +35,16 @@ def request(query, params):
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |      params['url'] = search_url.format(query=urlencode({'q': query}), offset=offset)
 |  |      params['url'] = search_url.format(query=urlencode({'q': query}), offset=offset)
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | 
 |  | +    r = requests.post(
 | 
											
												
													
														|  | 
 |  | +        'https://accounts.spotify.com/api/token',
 | 
											
												
													
														|  | 
 |  | +        data={'grant_type': 'client_credentials'},
 | 
											
												
													
														|  | 
 |  | +        headers={'Authorization': 'Basic ' + str(base64.b64encode(
 | 
											
												
													
														|  | 
 |  | +            (api_client_id + ":" + api_client_secret).encode('utf-8')
 | 
											
												
													
														|  | 
 |  | +        ), 'utf-8')}
 | 
											
												
													
														|  | 
 |  | +    )
 | 
											
												
													
														|  | 
 |  | +    j = loads(r.text)
 | 
											
												
													
														|  | 
 |  | +    params['headers'] = {'Authorization': 'Bearer ' + j['access_token']}
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  |      return params
 |  |      return params
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  
 |  |  
 |