瀏覽代碼

initial implemention of autocompletion in opensearch.xml

Thomas Pointhuber 11 年之前
父節點
當前提交
cc7f3cb617
共有 2 個檔案被更改,包括 21 行新增5 行删除
  1. 10
    1
      searx/templates/opensearch.xml
  2. 11
    4
      searx/webapp.py

+ 10
- 1
searx/templates/opensearch.xml 查看文件

6
   <LongName>searx metasearch</LongName>
6
   <LongName>searx metasearch</LongName>
7
   {% if method == 'get' %}
7
   {% if method == 'get' %}
8
     <Url type="text/html" method="get" template="{{ host }}?q={searchTerms}"/>
8
     <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>
9
   {% else %}
13
   {% else %}
10
     <Url type="text/html" method="post" template="{{ host }}">
14
     <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}" />
12
     </Url>
21
     </Url>
13
   {% endif %}
22
   {% endif %}
14
 </OpenSearchDescription>
23
 </OpenSearchDescription>

+ 11
- 4
searx/webapp.py 查看文件

233
     
233
     
234
     # TODO fix XSS-vulnerability, remove test code
234
     # TODO fix XSS-vulnerability, remove test code
235
     autocompleter.querry = request_data.get('q')
235
     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')
240
 
247
 
241
 
248
 
242
 @app.route('/preferences', methods=['GET', 'POST'])
249
 @app.route('/preferences', methods=['GET', 'POST'])