Merge pull request #2533 from mrwormo/ccengine
[Engine] Add Creative Commons search engine
This commit is contained in:
		
						commit
						ffaf785f82
					
				
							
								
								
									
										53
									
								
								searx/engines/ccengine.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								searx/engines/ccengine.py
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,53 @@ | |||||||
|  | # SPDX-License-Identifier: AGPL-3.0-or-later | ||||||
|  | """ | ||||||
|  | 
 | ||||||
|  |  Creative Commons search engine (Images) | ||||||
|  | 
 | ||||||
|  | """ | ||||||
|  | 
 | ||||||
|  | from json import loads | ||||||
|  | from urllib.parse import urlencode | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | about = { | ||||||
|  |     "website": 'https://search.creativecommons.org/', | ||||||
|  |     "wikidata_id": None, | ||||||
|  |     "official_api_documentation": 'https://api.creativecommons.engineering/v1/', | ||||||
|  |     "use_official_api": True, | ||||||
|  |     "require_api_key": False, | ||||||
|  |     "results": 'JSON', | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | categories = ['images'] | ||||||
|  | 
 | ||||||
|  | paging = True | ||||||
|  | nb_per_page = 20 | ||||||
|  | 
 | ||||||
|  | base_url = 'https://api.creativecommons.engineering/v1/images?' | ||||||
|  | search_string = '&page={page}&page_size={nb_per_page}&format=json&{query}' | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | def request(query, params): | ||||||
|  | 
 | ||||||
|  |     search_path = search_string.format( | ||||||
|  |         query=urlencode({'q': query}), | ||||||
|  |         nb_per_page=nb_per_page, | ||||||
|  |         page=params['pageno']) | ||||||
|  | 
 | ||||||
|  |     params['url'] = base_url + search_path | ||||||
|  | 
 | ||||||
|  |     return params | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | def response(resp): | ||||||
|  |     results = [] | ||||||
|  | 
 | ||||||
|  |     json_data = loads(resp.text) | ||||||
|  | 
 | ||||||
|  |     for result in json_data['results']: | ||||||
|  |         results.append({'url': result['foreign_landing_url'], | ||||||
|  |                         'title': result['title'], | ||||||
|  |                         'img_src': result['url'], | ||||||
|  |                         'template': 'images.html'}) | ||||||
|  | 
 | ||||||
|  |     return results | ||||||
| @ -256,6 +256,11 @@ engines: | |||||||
|       require_api_key: false |       require_api_key: false | ||||||
|       results: HTML |       results: HTML | ||||||
| 
 | 
 | ||||||
|  |   - name : ccengine | ||||||
|  |     engine : ccengine | ||||||
|  |     categories : images | ||||||
|  |     shortcut : cce | ||||||
|  | 
 | ||||||
|   - name : crossref |   - name : crossref | ||||||
|     engine : json_engine |     engine : json_engine | ||||||
|     paging : True |     paging : True | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user