on master help sign in
Merge pull request #2533 from mrwormo/ccengine

[Engine] Add Creative Commons search engine

commitffaf785f8272a8168e92dfe1c3a2179b6991bb18 authorNoémi Ványi <kvch@users.noreply.github.com> dateThu 4 Feb 2021, 22:35 (6 years ago) parent006f206c4c1636
2 files changed+58
searx/engines/ccengine.py+53 searx/settings.yml+5
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:
256256 require_api_key: false
257257 results: HTML
258258
259+ - name : ccengine
260+ engine : ccengine
261+ categories : images
262+ shortcut : cce
263+
259264 - name : crossref
260265 engine : json_engine
261266 paging : True