summaryrefslogtreecommitdiff
path: root/searx/engines/__init__.py
diff options
context:
space:
mode:
authorasciimoo <asciimoo@gmail.com>2014-01-29 20:52:04 +0100
committerasciimoo <asciimoo@gmail.com>2014-01-29 20:52:04 +0100
commit8bb94e3dc4c35042ec5fb16f412331f4b8ca6c8a (patch)
tree827dd9b5c248e39a62301c782ffaa2603c0a32b5 /searx/engines/__init__.py
parent93b5ecdc756d0fc81d72d0f85b6d24af32a081cf (diff)
[enh] paging support
Diffstat (limited to 'searx/engines/__init__.py')
-rw-r--r--searx/engines/__init__.py8
1 files changed, 7 insertions, 1 deletions
diff --git a/searx/engines/__init__.py b/searx/engines/__init__.py
index 96b074ae9..73a63f0a3 100644
--- a/searx/engines/__init__.py
+++ b/searx/engines/__init__.py
@@ -53,6 +53,8 @@ if not 'engines' in settings or not settings['engines']:
for engine_data in settings['engines']:
engine_name = engine_data['engine']
engine = load_module(engine_name + '.py')
+ if not hasattr(engine, 'paging'):
+ engine.paging = False
for param_name in engine_data:
if param_name == 'engine':
continue
@@ -156,7 +158,7 @@ def score_results(results):
return sorted(results, key=itemgetter('score'), reverse=True)
-def search(query, request, selected_engines):
+def search(query, request, selected_engines, pageno=1):
global engines, categories, number_of_searches
requests = []
results = {}
@@ -171,10 +173,14 @@ def search(query, request, selected_engines):
engine = engines[selected_engine['name']]
+ if pageno > 1 and not engine.paging:
+ continue
+
request_params = default_request_params()
request_params['headers']['User-Agent'] = user_agent
request_params['category'] = selected_engine['category']
request_params['started'] = datetime.now()
+ request_params['pageno'] = pageno
request_params = engine.request(query, request_params)
callback = make_callback(