Browse Source

[enh] engine selection support

asciimoo 11 years ago
parent
commit
9e1ded688f
2 changed files with 10 additions and 2 deletions
  1. 3 1
      searx/engines/__init__.py
  2. 7 1
      searx/webapp.py

+ 3 - 1
searx/engines/__init__.py

@@ -28,12 +28,14 @@ def make_callback(engine_name, results, callback):
             results.append(result)
     return process_callback
 
-def search(query, request):
+def search(query, request, selected_engines):
     global engines
     requests = []
     results = []
     user_agent = request.headers.get('User-Agent', '')
     for ename, engine in engines.items():
+        if ename not in selected_engines:
+            continue
         headers = default_request_params()
         headers['User-Agent'] = user_agent
         request_params = engine.request(query, headers)

+ 7 - 1
searx/webapp.py

@@ -47,8 +47,14 @@ def index():
         if not request.form.get('q'):
             flash('Wrong post data')
             return render('index.html')
+        selected_engines = []
+        for pd_name,pd in request.form.items():
+            print pd
+            if pd_name.startswith('engine_'):
+                selected_engines.append(pd_name[7:])
+        print selected_engines
         query = request.form['q']
-        results = search(query, request)
+        results = search(query, request, selected_engines)
         return render('results.html', results=results, q=query)
     return render('index.html')