From a88e3e4fea0e030bc70f79755df6f49ebc42be5b Mon Sep 17 00:00:00 2001 From: Markus Heiser Date: Tue, 25 May 2021 16:45:32 +0200 Subject: [PATCH 1/3] [pylint] searx/engines/unsplash.py, add logger & norm indentation - fix messages from pylint - add logger and log request URL - normalized various indentation Signed-off-by: Markus Heiser --- searx/engines/unsplash.py | 49 +++++++++++++++++++++++++-------------- 1 file changed, 31 insertions(+), 18 deletions(-) diff --git a/searx/engines/unsplash.py b/searx/engines/unsplash.py index 3bbdf630d..95a80a47c 100644 --- a/searx/engines/unsplash.py +++ b/searx/engines/unsplash.py @@ -1,11 +1,16 @@ # SPDX-License-Identifier: AGPL-3.0-or-later -""" - Unsplash +# lint: pylint +# pylint: disable=missing-function-docstring +"""Unsplash + """ from urllib.parse import urlencode, urlparse, urlunparse, parse_qsl from json import loads +from searx import logger + +logger = logger.getChild('unsplash engine') # about about = { "website": 'https://unsplash.com', @@ -16,8 +21,8 @@ about = { "results": 'JSON', } -url = 'https://unsplash.com/' -search_url = url + 'napi/search/photos?' +base_url = 'https://unsplash.com/' +search_url = base_url + 'napi/search/photos?' categories = ['images'] page_size = 20 paging = True @@ -25,18 +30,24 @@ 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']] + 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)) + 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}) + params['url'] = search_url + urlencode({ + 'query': query, 'page': params['pageno'], 'per_page': page_size + }) + logger.debug("query_url --> %s", params['url']) return params @@ -46,10 +57,12 @@ def response(resp): 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': ''}) + 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 From dc21cb5d4baf463e3ede77dbf293bedc16de85b0 Mon Sep 17 00:00:00 2001 From: Markus Heiser Date: Tue, 25 May 2021 17:26:58 +0200 Subject: [PATCH 2/3] [fix] unsplash engine - 'searx:result: invalid title:' - Use result 'alt_description' as title, if not given use default title 'unknown'. - Use result 'description' from unsplash as 'content' Fix error:: DEBUG:searx:result: invalid title: {..., 'title': None, 'content': '', 'engine': 'unsplash'} Signed-off-by: Markus Heiser --- searx/engines/unsplash.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/searx/engines/unsplash.py b/searx/engines/unsplash.py index 95a80a47c..834bc917c 100644 --- a/searx/engines/unsplash.py +++ b/searx/engines/unsplash.py @@ -62,7 +62,8 @@ def response(resp): 'url': clean_url(result['links']['html']), 'thumbnail_src': clean_url(result['urls']['thumb']), 'img_src': clean_url(result['urls']['raw']), - 'title': result['description'], - 'content': '' + 'title': result.get('alt_description') or 'unknown', + 'content': result.get('description') or '' }) + return results From 97d173eda08a373b36399e0cf4b7b66526227d00 Mon Sep 17 00:00:00 2001 From: Markus Heiser Date: Tue, 25 May 2021 17:41:10 +0200 Subject: [PATCH 3/3] [mod] unsplash engine - activated by default Signed-off-by: Markus Heiser --- searx/settings.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/searx/settings.yml b/searx/settings.yml index b0c425e4f..8dbb02d53 100644 --- a/searx/settings.yml +++ b/searx/settings.yml @@ -1040,7 +1040,6 @@ engines: - name : unsplash engine : unsplash - disabled: True shortcut : us - name : yahoo