[fix] decoding of saved preferences in the URL

To compress saved preferences in the URL was introduced in 5f758b2d3 and
slightly fixed in 8f4401462.  But the main fail was not fixed; The decompress
function returns a binary string and this binary should first be decoded to a
string before it is passed to urllib.parse_qs.

BTW: revert the hot-fix from 5973491

Related-to: https://github.com/searxng/searxng/issues/166
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
This commit is contained in:
Markus Heiser 2021-06-26 17:14:13 +02:00
parent 4b60c557a9
commit 6787e5a36b
2 changed files with 4 additions and 4 deletions

View file

@ -437,10 +437,10 @@ class Preferences:
def parse_encoded_data(self, input_data): def parse_encoded_data(self, input_data):
"""parse (base64) preferences from request (``flask.request.form['preferences']``)""" """parse (base64) preferences from request (``flask.request.form['preferences']``)"""
decoded_data = decompress(urlsafe_b64decode(input_data.encode())) bin_data = decompress(urlsafe_b64decode(input_data))
dict_data = {} dict_data = {}
for x, y in parse_qs(decoded_data).items(): for x, y in parse_qs(bin_data.decode('ascii')).items():
dict_data[x.decode()] = y[0].decode() dict_data[x] = y[0]
self.parse_dict(dict_data) self.parse_dict(dict_data)
def parse_dict(self, input_data): def parse_dict(self, input_data):

View file

@ -1456,7 +1456,7 @@ engines:
timeout: 5.0 timeout: 5.0
disabled: true disabled: true
- name: slownik jezyka polskiego - name: słownik języka polskiego
engine: sjp engine: sjp
shortcut: sjp shortcut: sjp
base_url: https://sjp.pwn.pl/ base_url: https://sjp.pwn.pl/