diff options
| author | a01200356 <a01200356@itesm.mx> | 2016-01-01 22:02:10 -0600 |
|---|---|---|
| committer | a01200356 <a01200356@itesm.mx> | 2016-01-01 22:02:10 -0600 |
| commit | 0871c7ca85cd19a2fa0971c7db28516a74255d5d (patch) | |
| tree | 533fbb3dda61f45db2b7a970b831a91c819f7313 /searx/engines/wolframalpha_noapi.py | |
| parent | be54e5269a982e272e2fe8a5064ed898373c9063 (diff) | |
[enh] wolframalpha appends result
Diffstat (limited to 'searx/engines/wolframalpha_noapi.py')
| -rw-r--r-- | searx/engines/wolframalpha_noapi.py | 26 |
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 |