diff options
| author | vojkovic <git@vojk.au> | 2026-08-03 16:57:26 +0000 |
|---|---|---|
| committer | Brock Vojkovic <brock@vojk.au> | 2026-08-12 19:05:02 +0800 |
| commit | 1c3bb1e88f8781bd725c57a9a1c609ce0bb09926 (patch) | |
| tree | d1711396d056b3b653246753b334fe86dd020a06 | |
| parent | 54613defc7d4cbbc1d8ec3ba269b90717eab0958 (diff) | |
[mod] defaults: GET method and ddg autocomplete
| -rw-r--r-- | docs/admin/settings/settings_search.rst | 4 | ||||
| -rw-r--r-- | docs/admin/settings/settings_server.rst | 6 | ||||
| -rw-r--r-- | searx/settings.yml | 11 | ||||
| -rw-r--r-- | searx/settings_defaults.py | 4 | ||||
| -rw-r--r-- | searx/templates/simple/elements/apis.html | 2 | ||||
| -rw-r--r-- | searx/templates/simple/elements/corrections.html | 2 | ||||
| -rw-r--r-- | searx/templates/simple/elements/infobox.html | 2 | ||||
| -rw-r--r-- | searx/templates/simple/elements/suggestions.html | 2 | ||||
| -rw-r--r-- | searx/templates/simple/results.html | 6 | ||||
| -rw-r--r-- | searx/templates/simple/search.html | 2 | ||||
| -rw-r--r-- | searx/templates/simple/simple_search.html | 2 | ||||
| -rwxr-xr-x | searx/webapp.py | 2 |
12 files changed, 22 insertions, 23 deletions
diff --git a/docs/admin/settings/settings_search.rst b/docs/admin/settings/settings_search.rst index 2aaa4795d..5e11fc810 100644 --- a/docs/admin/settings/settings_search.rst +++ b/docs/admin/settings/settings_search.rst @@ -8,7 +8,7 @@ search: safe_search: 0 - autocomplete: "" + autocomplete: "duckduckgo" favicon_resolver: "" default_lang: "" ban_time_on_fail: 5 @@ -32,7 +32,7 @@ - ``2``: Strict ``autocomplete``: - Existing autocomplete backends, leave blank to turn it off. + Existing autocomplete backends, set blank to turn it off. - ``360search`` - ``baidu`` diff --git a/docs/admin/settings/settings_server.rst b/docs/admin/settings/settings_server.rst index dabfc259c..7b677d695 100644 --- a/docs/admin/settings/settings_server.rst +++ b/docs/admin/settings/settings_server.rst @@ -14,7 +14,7 @@ limiter: false public_instance: false image_proxy: false - method: "POST" + method: "GET" default_http_headers: X-Content-Type-Options : nosniff X-Download-Options : noopen @@ -58,8 +58,8 @@ ``method`` : ``GET`` | ``POST`` - HTTP method. By defaults ``POST`` is used / The ``POST`` method has the - advantage with some WEB browsers that the history is not easy to read, but + HTTP method. By default, ``GET`` is used / The ``POST`` method has the + advantage with some browsers that the history is not saved, but there are also various disadvantages that sometimes **severely restrict the ease of use for the end user** (e.g. back button to jump back to the previous search page and drag & drop of search term to new tabs do not work as diff --git a/searx/settings.yml b/searx/settings.yml index 1650a484d..7acb40bc2 100644 --- a/searx/settings.yml +++ b/searx/settings.yml @@ -41,9 +41,9 @@ search: # Filter results. 0: None, 1: Moderate, 2: Strict safe_search: 0 # Existing autocomplete backends: "360search", "baidu", "bing", "brave", "dbpedia", "duckduckgo", "google", - # "kagi", "yandex", "privacywall", "mwmbl", "naver", "seznam", "sogou", "startpage", "swisscows", "quark", - # "qwant", "wikipedia" - leave blank to turn it off by default. - autocomplete: "" + # "yandex", "privacywall", "mwmbl", "naver", "seznam", "sogou", "startpage", "swisscows", "quark", "qwant", + # "wikipedia" - set blank to turn it off by default. + autocomplete: "duckduckgo" # minimun characters to type before autocompleter starts autocomplete_min: 4 # backend for the favicon near URL in search results. @@ -107,11 +107,10 @@ server: image_proxy: false # 1.0 and 1.1 are supported http_protocol_version: "1.0" - # POST queries are "more secure!" but are also the source of hard-to-locate - # annoyances, which is why GET may be better for end users and their browsers. + # POST keeps search queries out of the browsers history, but causes UX issues. # see https://github.com/searxng/searxng/pull/3619 # Is overwritten by ${SEARXNG_METHOD} - method: "POST" + method: "GET" default_http_headers: X-Content-Type-Options: nosniff X-Download-Options: noopen diff --git a/searx/settings_defaults.py b/searx/settings_defaults.py index c23ebd956..5fed08b68 100644 --- a/searx/settings_defaults.py +++ b/searx/settings_defaults.py @@ -192,7 +192,7 @@ SCHEMA: dict[str, t.Any] = { 'brand': SettingsBrand, 'search': { 'safe_search': SettingsValue((0, 1, 2), 0), - 'autocomplete': SettingsValue(str, ''), + 'autocomplete': SettingsValue(str, 'duckduckgo'), 'autocomplete_min': SettingsValue(int, 4), 'favicon_resolver': SettingsValue(str, ''), 'default_lang': SettingsValue(tuple(SXNG_LOCALE_TAGS + ['']), ''), @@ -219,7 +219,7 @@ SCHEMA: dict[str, t.Any] = { 'base_url': SettingsValue((False, str), False, 'SEARXNG_BASE_URL'), 'image_proxy': SettingsValue(bool, False, 'SEARXNG_IMAGE_PROXY'), 'http_protocol_version': SettingsValue(('1.0', '1.1'), '1.0'), - 'method': SettingsValue(('POST', 'GET'), 'POST', 'SEARXNG_METHOD'), + 'method': SettingsValue(('POST', 'GET'), 'GET', 'SEARXNG_METHOD'), 'default_http_headers': SettingsValue(dict, {}), }, # redis is deprecated .. diff --git a/searx/templates/simple/elements/apis.html b/searx/templates/simple/elements/apis.html index d1d5ec60d..d09fa758d 100644 --- a/searx/templates/simple/elements/apis.html +++ b/searx/templates/simple/elements/apis.html @@ -4,7 +4,7 @@ <div class="wrapper"> {%- for output_type in search_formats -%} <div class="left"> - <form method="{{ method or 'POST' }}" action="{{ url_for('search') }}"> + <form method="{{ method }}" action="{{ url_for('search') }}"> <input type="hidden" name="q" value="{{ q|e }}"> {%- for category in selected_categories -%} <input type="hidden" name="category_{{ category }}" value="1"> diff --git a/searx/templates/simple/elements/corrections.html b/searx/templates/simple/elements/corrections.html index 57556b43f..570fb76e1 100644 --- a/searx/templates/simple/elements/corrections.html +++ b/searx/templates/simple/elements/corrections.html @@ -2,7 +2,7 @@ <h4 id="corrections-title">{{ _('Try searching for:') }}</h4> {% for correction in corrections %} <div class="left"> - <form method="{{ method or 'POST' }}" action="{{ url_for('search') }}" role="navigation"> + <form method="{{ method }}" action="{{ url_for('search') }}" role="navigation"> {% for category in selected_categories %} <input type="hidden" name="category_{{ category }}" value="1"> {% endfor %} diff --git a/searx/templates/simple/elements/infobox.html b/searx/templates/simple/elements/infobox.html index 4d75ad802..f8e02ad9d 100644 --- a/searx/templates/simple/elements/infobox.html +++ b/searx/templates/simple/elements/infobox.html @@ -31,7 +31,7 @@ <div> <h3><bdi>{{ topic.name }}</bdi></h3> {%- for suggestion in topic.suggestions -%} - <form method="{{ method or 'POST' }}" action="{{ url_for('search') }}"> + <form method="{{ method }}" action="{{ url_for('search') }}"> <input type="hidden" name="q" value="{{ suggestion }}"> <input type="hidden" name="time_range" value="{{ time_range }}"> <input type="hidden" name="language" value="{{ current_language }}"> diff --git a/searx/templates/simple/elements/suggestions.html b/searx/templates/simple/elements/suggestions.html index e847578d7..7ad6f7061 100644 --- a/searx/templates/simple/elements/suggestions.html +++ b/searx/templates/simple/elements/suggestions.html @@ -3,7 +3,7 @@ <summary class="title" id="suggestions-title">{{ _('Suggestions') }}</summary> <ul class="wrapper"> {%- for suggestion in suggestions -%} - <li><form method="{{ method or 'POST' }}" action="{{ url_for('search') }}"> + <li><form method="{{ method }}" action="{{ url_for('search') }}"> <input type="hidden" name="q" value="{{ suggestion.url }}"> {%- for category in selected_categories -%} <input type="hidden" name="category_{{ category }}" value="1"> diff --git a/searx/templates/simple/results.html b/searx/templates/simple/results.html index 18a6c6bfa..d40b69bfb 100644 --- a/searx/templates/simple/results.html +++ b/searx/templates/simple/results.html @@ -75,7 +75,7 @@ {% if paging %} <nav id="pagination" role="navigation"> {% if pageno > 1 %} - <form method="{{ method or 'POST' }}" action="{{ url_for('search') }}" class="previous_page"> + <form method="{{ method }}" action="{{ url_for('search') }}" class="previous_page"> <div class="{% if rtl %}right{% else %}left{% endif %}"> <input type="hidden" name="q" value="{{ q|e }}" > {% for category in selected_categories %} @@ -93,7 +93,7 @@ </form> {% endif %} {%- if results | count > 0 -%} - <form method="{{ method or 'POST' }}" action="{{ url_for('search') }}" class="next_page"> + <form method="{{ method }}" action="{{ url_for('search') }}" class="next_page"> <div class="{% if rtl %}left{% else %}right{% endif %}"> <input type="hidden" name="q" value="{{ q|e }}" > {% for category in selected_categories %} @@ -119,7 +119,7 @@ <div class="numbered_pagination"> {% for x in range(pstart, pend) %} - <form method="{{ method or 'POST' }}" action="{{ url_for('search') }}" class="page_number"> + <form method="{{ method }}" action="{{ url_for('search') }}" class="page_number"> <input type="hidden" name="q" value="{{ q|e }}" > {% for category in selected_categories %} <input type="hidden" name="category_{{ category }}" value="1" > diff --git a/searx/templates/simple/search.html b/searx/templates/simple/search.html index 180c56160..a91a0a54b 100644 --- a/searx/templates/simple/search.html +++ b/searx/templates/simple/search.html @@ -1,4 +1,4 @@ -<form id="search" method="{{ method or 'POST' }}" action="{{ url_for('search') }}" role="search"> +<form id="search" method="{{ method }}" action="{{ url_for('search') }}" role="search"> <div id="search_header"> <a id="search_logo" href="{{ url_for('index') }}" tabindex="0" title="{{ _('Display the front page') }}"> <span hidden>SearXNG</span> diff --git a/searx/templates/simple/simple_search.html b/searx/templates/simple/simple_search.html index af533e6e0..0d95daa28 100644 --- a/searx/templates/simple/simple_search.html +++ b/searx/templates/simple/simple_search.html @@ -1,4 +1,4 @@ -<form id="search" method="{{ method or 'POST' }}" action="{{ url_for('search') }}" role="search"> +<form id="search" method="{{ method }}" action="{{ url_for('search') }}" role="search"> <div id="search_header"> <div id="search_view"> <div class="search_box"> diff --git a/searx/webapp.py b/searx/webapp.py index 07ef06078..3be042ba5 100755 --- a/searx/webapp.py +++ b/searx/webapp.py @@ -1195,7 +1195,7 @@ def opensearch(): method = 'GET' if method not in ('POST', 'GET'): - method = 'POST' + method = 'GET' ret = render('opensearch.xml', opensearch_method=method, autocomplete=autocomplete) resp = Response(response=ret, status=200, mimetype="application/opensearchdescription+xml") |
