Browse Source

[fix] cleanup: rename `searx` leftovers to `SearXNG` (#5049)

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
Markus Heiser 1 week ago
parent
commit
649a8dd577

+ 1 - 1
AUTHORS.rst

@@ -2,7 +2,7 @@ searxng is a fork from `searx <https://github.com/searx/searx>`_ and is
 maintained by Markus Heiser (`@return42 <https://github.com/return42>`_)
 maintained by Markus Heiser (`@return42 <https://github.com/return42>`_)
 
 
 People who have submitted patches/translations, reported bugs, consulted
 People who have submitted patches/translations, reported bugs, consulted
-features or generally made searx better:
+features or generally made SearXNG better:
 
 
 - Adam Tauber `@asciimoo <https://github.com/asciimoo>`_
 - Adam Tauber `@asciimoo <https://github.com/asciimoo>`_
 - Matej Cotman `@matejc <https://github.com/matejc>`_
 - Matej Cotman `@matejc <https://github.com/matejc>`_

+ 1 - 1
docs/admin/api.rst

@@ -59,7 +59,7 @@ Sample response
          "shortcut": "bb"
          "shortcut": "bb"
        },
        },
      ],
      ],
-     "instance_name": "searx",
+     "instance_name": "SearXNG",
      "locales": {
      "locales": {
        "de": "Deutsch (German)",
        "de": "Deutsch (German)",
        "en": "English",
        "en": "English",

+ 2 - 2
docs/admin/installation.rst

@@ -18,5 +18,5 @@ special preferences, it's recommended to use the :ref:`installation container` o
 .. attention::
 .. attention::
 
 
    SearXNG is growing rapidly, you should regularly read our :ref:`migrate and
    SearXNG is growing rapidly, you should regularly read our :ref:`migrate and
-   stay tuned` section.  If you want to upgrade an existing instance or migrate
-   from searx to SearXNG, you should read this section first!
+   stay tuned` section.  If you want to upgrade an existing instance, you
+   should read this section first!

+ 1 - 1
docs/admin/settings/settings_ui.rst

@@ -25,7 +25,7 @@
 ``default_locale`` :
 ``default_locale`` :
   SearXNG interface language.  If blank, the locale is detected by using the
   SearXNG interface language.  If blank, the locale is detected by using the
   browser language.  If it doesn't work, or you are deploying a language
   browser language.  If it doesn't work, or you are deploying a language
-  specific instance of searx, a locale can be defined using an ISO language
+  specific instance of SearXNG, a locale can be defined using an ISO language
   code, like ``fr``, ``en``, ``de``.
   code, like ``fr``, ``en``, ``de``.
 
 
 ``query_in_title`` :
 ``query_in_title`` :

+ 2 - 2
searx/engines/base.py

@@ -7,7 +7,7 @@ import re
 
 
 from urllib.parse import urlencode
 from urllib.parse import urlencode
 from lxml import etree
 from lxml import etree
-from searx.utils import searx_useragent
+from searx.utils import searxng_useragent
 
 
 # about
 # about
 about = {
 about = {
@@ -69,7 +69,7 @@ def request(query, params):
 
 
     params['url'] = base_url.format(**string_args)
     params['url'] = base_url.format(**string_args)
 
 
-    params['headers']['User-Agent'] = searx_useragent()
+    params['headers']['User-Agent'] = searxng_useragent()
     return params
     return params
 
 
 
 

+ 1 - 1
searx/engines/elasticsearch.py

@@ -101,7 +101,7 @@ def request(query, params):
 def _match_query(query):
 def _match_query(query):
     """
     """
     The standard for full text queries.
     The standard for full text queries.
-    searx format: "key:value" e.g. city:berlin
+    SearXNG format: "key:value" e.g. city:berlin
     REF: https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-match-query.html
     REF: https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-match-query.html
     """
     """
 
 

+ 3 - 3
searx/engines/photon.py

@@ -5,7 +5,7 @@
 
 
 from json import loads
 from json import loads
 from urllib.parse import urlencode
 from urllib.parse import urlencode
-from searx.utils import searx_useragent
+from searx.utils import searxng_useragent
 
 
 # about
 # about
 about = {
 about = {
@@ -40,8 +40,8 @@ def request(query, params):
         if language in supported_languages:
         if language in supported_languages:
             params['url'] = params['url'] + "&lang=" + language
             params['url'] = params['url'] + "&lang=" + language
 
 
-    # using searx User-Agent
-    params['headers']['User-Agent'] = searx_useragent()
+    # using SearXNG User-Agent
+    params['headers']['User-Agent'] = searxng_useragent()
 
 
     return params
     return params
 
 

+ 2 - 2
searx/engines/stract.py

@@ -6,7 +6,7 @@ ends.
 """
 """
 
 
 from json import dumps
 from json import dumps
-from searx.utils import searx_useragent
+from searx.utils import searxng_useragent
 from searx.enginelib.traits import EngineTraits
 from searx.enginelib.traits import EngineTraits
 
 
 about = {
 about = {
@@ -31,7 +31,7 @@ def request(query, params):
     params['headers'] = {
     params['headers'] = {
         'Accept': 'application/json',
         'Accept': 'application/json',
         'Content-Type': 'application/json',
         'Content-Type': 'application/json',
-        'User-Agent': searx_useragent(),
+        'User-Agent': searxng_useragent(),
     }
     }
     region = traits.get_region(params["searxng_locale"], default=traits.all_locale)
     region = traits.get_region(params["searxng_locale"], default=traits.all_locale)
     params['data'] = dumps(
     params['data'] = dumps(

+ 1 - 1
searx/engines/torznab.py

@@ -149,7 +149,7 @@ def build_result(item: etree.Element) -> Dict[str, Any]:
     leechers = get_torznab_attribute(item, 'leechers')
     leechers = get_torznab_attribute(item, 'leechers')
     peers = get_torznab_attribute(item, 'peers')
     peers = get_torznab_attribute(item, 'peers')
 
 
-    # map attributes to searx result
+    # map attributes to SearXNG result
     result: Dict[str, Any] = {
     result: Dict[str, Any] = {
         'template': 'torrent.html',
         'template': 'torrent.html',
         'title': get_attribute(item, 'title'),
         'title': get_attribute(item, 'title'),

+ 2 - 2
searx/engines/wikidata.py

@@ -15,7 +15,7 @@ from babel.dates import format_datetime, format_date, format_time, get_datetime_
 
 
 from searx.data import WIKIDATA_UNITS
 from searx.data import WIKIDATA_UNITS
 from searx.network import post, get
 from searx.network import post, get
-from searx.utils import searx_useragent, get_string_replaces_function
+from searx.utils import searxng_useragent, get_string_replaces_function
 from searx.external_urls import get_external_url, get_earth_coordinates_url, area_to_osm_zoom
 from searx.external_urls import get_external_url, get_earth_coordinates_url, area_to_osm_zoom
 from searx.engines.wikipedia import (
 from searx.engines.wikipedia import (
     fetch_wikimedia_traits,
     fetch_wikimedia_traits,
@@ -142,7 +142,7 @@ replace_http_by_https = get_string_replaces_function({'http:': 'https:'})
 
 
 def get_headers():
 def get_headers():
     # user agent: https://www.mediawiki.org/wiki/Wikidata_Query_Service/User_Manual#Query_limits
     # user agent: https://www.mediawiki.org/wiki/Wikidata_Query_Service/User_Manual#Query_limits
-    return {'Accept': 'application/sparql-results+json', 'User-Agent': searx_useragent()}
+    return {'Accept': 'application/sparql-results+json', 'User-Agent': searxng_useragent()}
 
 
 
 
 def get_label_for_entity(entity_id, language):
 def get_label_for_entity(entity_id, language):

+ 1 - 1
searx/exceptions.py

@@ -97,7 +97,7 @@ class SearxEngineCaptchaException(SearxEngineAccessDeniedException):
 class SearxEngineTooManyRequestsException(SearxEngineAccessDeniedException):
 class SearxEngineTooManyRequestsException(SearxEngineAccessDeniedException):
     """The website has returned a Too Many Request status code
     """The website has returned a Too Many Request status code
 
 
-    By default, searx stops sending requests to this engine for 1 hour.
+    By default, SearXNG stops sending requests to this engine for 1 hour.
     """
     """
 
 
     SUSPEND_TIME_SETTING = "search.suspended_times.SearxEngineTooManyRequests"
     SUSPEND_TIME_SETTING = "search.suspended_times.SearxEngineTooManyRequests"

+ 1 - 1
searx/search/checker/__main__.py

@@ -94,7 +94,7 @@ def run(engine_name_list, verbose):
 
 
 # call by setup.py
 # call by setup.py
 def main():
 def main():
-    parser = argparse.ArgumentParser(description='Check searx engines.')
+    parser = argparse.ArgumentParser(description='Check SearXNG engines.')
     parser.add_argument(
     parser.add_argument(
         'engine_name_list',
         'engine_name_list',
         metavar='engine name',
         metavar='engine name',

+ 1 - 1
searx/settings.yml

@@ -175,7 +175,7 @@ outgoing:
   request_timeout: 3.0
   request_timeout: 3.0
   # the maximum timeout in seconds
   # the maximum timeout in seconds
   # max_request_timeout: 10.0
   # max_request_timeout: 10.0
-  # suffix of searx_useragent, could contain information like an email address
+  # suffix of searxng_useragent, could contain information like an email address
   # to the administrator
   # to the administrator
   useragent_suffix: ""
   useragent_suffix: ""
   # The maximum number of concurrent connections that may be established.
   # The maximum number of concurrent connections that may be established.

+ 3 - 3
searx/translations/messages.pot

@@ -1,12 +1,12 @@
-# Translations template for PROJECT.
+# Translations template for SearXNG.
 # Copyright (C) 2025 ORGANIZATION
 # Copyright (C) 2025 ORGANIZATION
-# This file is distributed under the same license as the PROJECT project.
+# This file is distributed under the same license as the SearXNG project.
 # FIRST AUTHOR <EMAIL@ADDRESS>, 2025.
 # FIRST AUTHOR <EMAIL@ADDRESS>, 2025.
 #
 #
 #, fuzzy
 #, fuzzy
 msgid ""
 msgid ""
 msgstr ""
 msgstr ""
-"Project-Id-Version: PROJECT VERSION\n"
+"Project-Id-Version: SearXNG -\n"
 "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
 "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
 "POT-Creation-Date: 2025-07-03 14:46+0000\n"
 "POT-Creation-Date: 2025-07-03 14:46+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"

+ 3 - 5
searx/utils.py

@@ -61,11 +61,9 @@ class _NotSetClass:  # pylint: disable=too-few-public-methods
 _NOTSET = _NotSetClass()
 _NOTSET = _NotSetClass()
 
 
 
 
-def searx_useragent() -> str:
-    """Return the searx User Agent"""
-    return 'searx/{searx_version} {suffix}'.format(
-        searx_version=VERSION_TAG, suffix=settings['outgoing']['useragent_suffix']
-    ).strip()
+def searxng_useragent() -> str:
+    """Return the SearXNG User Agent"""
+    return f"SearXNG/{VERSION_TAG} {settings['outgoing']['useragent_suffix']}".strip()
 
 
 
 
 def gen_useragent(os_string: Optional[str] = None) -> str:
 def gen_useragent(os_string: Optional[str] = None) -> str:

+ 2 - 2
searxng_extra/update/update_engine_descriptions.py

@@ -16,7 +16,7 @@ from os.path import join
 from lxml.html import fromstring
 from lxml.html import fromstring
 
 
 from searx.engines import wikidata, set_loggers
 from searx.engines import wikidata, set_loggers
-from searx.utils import extract_text, searx_useragent
+from searx.utils import extract_text, searxng_useragent
 from searx.locales import LOCALE_NAMES, locales_initialize, match_locale
 from searx.locales import LOCALE_NAMES, locales_initialize, match_locale
 from searx import searx_dir
 from searx import searx_dir
 from searx.utils import gen_useragent, detect_language
 from searx.utils import gen_useragent, detect_language
@@ -113,7 +113,7 @@ def get_wikipedia_summary(wikipedia_url, searxng_locale):
     # get the REST API URL from the HTML URL
     # get the REST API URL from the HTML URL
 
 
     # Headers
     # Headers
-    headers = {'User-Agent': searx_useragent()}
+    headers = {'User-Agent': searxng_useragent()}
 
 
     if searxng_locale in WIKIPEDIA_LANGUAGE_VARIANTS:
     if searxng_locale in WIKIPEDIA_LANGUAGE_VARIANTS:
         headers['Accept-Language'] = WIKIPEDIA_LANGUAGE_VARIANTS.get(searxng_locale)
         headers['Accept-Language'] = WIKIPEDIA_LANGUAGE_VARIANTS.get(searxng_locale)

+ 1 - 1
tests/unit/settings/user_settings.yml

@@ -1,6 +1,6 @@
 general:
 general:
   debug: false
   debug: false
-  instance_name: "searx"
+  instance_name: "SearXNG"
 
 
 search:
 search:
   safe_search: 0
   safe_search: 0

+ 4 - 4
tests/unit/test_utils.py

@@ -23,10 +23,10 @@ class TestUtils(SearxTestCase):
         self.assertIsNotNone(utils.gen_useragent())
         self.assertIsNotNone(utils.gen_useragent())
         self.assertTrue(utils.gen_useragent().startswith('Mozilla'))
         self.assertTrue(utils.gen_useragent().startswith('Mozilla'))
 
 
-    def test_searx_useragent(self):
-        self.assertIsInstance(utils.searx_useragent(), str)
-        self.assertIsNotNone(utils.searx_useragent())
-        self.assertTrue(utils.searx_useragent().startswith('searx'))
+    def test_searxng_useragent(self):
+        self.assertIsInstance(utils.searxng_useragent(), str)
+        self.assertIsNotNone(utils.searxng_useragent())
+        self.assertTrue(utils.searxng_useragent().startswith('SearXNG'))
 
 
     def test_html_to_text(self):
     def test_html_to_text(self):
         html_str = """
         html_str = """

+ 1 - 1
utils/lib_sxng_weblate.sh

@@ -142,7 +142,7 @@ weblate.push.translations() {
 
 
         # update messages.pot in the master branch
         # update messages.pot in the master branch
         build_msg BABEL 'extract messages from source files and generate POT file'
         build_msg BABEL 'extract messages from source files and generate POT file'
-        pybabel extract -F babel.cfg \
+        pybabel extract -F babel.cfg --project="SearXNG" --version="-" \
                 -o "${messages_pot}" \
                 -o "${messages_pot}" \
                 "searx/"
                 "searx/"