Browse Source

[refactor] webapp.py: reuse get_client_settings() method to unify preference handling before render

Bnyro 5 months ago
parent
commit
d4e3a5f2f2
2 changed files with 16 additions and 20 deletions
  1. 2 2
      searx/static/themes/simple/src/js/main/search.js
  2. 14 18
      searx/webapp.py

+ 2 - 2
searx/static/themes/simple/src/js/main/search.js

@@ -43,11 +43,11 @@
       createClearButton(qinput);
 
       // autocompleter
-      if (searxng.settings.autocomplete_provider) {
+      if (searxng.settings.autocomplete) {
         searxng.autocomplete = AutoComplete.call(w, {
           Url: "./autocompleter",
           EmptyMessage: searxng.settings.translations.no_item_found,
-          HttpMethod: searxng.settings.http_method,
+          HttpMethod: searxng.settings.method,
           HttpHeaders: {
             "Content-type": "application/x-www-form-urlencoded",
             "X-Requested-With": "XMLHttpRequest"

+ 14 - 18
searx/webapp.py

@@ -357,29 +357,40 @@ def get_pretty_url(parsed_url: urllib.parse.ParseResult):
 def get_client_settings():
     req_pref = request.preferences
     return {
-        'autocomplete_provider': req_pref.get_value('autocomplete'),
+        'autocomplete': req_pref.get_value('autocomplete'),
         'autocomplete_min': get_setting('search.autocomplete_min'),
-        'http_method': req_pref.get_value('method'),
+        'method': req_pref.get_value('method'),
         'infinite_scroll': req_pref.get_value('infinite_scroll'),
         'translations': get_translations(),
         'search_on_category_select': req_pref.get_value('search_on_category_select'),
         'hotkeys': req_pref.get_value('hotkeys'),
         'url_formatting': req_pref.get_value('url_formatting'),
         'theme_static_path': custom_url_for('static', filename='themes/simple'),
+        'results_on_new_tab': req_pref.get_value('results_on_new_tab'),
+        'favicon_resolver': req_pref.get_value('favicon_resolver'),
+        'advanced_search': req_pref.get_value('advanced_search'),
+        'query_in_title': req_pref.get_value('query_in_title'),
+        'safesearch': str(req_pref.get_value('safesearch')),
+        'theme': req_pref.get_value('theme'),
+        'doi_resolver': get_doi_resolver(req_pref),
     }
 
 
 def render(template_name: str, **kwargs):
+    # values from the preferences
     # pylint: disable=too-many-statements
+    client_settings = get_client_settings()
     kwargs['client_settings'] = str(
         base64.b64encode(
             bytes(
-                json.dumps(get_client_settings()),
+                json.dumps(client_settings),
                 encoding='utf-8',
             )
         ),
         encoding='utf-8',
     )
+    kwargs['preferences'] = request.preferences
+    kwargs.update(client_settings)
 
     # values from the HTTP requests
     kwargs['endpoint'] = 'results' if 'q' in kwargs else request.endpoint
@@ -387,20 +398,6 @@ def render(template_name: str, **kwargs):
     kwargs['errors'] = request.errors
     kwargs['link_token'] = link_token.get_token()
 
-    # values from the preferences
-    kwargs['preferences'] = request.preferences
-    kwargs['autocomplete'] = request.preferences.get_value('autocomplete')
-    kwargs['favicon_resolver'] = request.preferences.get_value('favicon_resolver')
-    kwargs['infinite_scroll'] = request.preferences.get_value('infinite_scroll')
-    kwargs['search_on_category_select'] = request.preferences.get_value('search_on_category_select')
-    kwargs['hotkeys'] = request.preferences.get_value('hotkeys')
-    kwargs['url_formatting'] = request.preferences.get_value('url_formatting')
-    kwargs['results_on_new_tab'] = request.preferences.get_value('results_on_new_tab')
-    kwargs['advanced_search'] = request.preferences.get_value('advanced_search')
-    kwargs['query_in_title'] = request.preferences.get_value('query_in_title')
-    kwargs['safesearch'] = str(request.preferences.get_value('safesearch'))
-    kwargs['theme'] = request.preferences.get_value('theme')
-    kwargs['method'] = request.preferences.get_value('method')
     kwargs['categories_as_tabs'] = list(settings['categories_as_tabs'].keys())
     kwargs['categories'] = get_enabled_categories(settings['categories_as_tabs'].keys())
     kwargs['DEFAULT_CATEGORY'] = DEFAULT_CATEGORY
@@ -440,7 +437,6 @@ def render(template_name: str, **kwargs):
     kwargs['proxify_results'] = settings['result_proxy']['proxify_results']
     kwargs['cache_url'] = settings['ui']['cache_url']
     kwargs['get_result_template'] = get_result_template
-    kwargs['doi_resolver'] = get_doi_resolver(request.preferences)
     kwargs['opensearch_url'] = (
         url_for('opensearch')
         + '?'