diff options
| author | asciimoo <asciimoo@gmail.com> | 2013-10-15 19:11:43 +0200 |
|---|---|---|
| committer | asciimoo <asciimoo@gmail.com> | 2013-10-15 19:11:43 +0200 |
| commit | d793c2733c7aac3aacf40f3f5cf9fc0919305e76 (patch) | |
| tree | 0a6f500a17f14d9da4921ad8fbeaf63f1ebccac1 /searx/engines/__init__.py | |
| parent | c3b7ed868783691d5678977779e91568cc2f2fec (diff) | |
[enh] engine types
Diffstat (limited to 'searx/engines/__init__.py')
| -rw-r--r-- | searx/engines/__init__.py | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/searx/engines/__init__.py b/searx/engines/__init__.py index ced673bde..86fa50d2a 100644 --- a/searx/engines/__init__.py +++ b/searx/engines/__init__.py @@ -6,7 +6,7 @@ import grequests engine_dir = dirname(realpath(__file__)) -engines = [] +engines = {} for filename in listdir(engine_dir): modname = splitext(filename)[0] @@ -16,14 +16,16 @@ for filename in listdir(engine_dir): engine = load_source(modname, filepath) if not hasattr(engine, 'request') or not hasattr(engine, 'response'): continue - engines.append(engine) + engines[modname] = engine def default_request_params(): return {'method': 'GET', 'headers': {}, 'data': {}, 'url': ''} -def make_callback(results, callback): +def make_callback(engine_name, results, callback): def process_callback(response, **kwargs): - results.extend(callback(response)) + for result in callback(response): + result['engine'] = engine_name + results.append(result) return process_callback def search(query, request): @@ -31,11 +33,11 @@ def search(query, request): requests = [] results = [] user_agent = request.headers.get('User-Agent', '') - for engine in engines: + for ename, engine in engines.items(): headers = default_request_params() headers['User-Agent'] = user_agent request_params = engine.request(query, headers) - callback = make_callback(results, engine.response) + callback = make_callback(ename, results, engine.response) if request_params['method'] == 'GET': req = grequests.get(request_params['url'] ,headers=headers |