浏览代码

#607 - noapi fix

firebovine 8 年前
父节点
当前提交
e145fdb86d
共有 1 个文件被更改,包括 10 次插入7 次删除
  1. 10
    7
      searx/engines/wolframalpha_noapi.py

+ 10
- 7
searx/engines/wolframalpha_noapi.py 查看文件

8
 # @stable      no
8
 # @stable      no
9
 # @parse       url, infobox
9
 # @parse       url, infobox
10
 
10
 
11
+from cgi import escape
11
 from json import loads
12
 from json import loads
12
 from time import time
13
 from time import time
13
 from urllib import urlencode
14
 from urllib import urlencode
15
+from lxml.etree import XML
14
 
16
 
15
 from searx.poolrequests import get as http_get
17
 from searx.poolrequests import get as http_get
16
 
18
 
34
 referer_url = url + 'input/?{query}'
36
 referer_url = url + 'input/?{query}'
35
 
37
 
36
 token = {'value': '',
38
 token = {'value': '',
37
-         'last_updated': 0}
39
+         'last_updated': None}
38
 
40
 
39
 # pods to display as image in infobox
41
 # pods to display as image in infobox
40
 # this pods do return a plaintext, but they look better and are more useful as images
42
 # this pods do return a plaintext, but they look better and are more useful as images
80
 
82
 
81
     # TODO handle resp_json['queryresult']['assumptions']
83
     # TODO handle resp_json['queryresult']['assumptions']
82
     result_chunks = []
84
     result_chunks = []
83
-    infobox_title = None
84
-    result = ""
85
+    infobox_title = ""
86
+    result_content = ""
85
     for pod in resp_json['queryresult']['pods']:
87
     for pod in resp_json['queryresult']['pods']:
86
         pod_id = pod.get('id', '')
88
         pod_id = pod.get('id', '')
87
         pod_title = pod.get('title', '')
89
         pod_title = pod.get('title', '')
99
                 if subpod['plaintext'] != '(requires interactivity)':
101
                 if subpod['plaintext'] != '(requires interactivity)':
100
                     result_chunks.append({'label': pod_title, 'value': subpod['plaintext']})
102
                     result_chunks.append({'label': pod_title, 'value': subpod['plaintext']})
101
 
103
 
102
-                if pod_is_result:
103
-                    result = subpod['plaintext']
104
+                if pod_is_result or not result_content:
105
+                    if pod_id != "Input":
106
+                        result_content = pod_title + ': ' + subpod['plaintext']
104
 
107
 
105
             elif 'img' in subpod:
108
             elif 'img' in subpod:
106
                 result_chunks.append({'label': pod_title, 'image': subpod['img']})
109
                 result_chunks.append({'label': pod_title, 'image': subpod['img']})
113
                     'urls': [{'title': 'Wolfram|Alpha', 'url': resp.request.headers['Referer'].decode('utf8')}]})
116
                     'urls': [{'title': 'Wolfram|Alpha', 'url': resp.request.headers['Referer'].decode('utf8')}]})
114
 
117
 
115
     results.append({'url': resp.request.headers['Referer'].decode('utf8'),
118
     results.append({'url': resp.request.headers['Referer'].decode('utf8'),
116
-                    'title': infobox_title + ' - Wolfram|Alpha',
117
-                    'content': result})
119
+                    'title': 'Wolfram|Alpha (' + infobox_title + ')',
120
+                    'content': result_content})
118
 
121
 
119
     return results
122
     return results