on master help sign in
initial implemention of autocompletion in opensearch.xml
commitcc7f3cb61798463036a886ae5f0ccd06aca5e625 authorThomas Pointhuber <thomas.pointhuber@gmx.at> dateThu 20 Mar 2014, 15:39 (13 years ago) parent360543d
2 files changed+21−5
searx/templates/opensearch.xml+10−1 searx/webapp.py+11−4
searx/templates/opensearch.xml+10−1
@@ -6,9 +6,18 @@
66 <LongName>searx metasearch</LongName>
77 {% if method == 'get' %}
88 <Url type="text/html" method="get" template="{{ host }}?q={searchTerms}"/>
9+ <Url type="application/x-suggestions+json" method="get" template="{{ host }}autocompleter">
10+ <Param name="format" value="x-suggestions" />
11+ <Param name="q" value="{searchTerms}" />
12+ </Url>
913 {% else %}
1014 <Url type="text/html" method="post" template="{{ host }}">
11− <Param name="q" value="{searchTerms}" />
15+ <Param name="q" value="{searchTerms}" />
16+ </Url>
17+ <!-- TODO, POST REQUEST doesn't work -->
18+ <Url type="application/x-suggestions+json" method="get" template="{{ host }}autocompleter">
19+ <Param name="format" value="x-suggestions" />
20+ <Param name="q" value="{searchTerms}" />
1221 </Url>
1322 {% endif %}
1423</OpenSearchDescription>
searx/webapp.py+11−4
@@ -233,10 +233,17 @@ def autocompleter():
233233
234234 # TODO fix XSS-vulnerability, remove test code
235235 autocompleter.querry = request_data.get('q')
236− autocompleter.results = [autocompleter.querry]
237−
238− return Response(json.dumps(autocompleter.results),
239− mimetype='application/json')
236+ autocompleter.results = []
237+
238+ if autocompleter.querry:
239+ autocompleter.results = [autocompleter.querry + "-searx",autocompleter.querry + " asfded",autocompleter.querry + " asdf"]
240+
241+ if request_data.get('format') == 'x-suggestions':
242+ return Response(json.dumps([autocompleter.querry,autocompleter.results]),
243+ mimetype='application/json')
244+ else:
245+ return Response(json.dumps(autocompleter.results),
246+ mimetype='application/json')
240247
241248
242249@app.route('/preferences', methods=['GET', 'POST'])