summaryrefslogtreecommitdiff
path: root/searx/engines/wolframalpha_noapi.py
diff options
context:
space:
mode:
authora01200356 <a01200356@itesm.mx>2016-01-01 22:02:10 -0600
committera01200356 <a01200356@itesm.mx>2016-01-01 22:02:10 -0600
commit0871c7ca85cd19a2fa0971c7db28516a74255d5d (patch)
tree533fbb3dda61f45db2b7a970b831a91c819f7313 /searx/engines/wolframalpha_noapi.py
parentbe54e5269a982e272e2fe8a5064ed898373c9063 (diff)
[enh] wolframalpha appends result
Diffstat (limited to 'searx/engines/wolframalpha_noapi.py')
-rw-r--r--searx/engines/wolframalpha_noapi.py26
1 files changed, 19 insertions, 7 deletions
diff --git a/searx/engines/wolframalpha_noapi.py b/searx/engines/wolframalpha_noapi.py
index 9d3afe658..89a3c45b5 100644
--- a/searx/engines/wolframalpha_noapi.py
+++ b/searx/engines/wolframalpha_noapi.py
@@ -1,6 +1,7 @@
# WolframAlpha (Maths)
#
# @website http://www.wolframalpha.com/
+# @provide-api yes (http://api.wolframalpha.com/v2/)
#
# @using-api no
# @results HTML
@@ -14,12 +15,17 @@ from urllib import urlencode
# search-url
url = 'http://www.wolframalpha.com/'
search_url = url+'input/?{query}'
+search_query = ''
# do search-request
def request(query, params):
params['url'] = search_url.format(query=urlencode({'i': query}))
+ # used in response
+ global search_query
+ search_query = query
+
return params
@@ -42,14 +48,20 @@ def response(resp):
except AttributeError:
continue
- if not line:
- return results
+ if line:
+ # extract answer from json
+ answer = line[line.find('{'):line.rfind('}')+1]
+ answer = loads(answer.encode('unicode-escape'))
+ answer = answer['stringified'].decode('unicode-escape')
+
+ results.append({'answer': answer})
- # extract answer from json
- answer = line[line.find('{'):line.rfind('}')+1]
- answer = loads(answer.encode('unicode-escape'))
- answer = answer['stringified'].decode('unicode-escape')
+ # failed result
+ elif search('pfail', webpage):
+ return results
- results.append({'answer': answer})
+ # append result
+ results.append({'url': request(search_query, {})['url'],
+ 'title': search_query + ' - Wolfram|Alpha'})
return results