diff options
| author | Noémi Ványi <kvch@users.noreply.github.com> | 2019-01-19 12:01:04 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-01-19 12:01:04 +0100 |
| commit | 3e6d5ba35e198ba7e41c25115caf1612d508402b (patch) | |
| tree | fa96a97dc1802986e7eb182f4814ce5018b116f0 /searx | |
| parent | 89dd3dd93f7f6611e135583364c9d58099652835 (diff) | |
| parent | e946350b4e660917be6bd14d69c045ebb2531a22 (diff) | |
Merge pull request #1412 from d-tux/engines/unsplash
Unsplash image engine
Diffstat (limited to 'searx')
| -rw-r--r-- | searx/engines/unsplash.py | 52 | ||||
| -rw-r--r-- | searx/settings.yml | 5 |
2 files changed, 57 insertions, 0 deletions
diff --git a/searx/engines/unsplash.py b/searx/engines/unsplash.py new file mode 100644 index 000000000..2e8d6fdfc --- /dev/null +++ b/searx/engines/unsplash.py @@ -0,0 +1,52 @@ +""" + Unsplash + + @website https://unsplash.com + @provide-api yes (https://unsplash.com/developers) + + @using-api no + @results JSON (using search portal's infiniscroll API) + @stable no (JSON format could change any time) + @parse url, title, img_src, thumbnail_src +""" + +from searx.url_utils import urlencode, urlparse, urlunparse, parse_qsl +from json import loads + +url = 'https://unsplash.com/' +search_url = url + 'napi/search/photos?' +categories = ['images'] +page_size = 20 +paging = True + + +def clean_url(url): + parsed = urlparse(url) + query = [(k, v) for (k, v) in parse_qsl(parsed.query) if k not in ['ixid', 's']] + + return urlunparse((parsed.scheme, + parsed.netloc, + parsed.path, + parsed.params, + urlencode(query), + parsed.fragment)) + + +def request(query, params): + params['url'] = search_url + urlencode({'query': query, 'page': params['pageno'], 'per_page': page_size}) + return params + + +def response(resp): + results = [] + json_data = loads(resp.text) + + if 'results' in json_data: + for result in json_data['results']: + results.append({'template': 'images.html', + 'url': clean_url(result['links']['html']), + 'thumbnail_src': clean_url(result['urls']['thumb']), + 'img_src': clean_url(result['urls']['raw']), + 'title': result['description'], + 'content': ''}) + return results diff --git a/searx/settings.yml b/searx/settings.yml index 00b001b6c..f4d6e537c 100644 --- a/searx/settings.yml +++ b/searx/settings.yml @@ -616,6 +616,11 @@ engines: # content_xpath : //*[@class="meaning"] # shortcut : ud + - name : unsplash + engine : unsplash + disabled: True + shortcut : us + - name : yahoo engine : yahoo shortcut : yh |