on master help sign in
Merge pull request #660 from davidar/ma

Add Microsoft Academic search engine

commitd6fe37f9ff0f4ea291869d540b220de6f02b5e33 authorAdam Tauber <asciimoo@gmail.com> dateSat 13 Aug 2016, 00:20 (10 years ago) parent31866d961fe5da
2 files changed+33−8
searx/engines/json_engine.py+20−8 searx/settings.yml+13
searx/engines/json_engine.py+20−8
@@ -6,7 +6,8 @@ search_url = None
66url_query = None
77content_query = None
88title_query = None
9−# suggestion_xpath = ''
9+suggestion_query = ''
10+results_query = ''
1011
1112# parameters for engines with paging support
1213#
@@ -90,12 +91,23 @@ def request(query, params):
9091
9192def response(resp):
9293 results = []
93−
9494 json = loads(resp.text)
95−
96− urls = query(json, url_query)
97− contents = query(json, content_query)
98− titles = query(json, title_query)
99− for url, title, content in zip(urls, titles, contents):
100− results.append({'url': url, 'title': title, 'content': content})
95+ if results_query:
96+ for result in query(json, results_query)[0]:
97+ url = query(result, url_query)[0]
98+ title = query(result, title_query)[0]
99+ content = query(result, content_query)[0]
100+ results.append({'url': url, 'title': title, 'content': content})
101+ else:
102+ for url, title, content in zip(
103+ query(json, url_query),
104+ query(json, title_query),
105+ query(json, content_query)
106+ ):
107+ results.append({'url': url, 'title': title, 'content': content})
108+
109+ if not suggestion_query:
110+ return results
111+ for suggestion in query(json, suggestion_query):
112+ results.append({'suggestion': suggestion})
101113 return results
searx/settings.yml+13
@@ -287,6 +287,19 @@ engines:
287287 timeout : 6.0
288288 disabled : True
289289
290+ - name : microsoft academic
291+ engine : json_engine
292+ paging : True
293+ search_url : https://academic.microsoft.com/api/search/GetEntityResults?query=%40{query}%40&filters=&offset={pageno}&limit=8&correlationId=undefined
294+ results_query : results
295+ url_query : u
296+ title_query : dn
297+ content_query : d
298+ page_size : 8
299+ first_page_num : 0
300+ categories : science
301+ shortcut : ma
302+
290303 - name : mixcloud
291304 engine : mixcloud
292305 shortcut : mc