|
@@ -25,8 +25,7 @@ if __name__ == "__main__":
|
25
|
25
|
from flask import Flask, request, flash, render_template
|
26
|
26
|
import ConfigParser
|
27
|
27
|
from os import getenv
|
28
|
|
-from searx.engines import engines
|
29
|
|
-import grequests
|
|
28
|
+from searx.engines import search
|
30
|
29
|
|
31
|
30
|
cfg = ConfigParser.SafeConfigParser()
|
32
|
31
|
cfg.read('/etc/searx.conf')
|
|
@@ -38,14 +37,6 @@ cfg.read('searx.conf')
|
38
|
37
|
app = Flask(__name__)
|
39
|
38
|
app.secret_key = cfg.get('app', 'secret_key')
|
40
|
39
|
|
41
|
|
-def default_request_params():
|
42
|
|
- return {'method': 'GET', 'headers': {}, 'data': {}, 'url': ''}
|
43
|
|
-
|
44
|
|
-def make_callback(results, callback):
|
45
|
|
- def process_callback(response, **kwargs):
|
46
|
|
- results.extend(callback(response))
|
47
|
|
- return process_callback
|
48
|
|
-
|
49
|
40
|
@app.route('/', methods=['GET', 'POST'])
|
50
|
41
|
def index():
|
51
|
42
|
if request.method=='POST':
|
|
@@ -53,30 +44,8 @@ def index():
|
53
|
44
|
flash('Wrong post data')
|
54
|
45
|
return render_template('index.html')
|
55
|
46
|
query = request.form['q']
|
56
|
|
- requests = []
|
57
|
|
- results = []
|
58
|
|
- user_agent = request.headers.get('User-Agent', '')
|
59
|
|
- for engine in engines:
|
60
|
|
- headers = default_request_params()
|
61
|
|
- headers['User-Agent'] = user_agent
|
62
|
|
- request_params = engine.request(query, headers)
|
63
|
|
- callback = make_callback(results, engine.response)
|
64
|
|
- if request_params['method'] == 'GET':
|
65
|
|
- req = grequests.get(request_params['url']
|
66
|
|
- ,headers=headers
|
67
|
|
- ,hooks=dict(response=callback)
|
68
|
|
- )
|
69
|
|
- else:
|
70
|
|
- req = grequests.post(request_params['url']
|
71
|
|
- ,data=request_params['data']
|
72
|
|
- ,headers=headers
|
73
|
|
- ,hooks=dict(response=callback)
|
74
|
|
- )
|
75
|
|
- requests.append(req)
|
76
|
|
- grequests.map(requests)
|
|
47
|
+ results = search(query, request)
|
77
|
48
|
return render_template('results.html', results=results, q=query)
|
78
|
|
-
|
79
|
|
-
|
80
|
49
|
return render_template('index.html')
|
81
|
50
|
|
82
|
51
|
if __name__ == "__main__":
|