diff options
| author | Markus Heiser <markus.heiser@darmarIT.de> | 2022-01-07 14:41:02 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-01-07 14:41:02 +0100 |
| commit | 836aa437a59702072986d9f94cd985a4d2e848b4 (patch) | |
| tree | 93d6bd0e7e8022d27006d145601bc21bacee580c /searx/engines/openverse.py | |
| parent | ced656606fbc7a5d5dda8b1e4efe16a9eb88e57b (diff) | |
| parent | 4fc5e5299c06a942d3650f2e45ac0a11b51d917e (diff) | |
Merge pull request #724 from tiekoetter/ccengine-openverse
Fix ccengine engine and rename it to Openverse
Diffstat (limited to 'searx/engines/openverse.py')
| -rw-r--r-- | searx/engines/openverse.py | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/searx/engines/openverse.py b/searx/engines/openverse.py new file mode 100644 index 000000000..9f4636e41 --- /dev/null +++ b/searx/engines/openverse.py @@ -0,0 +1,54 @@ +# SPDX-License-Identifier: AGPL-3.0-or-later +""" + + Openverse (formerly known as: Creative Commons search engine) [Images] + +""" + +from json import loads +from urllib.parse import urlencode + + +about = { + "website": 'https://wordpress.org/openverse/', + "wikidata_id": None, + "official_api_documentation": 'https://api.openverse.engineering/v1/', + "use_official_api": True, + "require_api_key": False, + "results": 'JSON', +} + +categories = ['images'] + +paging = True +nb_per_page = 20 + +base_url = 'https://api.openverse.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 |