Browse Source

[fix] never pass bangs to autocomplete suggestions

Marc Abonce Seguin 7 years ago
parent
commit
40272b0044
2 changed files with 9 additions and 2 deletions
  1. 4 0
      searx/autocomplete.py
  2. 5 2
      searx/webapp.py

+ 4 - 0
searx/autocomplete.py

@@ -16,6 +16,7 @@ along with searx. If not, see < http://www.gnu.org/licenses/ >.
 '''
 '''
 
 
 
 
+import sys
 from lxml import etree
 from lxml import etree
 from json import loads
 from json import loads
 from searx import settings
 from searx import settings
@@ -26,6 +27,9 @@ from searx.engines import (
 from searx.poolrequests import get as http_get
 from searx.poolrequests import get as http_get
 from searx.url_utils import urlencode
 from searx.url_utils import urlencode
 
 
+if sys.version_info[0] == 3:
+    unicode = str
+
 
 
 def get(*args, **kwargs):
 def get(*args, **kwargs):
     if 'timeout' not in kwargs:
     if 'timeout' not in kwargs:

+ 5 - 2
searx/webapp.py

@@ -636,8 +636,11 @@ def autocompleter():
     # parse searx specific autocompleter results like !bang
     # parse searx specific autocompleter results like !bang
     raw_results = searx_bang(raw_text_query)
     raw_results = searx_bang(raw_text_query)
 
 
-    # normal autocompletion results only appear if max 3 inner results returned
-    if len(raw_results) <= 3 and completer:
+    # normal autocompletion results only appear if no inner results returned
+    # and there is a query part besides the engine and language bangs
+    if len(raw_results) == 0 and completer and (len(raw_text_query.query_parts) > 1 or
+                                                (len(raw_text_query.languages) == 0 and
+                                                 not raw_text_query.specific)):
         # get language from cookie
         # get language from cookie
         language = request.preferences.get_value('language')
         language = request.preferences.get_value('language')
         if not language or language == 'all':
         if not language or language == 'all':