logo

searx

Unnamed repository; edit this file 'description' to name the repository.
commit: b6fc1546160285a2e0049d20cbd7e64269db1875
parent: 0171db5c3f6aca3e60af8b9e288dd6ea541e3e0c
Author: Adam Tauber <asciimoo@gmail.com>
Date:   Sat, 24 Dec 2016 22:23:36 +0100

[enh] add searx engine

Diffstat:

searx/engines/searx_engine.py | 57+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
searx/settings.yml | 8++++++++
2 files changed, 65 insertions(+), 0 deletions(-)

diff --git a/searx/engines/searx_engine.py b/searx/engines/searx_engine.py @@ -0,0 +1,57 @@ +""" + Searx (all) + + @website https://github.com/asciimoo/searx + @provide-api yes (https://asciimoo.ithub.io/searx/dev/search_api.html) + + @using-api yes + @results JSON + @stable yes (using api) + @parse url, title, content +""" + +from json import loads +from searx.engines import categories as searx_categories + + +categories = searx_categories.keys() + +# search-url +instance_urls = [] +instance_index = 0 + + +# do search-request +def request(query, params): + global instance_index + params['url'] = instance_urls[instance_index % len(instance_urls)] + params['method'] = 'POST' + + instance_index += 1 + + params['data'] = { + 'q': query, + 'pageno': params['pageno'], + 'language': params['language'], + 'time_range': params['time_range'], + 'category': params['category'], + 'format': 'json' + } + + return params + + +# get response from search-request +def response(resp): + + response_json = loads(resp.text) + results = response_json['results'] + + for i in ('answers', 'infoboxes'): + results.extend(response_json[i]) + + results.extend({'suggestion': s} for s in response_json['suggestions']) + + results.append({'number_of_results': response_json['number_of_results']}) + + return results diff --git a/searx/settings.yml b/searx/settings.yml @@ -441,6 +441,14 @@ engines: shortcut : scc disabled : True +# - name : searx +# engine : searx_engine +# shortcut : se +# instance_urls : +# - http://127.0.0.1:8888/ +# - ... +# disabled : True + - name : spotify engine : spotify shortcut : stf