External bang: bug fix: URL encode the query so "!!g 1+1" works as intended

This commit is contained in:
Alexandre FLAMENT 2022-08-26 20:34:25 +00:00
parent 5284de9137
commit 2af1a6f547

View file

@ -1,5 +1,6 @@
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later
from urllib.parse import quote_plus
from searx.data import EXTERNAL_BANGS from searx.data import EXTERNAL_BANGS
LEAF_KEY = chr(16) LEAF_KEY = chr(16)
@ -39,7 +40,7 @@ def get_bang_definition_and_ac(external_bangs_db, bang):
def resolve_bang_definition(bang_definition, query): def resolve_bang_definition(bang_definition, query):
url, rank = bang_definition.split(chr(1)) url, rank = bang_definition.split(chr(1))
url = url.replace(chr(2), query) url = url.replace(chr(2), quote_plus(query))
if url.startswith('//'): if url.startswith('//'):
url = 'https:' + url url = 'https:' + url
rank = int(rank) if len(rank) > 0 else 0 rank = int(rank) if len(rank) > 0 else 0