From 40272b0044a2ef520ff9c3fb3513c5a340663f22 Mon Sep 17 00:00:00 2001 From: Marc Abonce Seguin Date: Thu, 18 Jan 2018 20:51:27 -0600 Subject: [PATCH] [fix] never pass bangs to autocomplete suggestions --- searx/autocomplete.py | 4 ++++ searx/webapp.py | 7 +++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/searx/autocomplete.py b/searx/autocomplete.py index f8a45b3ec..ff8958500 100644 --- a/searx/autocomplete.py +++ b/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 json import loads from searx import settings @@ -26,6 +27,9 @@ from searx.engines import ( from searx.poolrequests import get as http_get from searx.url_utils import urlencode +if sys.version_info[0] == 3: + unicode = str + def get(*args, **kwargs): if 'timeout' not in kwargs: diff --git a/searx/webapp.py b/searx/webapp.py index 8290b6822..dd4c84098 100644 --- a/searx/webapp.py +++ b/searx/webapp.py @@ -636,8 +636,11 @@ def autocompleter(): # parse searx specific autocompleter results like !bang 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 language = request.preferences.get_value('language') if not language or language == 'all':