logo

searx

Unnamed repository; edit this file 'description' to name the repository.
commit: d6fe37f9ff0f4ea291869d540b220de6f02b5e33
parent: 31866d9f3357683949971b62d44e01b3d73befe1
Author: Adam Tauber <asciimoo@gmail.com>
Date:   Sat, 13 Aug 2016 00:20:37 +0200

Merge pull request #660 from davidar/ma

Add Microsoft Academic search engine

Diffstat:

searx/engines/json_engine.py | 28++++++++++++++++++++--------
searx/settings.yml | 13+++++++++++++
2 files changed, 33 insertions(+), 8 deletions(-)

diff --git a/searx/engines/json_engine.py b/searx/engines/json_engine.py @@ -6,7 +6,8 @@ search_url = None url_query = None content_query = None title_query = None -# suggestion_xpath = '' +suggestion_query = '' +results_query = '' # parameters for engines with paging support # @@ -90,12 +91,23 @@ def request(query, params): def response(resp): results = [] - json = loads(resp.text) - - urls = query(json, url_query) - contents = query(json, content_query) - titles = query(json, title_query) - for url, title, content in zip(urls, titles, contents): - results.append({'url': url, 'title': title, 'content': content}) + if results_query: + for result in query(json, results_query)[0]: + url = query(result, url_query)[0] + title = query(result, title_query)[0] + content = query(result, content_query)[0] + results.append({'url': url, 'title': title, 'content': content}) + else: + for url, title, content in zip( + query(json, url_query), + query(json, title_query), + query(json, content_query) + ): + results.append({'url': url, 'title': title, 'content': content}) + + if not suggestion_query: + return results + for suggestion in query(json, suggestion_query): + results.append({'suggestion': suggestion}) return results diff --git a/searx/settings.yml b/searx/settings.yml @@ -287,6 +287,19 @@ engines: timeout : 6.0 disabled : True + - name : microsoft academic + engine : json_engine + paging : True + search_url : https://academic.microsoft.com/api/search/GetEntityResults?query=%40{query}%40&filters=&offset={pageno}&limit=8&correlationId=undefined + results_query : results + url_query : u + title_query : dn + content_query : d + page_size : 8 + first_page_num : 0 + categories : science + shortcut : ma + - name : mixcloud engine : mixcloud shortcut : mc