From 2f69eaeb2fb76a14d9c3f2a67a9e404b066049ba Mon Sep 17 00:00:00 2001 From: Adam Tauber Date: Sat, 17 Feb 2018 14:30:06 +0100 Subject: [fix] fix engine initialization --- searx/engines/__init__.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'searx/engines') diff --git a/searx/engines/__init__.py b/searx/engines/__init__.py index b4479157b..af3cf8110 100644 --- a/searx/engines/__init__.py +++ b/searx/engines/__init__.py @@ -230,12 +230,12 @@ def load_engines(engine_list): def initialize_engines(engine_list): load_engines(engine_list) - for engine in engines.items(): + for engine_name, engine in engines.items(): if hasattr(engine, 'init'): - init_fn = getattr(engine, engine_attr) + init_fn = getattr(engine, 'init') def engine_init(): init_fn() - logger.debug('%s engine initialized', engine_data['name']) - logger.debug('Starting background initialization of %s engine', engine_data['name']) + logger.debug('%s engine initialized', engine_name) + logger.debug('Starting background initialization of %s engine', engine_name) threading.Thread(target=engine_init).start() -- cgit v1.2.3 From 988cf38196cc26aa1473c7ece024ee178a856655 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?No=C3=A9mi=20V=C3=A1nyi?= Date: Sat, 17 Feb 2018 21:36:34 +0100 Subject: fix Microsoft Academic engine --- searx/engines/microsoft_academic.py | 75 +++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 searx/engines/microsoft_academic.py (limited to 'searx/engines') diff --git a/searx/engines/microsoft_academic.py b/searx/engines/microsoft_academic.py new file mode 100644 index 000000000..9387b08d0 --- /dev/null +++ b/searx/engines/microsoft_academic.py @@ -0,0 +1,75 @@ +""" +Microsoft Academic (Science) + +@website https://academic.microsoft.com +@provide-api yes +@using-api no +@results JSON +@stable no +@parse url, title, content +""" + +from datetime import datetime +from json import loads +from uuid import uuid4 + +from searx.url_utils import urlencode +from searx.utils import html_to_text + +categories = ['images'] +paging = True +result_url = 'https://academic.microsoft.com/api/search/GetEntityResults?{query}' + + +def request(query, params): + correlation_id = uuid4() + msacademic = uuid4() + time_now = datetime.now() + + params['url'] = result_url.format(query=urlencode({'correlationId': correlation_id})) + params['cookies']['msacademic'] = str(msacademic) + params['cookies']['ai_user'] = 'vhd0H|{now}'.format(now=str(time_now)) + params['method'] = 'POST' + params['data'] = { + 'Query': '@{query}@'.format(query=query), + 'Limit': 10, + 'Offset': params['pageno'] - 1, + 'Filters': '', + 'OrderBy': '', + 'SortAscending': False, + } + + return params + + +def response(resp): + results = [] + response_data = loads(resp.text) + + for result in response_data['results']: + url = _get_url(result) + title = result['e']['dn'] + content = _get_content(result) + results.append({ + 'url': url, + 'title': html_to_text(title), + 'content': html_to_text(content), + }) + + return results + + +def _get_url(result): + if 's' in result['e']: + return result['e']['s'][0]['u'] + return 'https://academic.microsoft.com/#/detail/{pid}'.format(pid=result['id']) + + +def _get_content(result): + if 'd' in result['e']: + content = result['e']['d'] + if len(content) > 300: + return content[:300] + '...' + return content + + return '' -- cgit v1.2.3 From b4c657d227b3431b40b0ddd4ca000396a5abafde Mon Sep 17 00:00:00 2001 From: Adam Tauber Date: Sun, 18 Feb 2018 22:42:32 +0100 Subject: [enh] add asksteem engine - closes #1163 --- searx/engines/asksteem.py | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 searx/engines/asksteem.py (limited to 'searx/engines') diff --git a/searx/engines/asksteem.py b/searx/engines/asksteem.py new file mode 100644 index 000000000..c3aa7ff68 --- /dev/null +++ b/searx/engines/asksteem.py @@ -0,0 +1,43 @@ +""" + Asksteem (general) + + @website https://asksteem.com/ + @provide-api yes + + @using-api yes + @results JSON (https://github.com/Hoxly/asksteem-docs/wiki) + @stable yes + @parse url, title, content +""" + +from json import loads +from searx.url_utils import urlencode + +# engine dependent config +categories = ['general'] +paging = True +language_support = False +disabled = True + +# search-url +search_url = 'https://api.asksteem.com/search?{params}' +result_url = 'https://steemit.com/@{author}/{title}' + + +# do search-request +def request(query, params): + url = search_url.format(params=urlencode({'q': query, 'pg': params['pageno']})) + params['url'] = url + return params + +# get response from search-request +def response(resp): + json = loads(resp.text) + + results = [] + + for result in json.get('results', []): + results.append({'url': result_url.format(author=result['author'], title=result['permlink']), + 'title': result['title'], + 'content': result['summary']}) + return results -- cgit v1.2.3 From 03d7a8f065199b906eeb936494d3a1b42cc93a78 Mon Sep 17 00:00:00 2001 From: Adam Tauber Date: Sun, 18 Feb 2018 23:24:59 +0100 Subject: [fix] pep8 --- searx/engines/asksteem.py | 1 + 1 file changed, 1 insertion(+) (limited to 'searx/engines') diff --git a/searx/engines/asksteem.py b/searx/engines/asksteem.py index c3aa7ff68..6738780fa 100644 --- a/searx/engines/asksteem.py +++ b/searx/engines/asksteem.py @@ -30,6 +30,7 @@ def request(query, params): params['url'] = url return params + # get response from search-request def response(resp): json = loads(resp.text) -- cgit v1.2.3