Browse Source

Add Microsoft Academic search engine

David A Roberts 8 years ago
parent
commit
61fe5daf30
2 changed files with 33 additions and 8 deletions
  1. 20 8
      searx/engines/json_engine.py
  2. 13 0
      searx/settings.yml

+ 20 - 8
searx/engines/json_engine.py

@@ -6,7 +6,8 @@ search_url = None
 url_query = None
 url_query = None
 content_query = None
 content_query = None
 title_query = None
 title_query = None
-# suggestion_xpath = ''
+suggestion_query = ''
+results_query = ''
 
 
 # parameters for engines with paging support
 # parameters for engines with paging support
 #
 #
@@ -90,12 +91,23 @@ def request(query, params):
 
 
 def response(resp):
 def response(resp):
     results = []
     results = []
-
     json = loads(resp.text)
     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
     return results

+ 13 - 0
searx/settings.yml

@@ -287,6 +287,19 @@ engines:
     timeout : 6.0
     timeout : 6.0
     disabled : True
     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
   - name : mixcloud
     engine : mixcloud
     engine : mixcloud
     shortcut : mc
     shortcut : mc