on master help sign in
Merge pull request #2533 from mrwormo/ccengine
ffaf785Noémi Ványi
searx/engines/ccengine.pynew file+53
@@ -0,0 +1,53 @@
1+# SPDX-License-Identifier: AGPL-3.0-or-later
2+"""
3+
4+ Creative Commons search engine (Images)
5+
6+"""
7+
8+from json import loads
9+from urllib.parse import urlencode
10+
11+
12+about = {
13+ "website": 'https://search.creativecommons.org/',
14+ "wikidata_id": None,
15+ "official_api_documentation": 'https://api.creativecommons.engineering/v1/',
16+ "use_official_api": True,
17+ "require_api_key": False,
18+ "results": 'JSON',
19+}
20+
21+categories = ['images']
22+
23+paging = True
24+nb_per_page = 20
25+
26+base_url = 'https://api.creativecommons.engineering/v1/images?'
27+search_string = '&page={page}&page_size={nb_per_page}&format=json&{query}'
28+
29+
30+def request(query, params):
31+
32+ search_path = search_string.format(
33+ query=urlencode({'q': query}),
34+ nb_per_page=nb_per_page,
35+ page=params['pageno'])
36+
37+ params['url'] = base_url + search_path
38+
39+ return params
40+
41+
42+def response(resp):
43+ results = []
44+
45+ json_data = loads(resp.text)
46+
47+ for result in json_data['results']:
48+ results.append({'url': result['foreign_landing_url'],
49+ 'title': result['title'],
50+ 'img_src': result['url'],
51+ 'template': 'images.html'})
52+
53+ return results
searx/settings.yml+5
@@ -256,6 +256,11 @@ engines:
256 require_api_key: false
256 require_api_key: false
257 results: HTML
257 results: HTML
258
258
259+ - name : ccengine
260+ engine : ccengine
261+ categories : images
262+ shortcut : cce
263+
259 - name : crossref
264 - name : crossref
260 engine : json_engine
265 engine : json_engine
261 paging : True
266 paging : True