From 7cab51f98f43f2d476d62435bc762983000e9376 Mon Sep 17 00:00:00 2001 From: fehho Date: Thu, 24 Nov 2022 13:12:06 -0600 Subject: [PATCH] Deserialize explicitly blank strings Default behavior of urllib.parse_qs is to discard blank values, causing a preference of none to be deserialized as undefined, using the instance default rather than the selected preference. --- searx/preferences.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/searx/preferences.py b/searx/preferences.py index 8efa737fe..3d23c9331 100644 --- a/searx/preferences.py +++ b/searx/preferences.py @@ -441,7 +441,7 @@ class Preferences: """parse (base64) preferences from request (``flask.request.form['preferences']``)""" bin_data = decompress(urlsafe_b64decode(input_data)) dict_data = {} - for x, y in parse_qs(bin_data.decode('ascii')).items(): + for x, y in parse_qs(bin_data.decode('ascii'), keep_blank_values=True).items(): dict_data[x] = y[0] self.parse_dict(dict_data)