From b263a52365246424e1a682a190a74e155441430c Mon Sep 17 00:00:00 2001 From: tiekoetter Date: Thu, 31 Oct 2024 08:15:05 +0000 Subject: [PATCH] [doc] build from commit 5f50d2d529d2f97d9a56699ac22baabf0eb73206 --- .buildinfo | 2 +- 404.html | 13 +- _modules/index.html | 18 +- _modules/searx/autocomplete.html | 13 +- _modules/searx/babel_extract.html | 13 +- _modules/searx/botdetection/_helpers.html | 13 +- _modules/searx/botdetection/config.html | 40 +- _modules/searx/botdetection/ip_lists.html | 13 +- _modules/searx/botdetection/link_token.html | 13 +- _modules/searx/enginelib.html | 13 +- _modules/searx/enginelib/traits.html | 13 +- _modules/searx/engines.html | 13 +- _modules/searx/engines/annas_archive.html | 13 +- _modules/searx/engines/archlinux.html | 13 +- _modules/searx/engines/bing.html | 13 +- _modules/searx/engines/bing_images.html | 13 +- _modules/searx/engines/bing_news.html | 13 +- _modules/searx/engines/bing_videos.html | 13 +- _modules/searx/engines/brave.html | 13 +- _modules/searx/engines/command.html | 13 +- _modules/searx/engines/dailymotion.html | 13 +- _modules/searx/engines/demo_offline.html | 13 +- _modules/searx/engines/demo_online.html | 13 +- _modules/searx/engines/duckduckgo.html | 235 +++--- .../searx/engines/duckduckgo_definitions.html | 13 +- _modules/searx/engines/google.html | 13 +- _modules/searx/engines/google_images.html | 13 +- _modules/searx/engines/google_news.html | 13 +- _modules/searx/engines/google_scholar.html | 13 +- _modules/searx/engines/google_videos.html | 13 +- _modules/searx/engines/mrs.html | 13 +- _modules/searx/engines/mullvad_leta.html | 13 +- _modules/searx/engines/odysee.html | 13 +- _modules/searx/engines/peertube.html | 13 +- _modules/searx/engines/qwant.html | 13 +- _modules/searx/engines/radio_browser.html | 13 +- _modules/searx/engines/sepiasearch.html | 13 +- _modules/searx/engines/sqlite.html | 13 +- _modules/searx/engines/startpage.html | 13 +- _modules/searx/engines/tineye.html | 13 +- _modules/searx/engines/torznab.html | 13 +- _modules/searx/engines/voidlinux.html | 13 +- _modules/searx/engines/wikidata.html | 13 +- _modules/searx/engines/wikipedia.html | 13 +- _modules/searx/engines/xpath.html | 13 +- _modules/searx/engines/yahoo.html | 13 +- _modules/searx/engines/zlibrary.html | 13 +- _modules/searx/exceptions.html | 25 +- _modules/searx/favicons/cache.html | 644 ++++++++++++++++ _modules/searx/favicons/config.html | 176 +++++ _modules/searx/favicons/proxy.html | 363 +++++++++ _modules/searx/favicons/resolvers.html | 217 ++++++ _modules/searx/infopage.html | 13 +- _modules/searx/limiter.html | 22 +- _modules/searx/locales.html | 13 +- _modules/searx/plugins/unit_converter.html | 13 +- _modules/searx/redislib.html | 13 +- _modules/searx/search.html | 13 +- _modules/searx/search/models.html | 13 +- .../searx/search/processors/abstract.html | 13 +- _modules/searx/search/processors/offline.html | 13 +- _modules/searx/search/processors/online.html | 13 +- .../search/processors/online_currency.html | 15 +- .../search/processors/online_dictionary.html | 13 +- .../search/processors/online_url_search.html | 13 +- _modules/searx/settings_loader.html | 13 +- _modules/searx/sqlitedb.html | 455 +++++++++++ _modules/searx/utils.html | 13 +- _sources/admin/index.rst.txt | 1 + _sources/admin/searx.favicons.rst.txt | 251 ++++++ .../admin/settings/settings_search.rst.txt | 6 + _sources/src/searx.favicons.rst.txt | 48 ++ _sources/src/searx.sqlitedb.rst.txt | 8 + _static/autodoc_pydantic.css | 11 + _static/describe_version.js | 198 +++++ _static/documentation_options.js | 2 +- _static/pocoo.css | 24 +- _static/version_warning_offset.js | 40 - admin/answer-captcha.html | 18 +- admin/api.html | 13 +- admin/architecture.html | 13 +- admin/buildhosts.html | 14 +- admin/index.html | 20 +- admin/installation-apache.html | 12 +- admin/installation-docker.html | 13 +- admin/installation-nginx.html | 12 +- admin/installation-scripts.html | 13 +- admin/installation-searxng.html | 15 +- admin/installation-uwsgi.html | 12 +- admin/installation.html | 13 +- admin/plugins.html | 13 +- admin/searx.favicons.html | 354 +++++++++ admin/searx.limiter.html | 30 +- admin/settings/index.html | 13 +- admin/settings/settings.html | 13 +- admin/settings/settings_brand.html | 13 +- .../settings/settings_categories_as_tabs.html | 13 +- admin/settings/settings_engine.html | 13 +- admin/settings/settings_general.html | 13 +- admin/settings/settings_outgoing.html | 13 +- admin/settings/settings_redis.html | 13 +- admin/settings/settings_search.html | 18 +- admin/settings/settings_server.html | 13 +- admin/settings/settings_ui.html | 13 +- admin/update-searxng.html | 13 +- dev/contribution_guide.html | 12 +- dev/engines/demo/demo_offline.html | 12 +- dev/engines/demo/demo_online.html | 12 +- dev/engines/engine_overview.html | 108 ++- dev/engines/enginelib.html | 78 +- dev/engines/engines.html | 18 +- dev/engines/index.html | 12 +- dev/engines/mediawiki.html | 24 +- dev/engines/offline/command-line-engines.html | 12 +- dev/engines/offline/nosql-engines.html | 12 +- .../offline/search-indexer-engines.html | 12 +- dev/engines/offline/sql-engines.html | 16 +- dev/engines/offline_concept.html | 12 +- dev/engines/online/alpinelinux.html | 12 +- dev/engines/online/annas_archive.html | 18 +- dev/engines/online/archlinux.html | 12 +- dev/engines/online/bing.html | 12 +- dev/engines/online/bpb.html | 12 +- dev/engines/online/brave.html | 12 +- dev/engines/online/bt4g.html | 12 +- dev/engines/online/dailymotion.html | 12 +- dev/engines/online/discourse.html | 14 +- dev/engines/online/duckduckgo.html | 39 +- dev/engines/online/geizhals.html | 12 +- dev/engines/online/gitea.html | 25 +- dev/engines/online/gitlab.html | 16 +- dev/engines/online/google.html | 22 +- dev/engines/online/lemmy.html | 12 +- dev/engines/online/loc.html | 12 +- dev/engines/online/mastodon.html | 12 +- dev/engines/online/moviepilot.html | 12 +- dev/engines/online/mrs.html | 14 +- dev/engines/online/mullvad_leta.html | 16 +- dev/engines/online/mwmbl.html | 12 +- dev/engines/online/odysee.html | 12 +- dev/engines/online/peertube.html | 12 +- dev/engines/online/piped.html | 16 +- dev/engines/online/presearch.html | 12 +- dev/engines/online/qwant.html | 12 +- dev/engines/online/radio_browser.html | 12 +- dev/engines/online/recoll.html | 12 +- dev/engines/online/seekr.html | 14 +- dev/engines/online/startpage.html | 12 +- dev/engines/online/tagesschau.html | 12 +- dev/engines/online/torznab.html | 22 +- dev/engines/online/void.html | 12 +- dev/engines/online/wallhaven.html | 12 +- dev/engines/online/wikipedia.html | 12 +- dev/engines/online/yacy.html | 14 +- dev/engines/online/yahoo.html | 12 +- dev/engines/online/zlibrary.html | 22 +- dev/engines/online_url_search/tineye.html | 16 +- dev/engines/xpath.html | 12 +- dev/index.html | 12 +- dev/lxcdev.html | 11 +- dev/makefile.html | 11 +- dev/plugins.html | 24 +- dev/quickstart.html | 12 +- dev/reST.html | 50 +- dev/rtm_asdf.html | 12 +- dev/search_api.html | 12 +- dev/searxng_extra/index.html | 12 +- dev/searxng_extra/standalone_searx.py.html | 12 +- dev/searxng_extra/update.html | 12 +- dev/translation.html | 12 +- genindex.html | 254 +++++- index.html | 15 +- objects.inv | Bin 11128 -> 11976 bytes own-instance.html | 12 +- py-modindex.html | 43 +- search.html | 13 +- searchindex.js | 2 +- src/index.html | 28 +- src/searx.babel_extract.html | 14 +- src/searx.botdetection.html | 56 +- src/searx.exceptions.html | 28 +- src/searx.favicons.html | 720 ++++++++++++++++++ src/searx.infopage.html | 40 +- src/searx.locales.html | 36 +- src/searx.plugins.hostnames.html | 14 +- src/searx.plugins.tor_check.html | 14 +- src/searx.plugins.unit_converter.html | 16 +- src/searx.redisdb.html | 14 +- src/searx.redislib.html | 28 +- src/searx.search.html | 22 +- src/searx.search.processors.html | 26 +- src/searx.settings.html | 30 +- src/searx.sqlitedb.html | 345 +++++++++ src/searx.utils.html | 70 +- user/about.html | 12 +- user/configured_engines.html | 20 +- user/index.html | 12 +- user/search-syntax.html | 12 +- utils/index.html | 12 +- utils/lxc.sh.html | 12 +- utils/searxng.sh.html | 14 +- 201 files changed, 5491 insertions(+), 1810 deletions(-) create mode 100644 _modules/searx/favicons/cache.html create mode 100644 _modules/searx/favicons/config.html create mode 100644 _modules/searx/favicons/proxy.html create mode 100644 _modules/searx/favicons/resolvers.html create mode 100644 _modules/searx/sqlitedb.html create mode 100644 _sources/admin/searx.favicons.rst.txt create mode 100644 _sources/src/searx.favicons.rst.txt create mode 100644 _sources/src/searx.sqlitedb.rst.txt create mode 100644 _static/autodoc_pydantic.css create mode 100644 _static/describe_version.js delete mode 100644 _static/version_warning_offset.js create mode 100644 admin/searx.favicons.html create mode 100644 src/searx.favicons.html create mode 100644 src/searx.sqlitedb.html diff --git a/.buildinfo b/.buildinfo index eefab67797f8..995f11474e8a 100644 --- a/.buildinfo +++ b/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: 89d09ba3dc137690c3dc6e182d37b603 +config: b3b3c0d1be33a3165ea45c22dde60acc tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/404.html b/404.html index 883e7ca1ca0e..837f176c7c11 100644 --- a/404.html +++ b/404.html @@ -5,14 +5,14 @@ - Page not found — SearXNG Documentation (2024.10.4+bebb5f57) + Page not found — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + - + @@ -25,7 +25,7 @@

Navigation

  • modules |
  • - + @@ -92,11 +92,8 @@

    Quick search

    - - - \ No newline at end of file diff --git a/_modules/index.html b/_modules/index.html index 4f721a33eb62..850e604e380f 100644 --- a/_modules/index.html +++ b/_modules/index.html @@ -5,14 +5,14 @@ - Overview: module code — SearXNG Documentation (2024.10.4+bebb5f57) + Overview: module code — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + - + @@ -25,7 +25,7 @@

    Navigation

  • modules |
  • - + @@ -81,6 +81,10 @@

    All modules for which code is available

  • searx.engines.yahoo
  • searx.engines.zlibrary
  • searx.exceptions
  • +
  • searx.favicons.cache
  • +
  • searx.favicons.config
  • +
  • searx.favicons.proxy
  • +
  • searx.favicons.resolvers
  • searx.infopage
  • searx.limiter
  • searx.locales
  • @@ -95,6 +99,7 @@

    All modules for which code is available

  • searx.search.processors.online_dictionary
  • searx.search.processors.online_url_search
  • searx.settings_loader
  • +
  • searx.sqlitedb
  • searx.utils
  • @@ -151,11 +156,8 @@

    Quick search

    - - - \ No newline at end of file diff --git a/_modules/searx/autocomplete.html b/_modules/searx/autocomplete.html index ca478fd5d595..509709063fe2 100644 --- a/_modules/searx/autocomplete.html +++ b/_modules/searx/autocomplete.html @@ -5,14 +5,14 @@ - searx.autocomplete — SearXNG Documentation (2024.10.4+bebb5f57) + searx.autocomplete — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + - + @@ -25,7 +25,7 @@

    Navigation

  • modules |
  • - + @@ -367,11 +367,8 @@

    Quick search

    - - - \ No newline at end of file diff --git a/_modules/searx/babel_extract.html b/_modules/searx/babel_extract.html index 123940bc969f..0ff65838aa35 100644 --- a/_modules/searx/babel_extract.html +++ b/_modules/searx/babel_extract.html @@ -5,14 +5,14 @@ - searx.babel_extract — SearXNG Documentation (2024.10.4+bebb5f57) + searx.babel_extract — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + - + @@ -25,7 +25,7 @@

    Navigation

  • modules |
  • - + @@ -151,11 +151,8 @@

    Quick search

    - - - \ No newline at end of file diff --git a/_modules/searx/botdetection/_helpers.html b/_modules/searx/botdetection/_helpers.html index 58eeef0c5df9..7ffde4a350f2 100644 --- a/_modules/searx/botdetection/_helpers.html +++ b/_modules/searx/botdetection/_helpers.html @@ -5,14 +5,14 @@ - searx.botdetection._helpers — SearXNG Documentation (2024.10.4+bebb5f57) + searx.botdetection._helpers — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + - + @@ -25,7 +25,7 @@

    Navigation

  • modules |
  • - + @@ -235,11 +235,8 @@

    Quick search

    - - - \ No newline at end of file diff --git a/_modules/searx/botdetection/config.html b/_modules/searx/botdetection/config.html index f98c42c40741..88ea7ace42ee 100644 --- a/_modules/searx/botdetection/config.html +++ b/_modules/searx/botdetection/config.html @@ -5,14 +5,14 @@ - searx.botdetection.config — SearXNG Documentation (2024.10.4+bebb5f57) + searx.botdetection.config — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + - + @@ -25,7 +25,7 @@

    Navigation

  • modules |
  • - + @@ -53,17 +53,7 @@

    Source code for searx.botdetection.config

     import logging
     import pathlib
     
    -try:
    -    import tomllib
    -
    -    pytomlpp = None
    -    USE_TOMLLIB = True
    -except ImportError:
    -    import pytomlpp
    -
    -    tomllib = None
    -    USE_TOMLLIB = False
    -
    +from ..compat import tomllib
     
     __all__ = ['Config', 'UNSET', 'SchemaIssue']
     
    @@ -249,19 +239,10 @@ 

    Source code for searx.botdetection.config

     
     
     def toml_load(file_name):
    -    if USE_TOMLLIB:
    -        # Python >= 3.11
    -        try:
    -            with open(file_name, "rb") as f:
    -                return tomllib.load(f)
    -        except tomllib.TOMLDecodeError as exc:
    -            msg = str(exc).replace('\t', '').replace('\n', ' ')
    -            log.error("%s: %s", file_name, msg)
    -            raise
    -    # fallback to pytomlpp for Python < 3.11
         try:
    -        return pytomlpp.load(file_name)
    -    except pytomlpp.DecodeError as exc:
    +        with open(file_name, "rb") as f:
    +            return tomllib.load(f)
    +    except tomllib.TOMLDecodeError as exc:
             msg = str(exc).replace('\t', '').replace('\n', ' ')
             log.error("%s: %s", file_name, msg)
             raise
    @@ -525,11 +506,8 @@ 

    Quick search

    - - - \ No newline at end of file diff --git a/_modules/searx/botdetection/ip_lists.html b/_modules/searx/botdetection/ip_lists.html index ac66a44238d6..099e0c900bef 100644 --- a/_modules/searx/botdetection/ip_lists.html +++ b/_modules/searx/botdetection/ip_lists.html @@ -5,14 +5,14 @@ - searx.botdetection.ip_lists — SearXNG Documentation (2024.10.4+bebb5f57) + searx.botdetection.ip_lists — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + - + @@ -25,7 +25,7 @@

    Navigation

  • modules |
  • - + @@ -188,11 +188,8 @@

    Quick search

    - - - \ No newline at end of file diff --git a/_modules/searx/botdetection/link_token.html b/_modules/searx/botdetection/link_token.html index 525a8851e0c9..4e1e729dc3ad 100644 --- a/_modules/searx/botdetection/link_token.html +++ b/_modules/searx/botdetection/link_token.html @@ -5,14 +5,14 @@ - searx.botdetection.link_token — SearXNG Documentation (2024.10.4+bebb5f57) + searx.botdetection.link_token — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + - + @@ -25,7 +25,7 @@

    Navigation

  • modules |
  • - + @@ -264,11 +264,8 @@

    Quick search

    - - - \ No newline at end of file diff --git a/_modules/searx/enginelib.html b/_modules/searx/enginelib.html index 604f24cc18e7..2cc8ae1094cb 100644 --- a/_modules/searx/enginelib.html +++ b/_modules/searx/enginelib.html @@ -5,14 +5,14 @@ - searx.enginelib — SearXNG Documentation (2024.10.4+bebb5f57) + searx.enginelib — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + - + @@ -25,7 +25,7 @@

    Navigation

  • modules |
  • - + @@ -245,11 +245,8 @@

    Quick search

    - - - \ No newline at end of file diff --git a/_modules/searx/enginelib/traits.html b/_modules/searx/enginelib/traits.html index 037582bbaa3d..a86bb75d79da 100644 --- a/_modules/searx/enginelib/traits.html +++ b/_modules/searx/enginelib/traits.html @@ -5,14 +5,14 @@ - searx.enginelib.traits — SearXNG Documentation (2024.10.4+bebb5f57) + searx.enginelib.traits — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + - + @@ -25,7 +25,7 @@

    Navigation

  • modules |
  • - + @@ -391,11 +391,8 @@

    Quick search

    - - - \ No newline at end of file diff --git a/_modules/searx/engines.html b/_modules/searx/engines.html index 59b881ae0a83..2b1a0f5662b8 100644 --- a/_modules/searx/engines.html +++ b/_modules/searx/engines.html @@ -5,14 +5,14 @@ - searx.engines — SearXNG Documentation (2024.10.4+bebb5f57) + searx.engines — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + - + @@ -25,7 +25,7 @@

    Navigation

  • modules |
  • - + @@ -363,11 +363,8 @@

    Quick search

    - - - \ No newline at end of file diff --git a/_modules/searx/engines/annas_archive.html b/_modules/searx/engines/annas_archive.html index 4d60cb8f6e88..fd92ea49fcae 100644 --- a/_modules/searx/engines/annas_archive.html +++ b/_modules/searx/engines/annas_archive.html @@ -5,14 +5,14 @@ - searx.engines.annas_archive — SearXNG Documentation (2024.10.4+bebb5f57) + searx.engines.annas_archive — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + - + @@ -25,7 +25,7 @@

    Navigation

  • modules |
  • - + @@ -299,11 +299,8 @@

    Quick search

    - - - \ No newline at end of file diff --git a/_modules/searx/engines/archlinux.html b/_modules/searx/engines/archlinux.html index 31ccf4d41219..27cb17e24971 100644 --- a/_modules/searx/engines/archlinux.html +++ b/_modules/searx/engines/archlinux.html @@ -5,14 +5,14 @@ - searx.engines.archlinux — SearXNG Documentation (2024.10.4+bebb5f57) + searx.engines.archlinux — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + - + @@ -25,7 +25,7 @@

    Navigation

  • modules |
  • - + @@ -256,11 +256,8 @@

    Quick search

    - - - \ No newline at end of file diff --git a/_modules/searx/engines/bing.html b/_modules/searx/engines/bing.html index 58f14828dd62..90e85415e669 100644 --- a/_modules/searx/engines/bing.html +++ b/_modules/searx/engines/bing.html @@ -5,14 +5,14 @@ - searx.engines.bing — SearXNG Documentation (2024.10.4+bebb5f57) + searx.engines.bing — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + - + @@ -25,7 +25,7 @@

    Navigation

  • modules |
  • - + @@ -372,11 +372,8 @@

    Quick search

    - - - \ No newline at end of file diff --git a/_modules/searx/engines/bing_images.html b/_modules/searx/engines/bing_images.html index 0bf93a75fd14..842dbe661865 100644 --- a/_modules/searx/engines/bing_images.html +++ b/_modules/searx/engines/bing_images.html @@ -5,14 +5,14 @@ - searx.engines.bing_images — SearXNG Documentation (2024.10.4+bebb5f57) + searx.engines.bing_images — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + - + @@ -25,7 +25,7 @@

    Navigation

  • modules |
  • - + @@ -217,11 +217,8 @@

    Quick search

    - - - \ No newline at end of file diff --git a/_modules/searx/engines/bing_news.html b/_modules/searx/engines/bing_news.html index 2664aab8db18..5b0f83707aab 100644 --- a/_modules/searx/engines/bing_news.html +++ b/_modules/searx/engines/bing_news.html @@ -5,14 +5,14 @@ - searx.engines.bing_news — SearXNG Documentation (2024.10.4+bebb5f57) + searx.engines.bing_news — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + - + @@ -25,7 +25,7 @@

    Navigation

  • modules |
  • - + @@ -271,11 +271,8 @@

    Quick search

    - - - \ No newline at end of file diff --git a/_modules/searx/engines/bing_videos.html b/_modules/searx/engines/bing_videos.html index 6479ac37e6ae..2f9e1db0ed22 100644 --- a/_modules/searx/engines/bing_videos.html +++ b/_modules/searx/engines/bing_videos.html @@ -5,14 +5,14 @@ - searx.engines.bing_videos — SearXNG Documentation (2024.10.4+bebb5f57) + searx.engines.bing_videos — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + - + @@ -25,7 +25,7 @@

    Navigation

  • modules |
  • - + @@ -206,11 +206,8 @@

    Quick search

    - - - \ No newline at end of file diff --git a/_modules/searx/engines/brave.html b/_modules/searx/engines/brave.html index 5d0f1cbf739f..322058937169 100644 --- a/_modules/searx/engines/brave.html +++ b/_modules/searx/engines/brave.html @@ -5,14 +5,14 @@ - searx.engines.brave — SearXNG Documentation (2024.10.4+bebb5f57) + searx.engines.brave — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + - + @@ -25,7 +25,7 @@

    Navigation

  • modules |
  • - + @@ -574,11 +574,8 @@

    Quick search

    - - - \ No newline at end of file diff --git a/_modules/searx/engines/command.html b/_modules/searx/engines/command.html index c3736871d638..2565331bf874 100644 --- a/_modules/searx/engines/command.html +++ b/_modules/searx/engines/command.html @@ -5,14 +5,14 @@ - searx.engines.command — SearXNG Documentation (2024.10.4+bebb5f57) + searx.engines.command — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + - + @@ -25,7 +25,7 @@

    Navigation

  • modules |
  • - + @@ -349,11 +349,8 @@

    Quick search

    - - - \ No newline at end of file diff --git a/_modules/searx/engines/dailymotion.html b/_modules/searx/engines/dailymotion.html index d5010c1c7b72..ccdcb24d69ad 100644 --- a/_modules/searx/engines/dailymotion.html +++ b/_modules/searx/engines/dailymotion.html @@ -5,14 +5,14 @@ - searx.engines.dailymotion — SearXNG Documentation (2024.10.4+bebb5f57) + searx.engines.dailymotion — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + - + @@ -25,7 +25,7 @@

    Navigation

  • modules |
  • - + @@ -356,11 +356,8 @@

    Quick search

    - - - \ No newline at end of file diff --git a/_modules/searx/engines/demo_offline.html b/_modules/searx/engines/demo_offline.html index 3f424bf2b492..e9e6e6c125c9 100644 --- a/_modules/searx/engines/demo_offline.html +++ b/_modules/searx/engines/demo_offline.html @@ -5,14 +5,14 @@ - searx.engines.demo_offline — SearXNG Documentation (2024.10.4+bebb5f57) + searx.engines.demo_offline — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + - + @@ -25,7 +25,7 @@

    Navigation

  • modules |
  • - + @@ -180,11 +180,8 @@

    Quick search

    - - - \ No newline at end of file diff --git a/_modules/searx/engines/demo_online.html b/_modules/searx/engines/demo_online.html index 0f5859b507b3..507b716ff183 100644 --- a/_modules/searx/engines/demo_online.html +++ b/_modules/searx/engines/demo_online.html @@ -5,14 +5,14 @@ - searx.engines.demo_online — SearXNG Documentation (2024.10.4+bebb5f57) + searx.engines.demo_online — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + - + @@ -25,7 +25,7 @@

    Navigation

  • modules |
  • - + @@ -209,11 +209,8 @@

    Quick search

    - - - \ No newline at end of file diff --git a/_modules/searx/engines/duckduckgo.html b/_modules/searx/engines/duckduckgo.html index 2a684c2ac412..6912ff22fe12 100644 --- a/_modules/searx/engines/duckduckgo.html +++ b/_modules/searx/engines/duckduckgo.html @@ -5,14 +5,14 @@ - searx.engines.duckduckgo — SearXNG Documentation (2024.10.4+bebb5f57) + searx.engines.duckduckgo — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + - + @@ -25,7 +25,7 @@

    Navigation

  • modules |
  • - + @@ -58,13 +58,13 @@

    Source code for searx.engines.duckduckgo

     )
     from searx.utils import (
         eval_xpath,
    -    eval_xpath_getindex,
         extract_text,
     )
     from searx.network import get  # see https://github.com/searxng/searxng/issues/762
     from searx import redisdb
     from searx.enginelib.traits import EngineTraits
     from searx.utils import extr
    +from searx.exceptions import SearxEngineCaptchaException
     
     if TYPE_CHECKING:
         import logging
    @@ -93,36 +93,38 @@ 

    Source code for searx.engines.duckduckgo

     time_range_support = True
     safesearch = True  # user can't select but the results are filtered
     
    -url = 'https://lite.duckduckgo.com/lite/'
    -# url_ping = 'https://duckduckgo.com/t/sl_l'
    +url = "https://html.duckduckgo.com/html"
     
     time_range_dict = {'day': 'd', 'week': 'w', 'month': 'm', 'year': 'y'}
     form_data = {'v': 'l', 'api': 'd.js', 'o': 'json'}
    +__CACHE = []
    +
    +
    +def _cache_key(data: dict):
    +    return 'SearXNG_ddg_web_vqd' + redislib.secret_hash(f"{data['q']}//{data['kl']}")
     
     
     
    [docs] -def cache_vqd(query, value): +def cache_vqd(data: dict, value): """Caches a ``vqd`` value from a query.""" c = redisdb.client() if c: logger.debug("cache vqd value: %s", value) - key = 'SearXNG_ddg_web_vqd' + redislib.secret_hash(query) - c.set(key, value, ex=600)
    + c.set(_cache_key(data), value, ex=600) + + else: + logger.debug("MEM cache vqd value: %s", value) + if len(__CACHE) > 100: # cache vqd from last 100 queries + __CACHE.pop(0) + __CACHE.append((_cache_key(data), value))
    [docs] -def get_vqd(query): - """Returns the ``vqd`` that fits to the *query*. If there is no ``vqd`` cached - (:py:obj:`cache_vqd`) the query is sent to DDG to get a vqd value from the - response. - - .. hint:: - - If an empty string is returned there are no results for the ``query`` and - therefore no ``vqd`` value. +def get_vqd(data): + """Returns the ``vqd`` that fits to the *query* (``data`` from HTTP POST). DDG's bot detection is sensitive to the ``vqd`` value. For some search terms (such as extremely long search terms that are often sent by bots), no ``vqd`` @@ -150,28 +152,23 @@

    Source code for searx.engines.duckduckgo

         - DuckDuckGo News: ``https://duckduckgo.com/news.js??q=...&vqd=...``
     
         """
    +
    +    key = _cache_key(data)
         value = None
         c = redisdb.client()
         if c:
    -        key = 'SearXNG_ddg_web_vqd' + redislib.secret_hash(query)
             value = c.get(key)
             if value or value == b'':
                 value = value.decode('utf-8')
    -            logger.debug("re-use cached vqd value: %s", value)
    +            logger.debug("re-use CACHED vqd value: %s", value)
                 return value
     
    -    query_url = 'https://duckduckgo.com/?' + urlencode({'q': query})
    -    res = get(query_url)
    -    doc = lxml.html.fromstring(res.text)
    -    for script in doc.xpath("//script[@type='text/javascript']"):
    -        script = script.text
    -        if 'vqd="' in script:
    -            value = extr(script, 'vqd="', '"')
    -            break
    -    logger.debug("new vqd value: '%s'", value)
    -    if value is not None:
    -        cache_vqd(query, value)
    -    return value
    + else: + for k, value in __CACHE: + if k == key: + logger.debug("MEM re-use CACHED vqd value: %s", value) + return value + return None
    @@ -202,9 +199,10 @@

    Source code for searx.engines.duckduckgo

     
         .. hint::
     
    -       `DDG-lite <https://lite.duckduckgo.com/lite>`__ does not offer a language
    -       selection to the user, only a region can be selected by the user
    -       (``eng_region`` from the example above).  DDG-lite stores the selected
    +       `DDG-lite <https://lite.duckduckgo.com/lite>`__ and the *no Javascript*
    +       page https://html.duckduckgo.com/html do not offer a language selection
    +       to the user, only a region can be selected by the user (``eng_region``
    +       from the example above).  DDG-lite and *no Javascript* store the selected
            region in a cookie::
     
              params['cookies']['kl'] = eng_region  # 'ar-es'
    @@ -289,10 +287,25 @@ 

    Source code for searx.engines.duckduckgo

     
         query = quote_ddg_bangs(query)
     
    -    # request needs a vqd argument
    -    vqd = get_vqd(query)
    -
    +    if len(query) >= 500:
    +        # DDG does not accept queries with more than 499 chars
    +        params["url"] = None
    +        return
    +
    +    # Advanced search syntax ends in CAPTCHA
    +    # https://duckduckgo.com/duckduckgo-help-pages/results/syntax/
    +    query = [
    +        x.removeprefix("site:").removeprefix("intitle:").removeprefix("inurl:").removeprefix("filetype:")
    +        for x in query.split()
    +    ]
         eng_region = traits.get_region(params['searxng_locale'], traits.all_locale)
    +    if eng_region == "wt-wt":
    +        # https://html.duckduckgo.com/html sets an empty value for "all".
    +        eng_region = ""
    +
    +    params['data']['kl'] = eng_region
    +    params['cookies']['kl'] = eng_region
    +
         # eng_lang = get_ddg_lang(traits, params['searxng_locale'])
     
         params['url'] = url
    @@ -300,45 +313,85 @@ 

    Source code for searx.engines.duckduckgo

         params['data']['q'] = query
     
         # The API is not documented, so we do some reverse engineering and emulate
    -    # what https://lite.duckduckgo.com/lite/ does when you press "next Page"
    -    # link again and again ..
    +    # what https://html.duckduckgo.com/html does when you press "next Page" link
    +    # again and again ..
     
         params['headers']['Content-Type'] = 'application/x-www-form-urlencoded'
    -    params['data']['vqd'] = vqd
     
    -    # initial page does not have an offset
    +    params['headers']['Sec-Fetch-Dest'] = "document"
    +    params['headers']['Sec-Fetch-Mode'] = "navigate"  # at least this one is used by ddg's bot detection
    +    params['headers']['Sec-Fetch-Site'] = "same-origin"
    +    params['headers']['Sec-Fetch-User'] = "?1"
    +
    +    # Form of the initial search page does have empty values in the form
    +    if params['pageno'] == 1:
    +
    +        params['data']['b'] = ""
    +
    +    params['data']['df'] = ''
    +    if params['time_range'] in time_range_dict:
    +
    +        params['data']['df'] = time_range_dict[params['time_range']]
    +        params['cookies']['df'] = time_range_dict[params['time_range']]
    +
         if params['pageno'] == 2:
    +
             # second page does have an offset of 20
             offset = (params['pageno'] - 1) * 20
             params['data']['s'] = offset
             params['data']['dc'] = offset + 1
     
         elif params['pageno'] > 2:
    +
             # third and following pages do have an offset of 20 + n*50
             offset = 20 + (params['pageno'] - 2) * 50
             params['data']['s'] = offset
             params['data']['dc'] = offset + 1
     
    -    # initial page does not have additional data in the input form
         if params['pageno'] > 1:
     
    +        # initial page does not have these additional data in the input form
             params['data']['o'] = form_data.get('o', 'json')
             params['data']['api'] = form_data.get('api', 'd.js')
             params['data']['nextParams'] = form_data.get('nextParams', '')
             params['data']['v'] = form_data.get('v', 'l')
    -        params['headers']['Referer'] = 'https://lite.duckduckgo.com/'
    +        params['headers']['Referer'] = url
     
    -    params['data']['kl'] = eng_region
    -    params['cookies']['kl'] = eng_region
    +        # from here on no more params['data'] shuld be set, since this dict is
    +        # needed to get a vqd value from the cache ..
     
    -    params['data']['df'] = ''
    -    if params['time_range'] in time_range_dict:
    -        params['data']['df'] = time_range_dict[params['time_range']]
    -        params['cookies']['df'] = time_range_dict[params['time_range']]
    +        vqd = get_vqd(params['data'])
    +
    +        # Certain conditions must be met in order to call up one of the
    +        # following pages ...
    +
    +        if vqd:
    +            params['data']['vqd'] = vqd  # follow up pages / requests needs a vqd argument
    +        else:
    +            # Don't try to call follow up pages without a vqd value.  DDG
    +            # recognizes this as a request from a bot.  This lowers the
    +            # reputation of the SearXNG IP and DDG starts to activate CAPTCHAs.
    +            params["url"] = None
    +            return
    +
    +        if params['searxng_locale'].startswith("zh"):
    +            # Some locales (at least China) do not have a "next page" button and ddg
    +            # will return a HTTP/2 403 Forbidden for a request of such a page.
    +            params["url"] = None
    +            return
     
         logger.debug("param data: %s", params['data'])
         logger.debug("param cookies: %s", params['cookies'])
    -    return params
    +
    +
    +
    +[docs] +def is_ddg_captcha(dom): + """In case of CAPTCHA ddg response its own *not a Robot* dialog and is not + redirected to a CAPTCHA page.""" + + return bool(eval_xpath(dom, "//form[@id='challenge-form']"))
    + def response(resp): @@ -349,35 +402,33 @@

    Source code for searx.engines.duckduckgo

         results = []
         doc = lxml.html.fromstring(resp.text)
     
    -    result_table = eval_xpath(doc, '//html/body/form/div[@class="filters"]/table')
    +    if is_ddg_captcha(doc):
    +        # set suspend time to zero is OK --> ddg does not block the IP
    +        raise SearxEngineCaptchaException(suspended_time=0, message=f"CAPTCHA ({resp.search_params['data'].get('kl')})")
     
    -    if len(result_table) == 2:
    -        # some locales (at least China) does not have a "next page" button and
    -        # the layout of the HTML tables is different.
    -        result_table = result_table[1]
    -    elif not len(result_table) >= 3:
    -        # no more results
    -        return []
    -    else:
    -        result_table = result_table[2]
    -        # update form data from response
    -        form = eval_xpath(doc, '//html/body/form/div[@class="filters"]/table//input/..')
    -        if len(form):
    +    form = eval_xpath(doc, '//input[@name="vqd"]/..')
    +    if len(form):
    +        # some locales (at least China) does not have a "next page" button
    +        form = form[0]
    +        form_vqd = eval_xpath(form, '//input[@name="vqd"]/@value')[0]
     
    -            form = form[0]
    -            form_data['v'] = eval_xpath(form, '//input[@name="v"]/@value')[0]
    -            form_data['api'] = eval_xpath(form, '//input[@name="api"]/@value')[0]
    -            form_data['o'] = eval_xpath(form, '//input[@name="o"]/@value')[0]
    -            logger.debug('form_data: %s', form_data)
    +        cache_vqd(resp.search_params["data"], form_vqd)
     
    -    tr_rows = eval_xpath(result_table, './/tr')
    -    # In the last <tr> is the form of the 'previous/next page' links
    -    tr_rows = tr_rows[:-1]
    +    # just select "web-result" and ignore results of class "result--ad result--ad--small"
    +    for div_result in eval_xpath(doc, '//div[@id="links"]/div[contains(@class, "web-result")]'):
     
    -    len_tr_rows = len(tr_rows)
    -    offset = 0
    +        item = {}
    +        title = eval_xpath(div_result, './/h2/a')
    +        if not title:
    +            # this is the "No results." item in the result list
    +            continue
    +        item["title"] = extract_text(title)
    +        item["url"] = eval_xpath(div_result, './/h2/a/@href')[0]
    +        item["content"] = extract_text(eval_xpath(div_result, './/a[contains(@class, "result__snippet")]')[0])
    +
    +        results.append(item)
     
    -    zero_click_info_xpath = '//html/body/form/div/table[2]/tr[2]/td/text()'
    +    zero_click_info_xpath = '//div[@id="zero_click_abstract"]'
         zero_click = extract_text(eval_xpath(doc, zero_click_info_xpath)).strip()
     
         if zero_click and "Your IP address is" not in zero_click and "Your user agent:" not in zero_click:
    @@ -390,33 +441,6 @@ 

    Source code for searx.engines.duckduckgo

                 }
             )
     
    -    while len_tr_rows >= offset + 4:
    -
    -        # assemble table rows we need to scrap
    -        tr_title = tr_rows[offset]
    -        tr_content = tr_rows[offset + 1]
    -        offset += 4
    -
    -        # ignore sponsored Adds <tr class="result-sponsored">
    -        if tr_content.get('class') == 'result-sponsored':
    -            continue
    -
    -        a_tag = eval_xpath_getindex(tr_title, './/td//a[@class="result-link"]', 0, None)
    -        if a_tag is None:
    -            continue
    -
    -        td_content = eval_xpath_getindex(tr_content, './/td[@class="result-snippet"]', 0, None)
    -        if td_content is None:
    -            continue
    -
    -        results.append(
    -            {
    -                'title': a_tag.text_content(),
    -                'content': extract_text(td_content),
    -                'url': a_tag.get('href'),
    -            }
    -        )
    -
         return results
     
     
    @@ -586,11 +610,8 @@ 

    Quick search

    - - - \ No newline at end of file diff --git a/_modules/searx/engines/duckduckgo_definitions.html b/_modules/searx/engines/duckduckgo_definitions.html index 658a748bb5e3..252b9017511b 100644 --- a/_modules/searx/engines/duckduckgo_definitions.html +++ b/_modules/searx/engines/duckduckgo_definitions.html @@ -5,14 +5,14 @@ - searx.engines.duckduckgo_definitions — SearXNG Documentation (2024.10.4+bebb5f57) + searx.engines.duckduckgo_definitions — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + - + @@ -25,7 +25,7 @@

    Navigation

  • modules |
  • - + @@ -365,11 +365,8 @@

    Quick search

    - - - \ No newline at end of file diff --git a/_modules/searx/engines/google.html b/_modules/searx/engines/google.html index 0472007c3d3f..6ed227f3c577 100644 --- a/_modules/searx/engines/google.html +++ b/_modules/searx/engines/google.html @@ -5,14 +5,14 @@ - searx.engines.google — SearXNG Documentation (2024.10.4+bebb5f57) + searx.engines.google — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + - + @@ -25,7 +25,7 @@

    Navigation

  • modules |
  • - + @@ -612,11 +612,8 @@

    Quick search

    - - - \ No newline at end of file diff --git a/_modules/searx/engines/google_images.html b/_modules/searx/engines/google_images.html index 684dc1449334..5d7a46769936 100644 --- a/_modules/searx/engines/google_images.html +++ b/_modules/searx/engines/google_images.html @@ -5,14 +5,14 @@ - searx.engines.google_images — SearXNG Documentation (2024.10.4+bebb5f57) + searx.engines.google_images — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + - + @@ -25,7 +25,7 @@

    Navigation

  • modules |
  • - + @@ -235,11 +235,8 @@

    Quick search

    - - - \ No newline at end of file diff --git a/_modules/searx/engines/google_news.html b/_modules/searx/engines/google_news.html index bba362128b53..04c18941e1df 100644 --- a/_modules/searx/engines/google_news.html +++ b/_modules/searx/engines/google_news.html @@ -5,14 +5,14 @@ - searx.engines.google_news — SearXNG Documentation (2024.10.4+bebb5f57) + searx.engines.google_news — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + - + @@ -25,7 +25,7 @@

    Navigation

  • modules |
  • - + @@ -412,11 +412,8 @@

    Quick search

    - - - \ No newline at end of file diff --git a/_modules/searx/engines/google_scholar.html b/_modules/searx/engines/google_scholar.html index 024eaa5eaafc..7a01be2f56ef 100644 --- a/_modules/searx/engines/google_scholar.html +++ b/_modules/searx/engines/google_scholar.html @@ -5,14 +5,14 @@ - searx.engines.google_scholar — SearXNG Documentation (2024.10.4+bebb5f57) + searx.engines.google_scholar — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + - + @@ -25,7 +25,7 @@

    Navigation

  • modules |
  • - + @@ -334,11 +334,8 @@

    Quick search

    - - - \ No newline at end of file diff --git a/_modules/searx/engines/google_videos.html b/_modules/searx/engines/google_videos.html index 710475663b28..333ab0b7217c 100644 --- a/_modules/searx/engines/google_videos.html +++ b/_modules/searx/engines/google_videos.html @@ -5,14 +5,14 @@ - searx.engines.google_videos — SearXNG Documentation (2024.10.4+bebb5f57) + searx.engines.google_videos — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + - + @@ -25,7 +25,7 @@

    Navigation

  • modules |
  • - + @@ -247,11 +247,8 @@

    Quick search

    - - - \ No newline at end of file diff --git a/_modules/searx/engines/mrs.html b/_modules/searx/engines/mrs.html index f413dc996593..6889ec791965 100644 --- a/_modules/searx/engines/mrs.html +++ b/_modules/searx/engines/mrs.html @@ -5,14 +5,14 @@ - searx.engines.mrs — SearXNG Documentation (2024.10.4+bebb5f57) + searx.engines.mrs — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + - + @@ -25,7 +25,7 @@

    Navigation

  • modules |
  • - + @@ -175,11 +175,8 @@

    Quick search

    - - - \ No newline at end of file diff --git a/_modules/searx/engines/mullvad_leta.html b/_modules/searx/engines/mullvad_leta.html index 8063e088f542..7c9d1ba20db8 100644 --- a/_modules/searx/engines/mullvad_leta.html +++ b/_modules/searx/engines/mullvad_leta.html @@ -5,14 +5,14 @@ - searx.engines.mullvad_leta — SearXNG Documentation (2024.10.4+bebb5f57) + searx.engines.mullvad_leta — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + - + @@ -25,7 +25,7 @@

    Navigation

  • modules |
  • - + @@ -321,11 +321,8 @@

    Quick search

    - - - \ No newline at end of file diff --git a/_modules/searx/engines/odysee.html b/_modules/searx/engines/odysee.html index eb34243f0825..d1eb95ef7339 100644 --- a/_modules/searx/engines/odysee.html +++ b/_modules/searx/engines/odysee.html @@ -5,14 +5,14 @@ - searx.engines.odysee — SearXNG Documentation (2024.10.4+bebb5f57) + searx.engines.odysee — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + - + @@ -25,7 +25,7 @@

    Navigation

  • modules |
  • - + @@ -249,11 +249,8 @@

    Quick search

    - - - \ No newline at end of file diff --git a/_modules/searx/engines/peertube.html b/_modules/searx/engines/peertube.html index 9d344bd1e051..6b79d41b94e4 100644 --- a/_modules/searx/engines/peertube.html +++ b/_modules/searx/engines/peertube.html @@ -5,14 +5,14 @@ - searx.engines.peertube — SearXNG Documentation (2024.10.4+bebb5f57) + searx.engines.peertube — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + - + @@ -25,7 +25,7 @@

    Navigation

  • modules |
  • - + @@ -297,11 +297,8 @@

    Quick search

    - - - \ No newline at end of file diff --git a/_modules/searx/engines/qwant.html b/_modules/searx/engines/qwant.html index e6e70774d388..79a7ac860043 100644 --- a/_modules/searx/engines/qwant.html +++ b/_modules/searx/engines/qwant.html @@ -5,14 +5,14 @@ - searx.engines.qwant — SearXNG Documentation (2024.10.4+bebb5f57) + searx.engines.qwant — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + - + @@ -25,7 +25,7 @@

    Navigation

  • modules |
  • - + @@ -465,11 +465,8 @@

    Quick search

    - - - \ No newline at end of file diff --git a/_modules/searx/engines/radio_browser.html b/_modules/searx/engines/radio_browser.html index ddf26a9b1def..e81f47d0ee9c 100644 --- a/_modules/searx/engines/radio_browser.html +++ b/_modules/searx/engines/radio_browser.html @@ -5,14 +5,14 @@ - searx.engines.radio_browser — SearXNG Documentation (2024.10.4+bebb5f57) + searx.engines.radio_browser — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + - + @@ -25,7 +25,7 @@

    Navigation

  • modules |
  • - + @@ -282,11 +282,8 @@

    Quick search

    - - - \ No newline at end of file diff --git a/_modules/searx/engines/sepiasearch.html b/_modules/searx/engines/sepiasearch.html index 6b757cc64fa4..727bab9f890e 100644 --- a/_modules/searx/engines/sepiasearch.html +++ b/_modules/searx/engines/sepiasearch.html @@ -5,14 +5,14 @@ - searx.engines.sepiasearch — SearXNG Documentation (2024.10.4+bebb5f57) + searx.engines.sepiasearch — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + - + @@ -25,7 +25,7 @@

    Navigation

  • modules |
  • - + @@ -190,11 +190,8 @@

    Quick search

    - - - \ No newline at end of file diff --git a/_modules/searx/engines/sqlite.html b/_modules/searx/engines/sqlite.html index 123775089a8a..11de006f4462 100644 --- a/_modules/searx/engines/sqlite.html +++ b/_modules/searx/engines/sqlite.html @@ -5,14 +5,14 @@ - searx.engines.sqlite — SearXNG Documentation (2024.10.4+bebb5f57) + searx.engines.sqlite — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + - + @@ -25,7 +25,7 @@

    Navigation

  • modules |
  • - + @@ -210,11 +210,8 @@

    Quick search

    - - - \ No newline at end of file diff --git a/_modules/searx/engines/startpage.html b/_modules/searx/engines/startpage.html index d6c802e1013c..a8a2f0016fc9 100644 --- a/_modules/searx/engines/startpage.html +++ b/_modules/searx/engines/startpage.html @@ -5,14 +5,14 @@ - searx.engines.startpage — SearXNG Documentation (2024.10.4+bebb5f57) + searx.engines.startpage — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + - + @@ -25,7 +25,7 @@

    Navigation

  • modules |
  • - + @@ -604,11 +604,8 @@

    Quick search

    - - - \ No newline at end of file diff --git a/_modules/searx/engines/tineye.html b/_modules/searx/engines/tineye.html index 0286fda694e9..af7fdb96ba73 100644 --- a/_modules/searx/engines/tineye.html +++ b/_modules/searx/engines/tineye.html @@ -5,14 +5,14 @@ - searx.engines.tineye — SearXNG Documentation (2024.10.4+bebb5f57) + searx.engines.tineye — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + - + @@ -25,7 +25,7 @@

    Navigation

  • modules |
  • - + @@ -334,11 +334,8 @@

    Quick search

    - - - \ No newline at end of file diff --git a/_modules/searx/engines/torznab.html b/_modules/searx/engines/torznab.html index 675eafe3ff46..29ab3d44ed55 100644 --- a/_modules/searx/engines/torznab.html +++ b/_modules/searx/engines/torznab.html @@ -5,14 +5,14 @@ - searx.engines.torznab — SearXNG Documentation (2024.10.4+bebb5f57) + searx.engines.torznab — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + - + @@ -25,7 +25,7 @@

    Navigation

  • modules |
  • - + @@ -361,11 +361,8 @@

    Quick search

    - - - \ No newline at end of file diff --git a/_modules/searx/engines/voidlinux.html b/_modules/searx/engines/voidlinux.html index ebf91db1b8ad..0e395975a633 100644 --- a/_modules/searx/engines/voidlinux.html +++ b/_modules/searx/engines/voidlinux.html @@ -5,14 +5,14 @@ - searx.engines.voidlinux — SearXNG Documentation (2024.10.4+bebb5f57) + searx.engines.voidlinux — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + - + @@ -25,7 +25,7 @@

    Navigation

  • modules |
  • - + @@ -195,11 +195,8 @@

    Quick search

    - - - \ No newline at end of file diff --git a/_modules/searx/engines/wikidata.html b/_modules/searx/engines/wikidata.html index 03e65829464b..38e4f3cf7ae1 100644 --- a/_modules/searx/engines/wikidata.html +++ b/_modules/searx/engines/wikidata.html @@ -5,14 +5,14 @@ - searx.engines.wikidata — SearXNG Documentation (2024.10.4+bebb5f57) + searx.engines.wikidata — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + - + @@ -25,7 +25,7 @@

    Navigation

  • modules |
  • - + @@ -904,11 +904,8 @@

    Quick search

    - - - \ No newline at end of file diff --git a/_modules/searx/engines/wikipedia.html b/_modules/searx/engines/wikipedia.html index faf487a5fc4a..2c075152be9a 100644 --- a/_modules/searx/engines/wikipedia.html +++ b/_modules/searx/engines/wikipedia.html @@ -5,14 +5,14 @@ - searx.engines.wikipedia — SearXNG Documentation (2024.10.4+bebb5f57) + searx.engines.wikipedia — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + - + @@ -25,7 +25,7 @@

    Navigation

  • modules |
  • - + @@ -446,11 +446,8 @@

    Quick search

    - - - \ No newline at end of file diff --git a/_modules/searx/engines/xpath.html b/_modules/searx/engines/xpath.html index 2ce43d6061e0..3e41eaa4afd2 100644 --- a/_modules/searx/engines/xpath.html +++ b/_modules/searx/engines/xpath.html @@ -5,14 +5,14 @@ - searx.engines.xpath — SearXNG Documentation (2024.10.4+bebb5f57) + searx.engines.xpath — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + - + @@ -25,7 +25,7 @@

    Navigation

  • modules |
  • - + @@ -418,11 +418,8 @@

    Quick search

    - - - \ No newline at end of file diff --git a/_modules/searx/engines/yahoo.html b/_modules/searx/engines/yahoo.html index 7f5f0f4003b7..f559eb2b437b 100644 --- a/_modules/searx/engines/yahoo.html +++ b/_modules/searx/engines/yahoo.html @@ -5,14 +5,14 @@ - searx.engines.yahoo — SearXNG Documentation (2024.10.4+bebb5f57) + searx.engines.yahoo — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + - + @@ -25,7 +25,7 @@

    Navigation

  • modules |
  • - + @@ -306,11 +306,8 @@

    Quick search

    - - - \ No newline at end of file diff --git a/_modules/searx/engines/zlibrary.html b/_modules/searx/engines/zlibrary.html index b8ec743d8637..0e20dcea7535 100644 --- a/_modules/searx/engines/zlibrary.html +++ b/_modules/searx/engines/zlibrary.html @@ -5,14 +5,14 @@ - searx.engines.zlibrary — SearXNG Documentation (2024.10.4+bebb5f57) + searx.engines.zlibrary — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + - + @@ -25,7 +25,7 @@

    Navigation

  • modules |
  • - + @@ -350,11 +350,8 @@

    Quick search

    - - - \ No newline at end of file diff --git a/_modules/searx/exceptions.html b/_modules/searx/exceptions.html index 664e2b6df636..55ea4e2823c9 100644 --- a/_modules/searx/exceptions.html +++ b/_modules/searx/exceptions.html @@ -5,14 +5,14 @@ - searx.exceptions — SearXNG Documentation (2024.10.4+bebb5f57) + searx.exceptions — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + - + @@ -25,7 +25,7 @@

    Navigation

  • modules |
  • - + @@ -40,6 +40,7 @@

    Source code for searx.exceptions

     # SPDX-License-Identifier: AGPL-3.0-or-later
     """Exception types raised by SearXNG modules.
     """
    +from __future__ import annotations
     
     from typing import Optional, Union
     
    @@ -123,7 +124,7 @@ 

    Source code for searx.exceptions

         """This settings contains the default suspended time (default 86400 sec / 1
         day)."""
     
    -    def __init__(self, suspended_time: int = None, message: str = 'Access denied'):
    +    def __init__(self, suspended_time: int | None = None, message: str = 'Access denied'):
             """Generic exception to raise when an engine denies access to the results.
     
             :param suspended_time: How long the engine is going to be suspended in
    @@ -132,12 +133,13 @@ 

    Source code for searx.exceptions

             :param message: Internal message.  Defaults to ``Access denied``
             :type message: str
             """
    -        suspended_time = suspended_time or self._get_default_suspended_time()
    +        if suspended_time is None:
    +            suspended_time = self._get_default_suspended_time()
             super().__init__(message + ', suspended_time=' + str(suspended_time))
             self.suspended_time = suspended_time
             self.message = message
     
    -    def _get_default_suspended_time(self):
    +    def _get_default_suspended_time(self) -> int:
             from searx import get_setting  # pylint: disable=C0415
     
             return get_setting(self.SUSPEND_TIME_SETTING)
    @@ -153,7 +155,7 @@

    Source code for searx.exceptions

         """This settings contains the default suspended time (default 86400 sec / 1
         day)."""
     
    -    def __init__(self, suspended_time=None, message='CAPTCHA'):
    +    def __init__(self, suspended_time: int | None = None, message='CAPTCHA'):
             super().__init__(message=message, suspended_time=suspended_time)
    @@ -170,7 +172,7 @@

    Source code for searx.exceptions

         """This settings contains the default suspended time (default 3660 sec / 1
         hour)."""
     
    -    def __init__(self, suspended_time=None, message='Too many request'):
    +    def __init__(self, suspended_time: int | None = None, message='Too many request'):
             super().__init__(message=message, suspended_time=suspended_time)
    @@ -247,11 +249,8 @@

    Quick search

    - - - \ No newline at end of file diff --git a/_modules/searx/favicons/cache.html b/_modules/searx/favicons/cache.html new file mode 100644 index 000000000000..612a72e5c881 --- /dev/null +++ b/_modules/searx/favicons/cache.html @@ -0,0 +1,644 @@ + + + + + + + + searx.favicons.cache — SearXNG Documentation (2024.10.31+5f50d2d5) + + + + + + + + + + + + +
    +
    +
    +
    + +

    Source code for searx.favicons.cache

    +# SPDX-License-Identifier: AGPL-3.0-or-later
    +"""Implementations for caching favicons.
    +
    +:py:obj:`FaviconCacheConfig`:
    +  Configuration of the favicon cache
    +
    +:py:obj:`FaviconCache`:
    +  Abstract base class for the implementation of a favicon cache.
    +
    +:py:obj:`FaviconCacheSQLite`:
    +  Favicon cache that manages the favicon BLOBs in a SQLite DB.
    +
    +:py:obj:`FaviconCacheNull`:
    +  Fallback solution if the configured cache cannot be used for system reasons.
    +
    +----
    +
    +"""
    +
    +from __future__ import annotations
    +from typing import Literal
    +
    +import os
    +import abc
    +import dataclasses
    +import hashlib
    +import logging
    +import sqlite3
    +import tempfile
    +import time
    +import typer
    +
    +import msgspec
    +
    +from searx import sqlitedb
    +from searx import logger
    +from searx.utils import humanize_bytes, humanize_number
    +
    +CACHE: "FaviconCache"
    +FALLBACK_ICON = b"FALLBACK_ICON"
    +
    +logger = logger.getChild('favicons.cache')
    +app = typer.Typer()
    +
    +
    +
    +[docs] +@app.command() +def state(): + """show state of the cache""" + print(CACHE.state().report())
    + + + +
    +[docs] +@app.command() +def maintenance(force: bool = True, debug: bool = False): + """perform maintenance of the cache""" + root_log = logging.getLogger() + if debug: + root_log.setLevel(logging.DEBUG) + else: + root_log.handlers = [] + handler = logging.StreamHandler() + handler.setFormatter(logging.Formatter("%(message)s")) + logger.addHandler(handler) + logger.setLevel(logging.DEBUG) + + state_t0 = CACHE.state() + CACHE.maintenance(force=force) + state_t1 = CACHE.state() + state_delta = state_t0 - state_t1 + print("The cache has been reduced by:") + print(state_delta.report("\n- {descr}: {val}").lstrip("\n"))
    + + + +
    +[docs] +def init(cfg: "FaviconCacheConfig"): + """Initialization of a global ``CACHE``""" + + global CACHE # pylint: disable=global-statement + if cfg.db_type == "sqlite": + if sqlite3.sqlite_version_info <= (3, 35): + logger.critical( + "Disable favicon caching completely: SQLite library (%s) is too old! (require >= 3.35)", + sqlite3.sqlite_version, + ) + CACHE = FaviconCacheNull(cfg) + else: + CACHE = FaviconCacheSQLite(cfg) + elif cfg.db_type == "mem": + logger.error("Favicons are cached in memory, don't use this in production!") + CACHE = FaviconCacheMEM(cfg) + else: + raise NotImplementedError(f"favicons db_type '{cfg.db_type}' is unknown")
    + + + +
    +[docs] +class FaviconCacheConfig(msgspec.Struct): # pylint: disable=too-few-public-methods + """Configuration of the favicon cache.""" + + db_type: Literal["sqlite", "mem"] = "sqlite" + """Type of the database: + + ``sqlite``: + :py:obj:`.cache.FaviconCacheSQLite` + + ``mem``: + :py:obj:`.cache.FaviconCacheMEM` (not recommended) + """ + + db_url: str = tempfile.gettempdir() + os.sep + "faviconcache.db" + """URL of the SQLite DB, the path to the database file.""" + + HOLD_TIME: int = 60 * 60 * 24 * 30 # 30 days + """Hold time (default in sec.), after which a BLOB is removed from the cache.""" + + LIMIT_TOTAL_BYTES: int = 1024 * 1024 * 50 # 50 MB + """Maximum of bytes (default) stored in the cache of all blobs. Note: The + limit is only reached at each maintenance interval after which the oldest + BLOBs are deleted; the limit is exceeded during the maintenance period. If + the maintenance period is *too long* or maintenance is switched off + completely, the cache grows uncontrollably.""" + + BLOB_MAX_BYTES: int = 1024 * 20 # 20 KB + """The maximum BLOB size in bytes that a favicon may have so that it can be + saved in the cache. If the favicon is larger, it is not saved in the cache + and must be requested by the client via the proxy.""" + + MAINTENANCE_PERIOD: int = 60 * 60 + """Maintenance period in seconds / when :py:obj:`MAINTENANCE_MODE` is set to + ``auto``.""" + + MAINTENANCE_MODE: Literal["auto", "off"] = "auto" + """Type of maintenance mode + + ``auto``: + Maintenance is carried out automatically as part of the maintenance + intervals (:py:obj:`MAINTENANCE_PERIOD`); no external process is required. + + ``off``: + Maintenance is switched off and must be carried out by an external process + if required. + """
    + + + +
    +[docs] +@dataclasses.dataclass +class FaviconCacheStats: + """Dataclass wich provides information on the status of the cache.""" + + favicons: int | None = None + bytes: int | None = None + domains: int | None = None + resolvers: int | None = None + + field_descr = ( + ("favicons", "number of favicons in cache", humanize_number), + ("bytes", "total size (approx. bytes) of cache", humanize_bytes), + ("domains", "total number of domains in cache", humanize_number), + ("resolvers", "number of resolvers", str), + ) + + def __sub__(self, other) -> FaviconCacheStats: + if not isinstance(other, self.__class__): + raise TypeError(f"unsupported operand type(s) for +: '{self.__class__}' and '{type(other)}'") + kwargs = {} + for field, _, _ in self.field_descr: + self_val, other_val = getattr(self, field), getattr(other, field) + if None in (self_val, other_val): + continue + if isinstance(self_val, int): + kwargs[field] = self_val - other_val + else: + kwargs[field] = self_val + return self.__class__(**kwargs) + + def report(self, fmt: str = "{descr}: {val}\n"): + s = [] + for field, descr, cast in self.field_descr: + val = getattr(self, field) + if val is None: + val = "--" + else: + val = cast(val) + s.append(fmt.format(descr=descr, val=val)) + return "".join(s)
    + + + +
    +[docs] +class FaviconCache(abc.ABC): + """Abstract base class for the implementation of a favicon cache.""" + + @abc.abstractmethod + def __init__(self, cfg: FaviconCacheConfig): + """An instance of the favicon cache is build up from the configuration.""" + + @abc.abstractmethod + def __call__(self, resolver: str, authority: str) -> None | tuple[None | bytes, None | str]: + """Returns ``None`` or the tuple of ``(data, mime)`` that has been + registered in the cache. The ``None`` indicates that there was no entry + in the cache.""" + +
    +[docs] + @abc.abstractmethod + def set(self, resolver: str, authority: str, mime: str | None, data: bytes | None) -> bool: + """Set data and mime-type in the cache. If data is None, the + :py:obj:`FALLBACK_ICON` is registered. in the cache."""
    + + +
    +[docs] + @abc.abstractmethod + def state(self) -> FaviconCacheStats: + """Returns a :py:obj:`FaviconCacheStats` (key/values) with information + on the state of the cache."""
    + + +
    +[docs] + @abc.abstractmethod + def maintenance(self, force=False): + """Performs maintenance on the cache"""
    +
    + + + +
    +[docs] +class FaviconCacheNull(FaviconCache): + """A dummy favicon cache that caches nothing / a fallback solution. The + NullCache is used when more efficient caches such as the + :py:obj:`FaviconCacheSQLite` cannot be used because, for example, the SQLite + library is only available in an old version and does not meet the + requirements.""" + + def __init__(self, cfg: FaviconCacheConfig): + return None + + def __call__(self, resolver: str, authority: str) -> None | tuple[None | bytes, None | str]: + return None + +
    +[docs] + def set(self, resolver: str, authority: str, mime: str | None, data: bytes | None) -> bool: + return False
    + + +
    +[docs] + def state(self): + return FaviconCacheStats(favicons=0)
    + + +
    +[docs] + def maintenance(self, force=False): + pass
    +
    + + + +
    +[docs] +class FaviconCacheSQLite(sqlitedb.SQLiteAppl, FaviconCache): + """Favicon cache that manages the favicon BLOBs in a SQLite DB. The DB + model in the SQLite DB is implemented using the abstract class + :py:obj:`sqlitedb.SQLiteAppl`. + + The following configurations are required / supported: + + - :py:obj:`FaviconCacheConfig.db_url` + - :py:obj:`FaviconCacheConfig.HOLD_TIME` + - :py:obj:`FaviconCacheConfig.LIMIT_TOTAL_BYTES` + - :py:obj:`FaviconCacheConfig.BLOB_MAX_BYTES` + - :py:obj:`MAINTENANCE_PERIOD` + - :py:obj:`MAINTENANCE_MODE` + """ + + DB_SCHEMA = 1 + + DDL_BLOBS = """\ +CREATE TABLE IF NOT EXISTS blobs ( + sha256 TEXT, + bytes_c INTEGER, + mime TEXT NOT NULL, + data BLOB NOT NULL, + PRIMARY KEY (sha256))""" + + """Table to store BLOB objects by their sha256 hash values.""" + + DDL_BLOB_MAP = """\ +CREATE TABLE IF NOT EXISTS blob_map ( + m_time INTEGER DEFAULT (strftime('%s', 'now')), -- last modified (unix epoch) time in sec. + sha256 TEXT, + resolver TEXT, + authority TEXT, + PRIMARY KEY (resolver, authority))""" + + """Table to map from (resolver, authority) to sha256 hash values.""" + + DDL_CREATE_TABLES = { + "blobs": DDL_BLOBS, + "blob_map": DDL_BLOB_MAP, + } + + SQL_DROP_LEFTOVER_BLOBS = ( + "DELETE FROM blobs WHERE sha256 IN (" + " SELECT b.sha256" + " FROM blobs b" + " LEFT JOIN blob_map bm" + " ON b.sha256 = bm.sha256" + " WHERE bm.sha256 IS NULL)" + ) + """Delete blobs.sha256 (BLOBs) no longer in blob_map.sha256.""" + + SQL_ITER_BLOBS_SHA256_BYTES_C = ( + "SELECT b.sha256, b.bytes_c FROM blobs b" + " JOIN blob_map bm " + " ON b.sha256 = bm.sha256" + " ORDER BY bm.m_time ASC" + ) + + SQL_INSERT_BLOBS = ( + "INSERT INTO blobs (sha256, bytes_c, mime, data) VALUES (?, ?, ?, ?)" + " ON CONFLICT (sha256) DO NOTHING" + ) # fmt: skip + + SQL_INSERT_BLOB_MAP = ( + "INSERT INTO blob_map (sha256, resolver, authority) VALUES (?, ?, ?)" + " ON CONFLICT DO UPDATE " + " SET sha256=excluded.sha256, m_time=strftime('%s', 'now')" + ) + + def __init__(self, cfg: FaviconCacheConfig): + """An instance of the favicon cache is build up from the configuration.""" # + + if cfg.db_url == ":memory:": + logger.critical("don't use SQLite DB in :memory: in production!!") + super().__init__(cfg.db_url) + self.cfg = cfg + + def __call__(self, resolver: str, authority: str) -> None | tuple[None | bytes, None | str]: + + sql = "SELECT sha256 FROM blob_map WHERE resolver = ? AND authority = ?" + res = self.DB.execute(sql, (resolver, authority)).fetchone() + if res is None: + return None + + data, mime = (None, None) + sha256 = res[0] + if sha256 == FALLBACK_ICON: + return data, mime + + sql = "SELECT data, mime FROM blobs WHERE sha256 = ?" + res = self.DB.execute(sql, (sha256,)).fetchone() + if res is not None: + data, mime = res + return data, mime + +
    +[docs] + def set(self, resolver: str, authority: str, mime: str | None, data: bytes | None) -> bool: + + if self.cfg.MAINTENANCE_MODE == "auto" and int(time.time()) > self.next_maintenance_time: + # Should automatic maintenance be moved to a new thread? + self.maintenance() + + if data is not None and mime is None: + logger.error( + "favicon resolver %s tries to cache mime-type None for authority %s", + resolver, + authority, + ) + return False + + bytes_c = len(data or b"") + if bytes_c > self.cfg.BLOB_MAX_BYTES: + logger.info( + "favicon of resolver: %s / authority: %s to big to cache (bytes: %s) " % (resolver, authority, bytes_c) + ) + return False + + if data is None: + sha256 = FALLBACK_ICON + else: + sha256 = hashlib.sha256(data).hexdigest() + + with self.connect() as conn: + if sha256 != FALLBACK_ICON: + conn.execute(self.SQL_INSERT_BLOBS, (sha256, bytes_c, mime, data)) + conn.execute(self.SQL_INSERT_BLOB_MAP, (sha256, resolver, authority)) + + return True
    + + + @property + def next_maintenance_time(self) -> int: + """Returns (unix epoch) time of the next maintenance.""" + + return self.cfg.MAINTENANCE_PERIOD + self.properties.m_time("LAST_MAINTENANCE") + +
    +[docs] + def maintenance(self, force=False): + + # Prevent parallel DB maintenance cycles from other DB connections + # (e.g. in multi thread or process environments). + + if not force and int(time.time()) < self.next_maintenance_time: + logger.debug("no maintenance required yet, next maintenance interval is in the future") + return + self.properties.set("LAST_MAINTENANCE", "") # hint: this (also) sets the m_time of the property! + + # do maintenance tasks + + with self.connect() as conn: + + # drop items not in HOLD time + res = conn.execute( + f"DELETE FROM blob_map" + f" WHERE cast(m_time as integer) < cast(strftime('%s', 'now') as integer) - {self.cfg.HOLD_TIME}" + ) + logger.debug("dropped %s obsolete blob_map items from db", res.rowcount) + res = conn.execute(self.SQL_DROP_LEFTOVER_BLOBS) + logger.debug("dropped %s obsolete BLOBS from db", res.rowcount) + + # drop old items to be in LIMIT_TOTAL_BYTES + total_bytes = conn.execute("SELECT SUM(bytes_c) FROM blobs").fetchone()[0] or 0 + if total_bytes > self.cfg.LIMIT_TOTAL_BYTES: + + x = total_bytes - self.cfg.LIMIT_TOTAL_BYTES + c = 0 + sha_list = [] + for row in conn.execute(self.SQL_ITER_BLOBS_SHA256_BYTES_C): + sha256, bytes_c = row + sha_list.append(sha256) + c += bytes_c + if c > x: + break + if sha_list: + conn.execute("DELETE FROM blobs WHERE sha256 IN ('%s')" % "','".join(sha_list)) + conn.execute("DELETE FROM blob_map WHERE sha256 IN ('%s')" % "','".join(sha_list)) + logger.debug("dropped %s blobs with total size of %s bytes", len(sha_list), c)
    + + + def _query_val(self, sql, default=None): + val = self.DB.execute(sql).fetchone() + if val is not None: + val = val[0] + if val is None: + val = default + return val + +
    +[docs] + def state(self) -> FaviconCacheStats: + return FaviconCacheStats( + favicons=self._query_val("SELECT count(*) FROM blobs", 0), + bytes=self._query_val("SELECT SUM(bytes_c) FROM blobs", 0), + domains=self._query_val("SELECT count(*) FROM (SELECT authority FROM blob_map GROUP BY authority)", 0), + resolvers=self._query_val("SELECT count(*) FROM (SELECT resolver FROM blob_map GROUP BY resolver)", 0), + )
    +
    + + + +
    +[docs] +class FaviconCacheMEM(FaviconCache): + """Favicon cache in process' memory. Its just a POC that stores the + favicons in the memory of the process. + + .. attention:: + + Don't use it in production, it will blow up your memory!! + + """ + + def __init__(self, cfg): + + self.cfg = cfg + self._data = {} + self._sha_mime = {} + + def __call__(self, resolver: str, authority: str) -> None | tuple[bytes | None, str | None]: + + sha, mime = self._sha_mime.get(f"{resolver}:{authority}", (None, None)) + if sha is None: + return None + data = self._data.get(sha) + if data == FALLBACK_ICON: + data = None + return data, mime + +
    +[docs] + def set(self, resolver: str, authority: str, mime: str | None, data: bytes | None) -> bool: + + if data is None: + data = FALLBACK_ICON + mime = None + + elif mime is None: + logger.error( + "favicon resolver %s tries to cache mime-type None for authority %s", + resolver, + authority, + ) + return False + + digest = hashlib.sha256(data).hexdigest() + self._data[digest] = data + self._sha_mime[f"{resolver}:{authority}"] = (digest, mime) + return True
    + + +
    +[docs] + def state(self): + return FaviconCacheStats(favicons=len(self._data.keys()))
    + + +
    +[docs] + def maintenance(self, force=False): + pass
    +
    + +
    + +
    +
    +
    +
    + + +
    +
    + + + \ No newline at end of file diff --git a/_modules/searx/favicons/config.html b/_modules/searx/favicons/config.html new file mode 100644 index 000000000000..e63725153291 --- /dev/null +++ b/_modules/searx/favicons/config.html @@ -0,0 +1,176 @@ + + + + + + + + searx.favicons.config — SearXNG Documentation (2024.10.31+5f50d2d5) + + + + + + + + + + + + +
    +
    +
    +
    + +

    Source code for searx.favicons.config

    +# SPDX-License-Identifier: AGPL-3.0-or-later
    +# pylint: disable=missing-module-docstring
    +
    +from __future__ import annotations
    +
    +import pathlib
    +import msgspec
    +
    +from .cache import FaviconCacheConfig
    +from .proxy import FaviconProxyConfig
    +
    +CONFIG_SCHEMA: int = 1
    +"""Version of the configuration schema."""
    +
    +TOML_CACHE_CFG: dict[str, "FaviconConfig"] = {}
    +"""Cache config objects by TOML's filename."""
    +
    +DEFAULT_CFG_TOML_PATH = pathlib.Path(__file__).parent / "favicons.toml"
    +
    +
    +
    +[docs] +class FaviconConfig(msgspec.Struct): # pylint: disable=too-few-public-methods + """The class aggregates configurations of the favicon tools""" + + cfg_schema: int + """Config's schema version. The specification of the version of the schema + is mandatory, currently only version :py:obj:`CONFIG_SCHEMA` is supported. + By specifying a version, it is possible to ensure downward compatibility in + the event of future changes to the configuration schema""" + + cache: FaviconCacheConfig = msgspec.field(default_factory=FaviconCacheConfig) + """Setup of the :py:obj:`.cache.FaviconCacheConfig`.""" + + proxy: FaviconProxyConfig = msgspec.field(default_factory=FaviconProxyConfig) + """Setup of the :py:obj:`.proxy.FaviconProxyConfig`.""" + +
    +[docs] + @classmethod + def from_toml_file(cls, cfg_file: pathlib.Path, use_cache: bool) -> "FaviconConfig": + """Create a config object from a TOML file, the ``use_cache`` argument + specifies whether a cache should be used. + """ + + cached = TOML_CACHE_CFG.get(str(cfg_file)) + if use_cache and cached: + return cached + + with cfg_file.open("rb") as f: + data = f.read() + + cfg = msgspec.toml.decode(data, type=_FaviconConfig) + schema = cfg.favicons.cfg_schema + if schema != CONFIG_SCHEMA: + raise ValueError( + f"config schema version {CONFIG_SCHEMA} is needed, version {schema} is given in {cfg_file}" + ) + + cfg = cfg.favicons + if use_cache and cached: + TOML_CACHE_CFG[str(cfg_file.resolve())] = cfg + + return cfg
    +
    + + + +class _FaviconConfig(msgspec.Struct): # pylint: disable=too-few-public-methods + # wrapper struct for root object "favicons." + favicons: FaviconConfig +
    + +
    +
    +
    +
    + + +
    +
    + + + \ No newline at end of file diff --git a/_modules/searx/favicons/proxy.html b/_modules/searx/favicons/proxy.html new file mode 100644 index 000000000000..28af6e95eb53 --- /dev/null +++ b/_modules/searx/favicons/proxy.html @@ -0,0 +1,363 @@ + + + + + + + + searx.favicons.proxy — SearXNG Documentation (2024.10.31+5f50d2d5) + + + + + + + + + + + + +
    +
    +
    +
    + +

    Source code for searx.favicons.proxy

    +# SPDX-License-Identifier: AGPL-3.0-or-later
    +"""Implementations for a favicon proxy"""
    +
    +from __future__ import annotations
    +
    +from typing import Callable
    +
    +import importlib
    +import base64
    +import pathlib
    +import urllib.parse
    +
    +import flask
    +from httpx import HTTPError
    +import msgspec
    +
    +from searx import get_setting
    +
    +from searx.webutils import new_hmac, is_hmac_of
    +from searx.exceptions import SearxEngineResponseException
    +
    +from .resolvers import DEFAULT_RESOLVER_MAP
    +from . import cache
    +
    +DEFAULT_FAVICON_URL = {}
    +CFG: FaviconProxyConfig = None  # type: ignore
    +
    +
    +def init(cfg: FaviconProxyConfig):
    +    global CFG  # pylint: disable=global-statement
    +    CFG = cfg
    +
    +
    +def _initial_resolver_map():
    +    d = {}
    +    name: str = get_setting("search.favicon_resolver", None)  # type: ignore
    +    if name:
    +        func = DEFAULT_RESOLVER_MAP.get(name)
    +        if func:
    +            d = {name: f"searx.favicons.resolvers.{func.__name__}"}
    +    return d
    +
    +
    +
    +[docs] +class FaviconProxyConfig(msgspec.Struct): + """Configuration of the favicon proxy.""" + + max_age: int = 60 * 60 * 24 * 7 # seven days + """HTTP header Cache-Control_ ``max-age`` + + .. _Cache-Control: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control + """ + + secret_key: str = get_setting("server.secret_key") # type: ignore + """By default, the value from :ref:`server.secret_key <settings server>` + setting is used.""" + + resolver_timeout: int = get_setting("outgoing.request_timeout") # type: ignore + """Timeout which the resolvers should not exceed, is usually passed to the + outgoing request of the resolver. By default, the value from + :ref:`outgoing.request_timeout <settings outgoing>` setting is used.""" + + resolver_map: dict[str, str] = msgspec.field(default_factory=_initial_resolver_map) + """The resolver_map is a key / value dictionary where the key is the name of + the resolver and the value is the fully qualifying name (fqn) of resolver's + function (the callable). The resolvers from the python module + :py:obj:`searx.favicons.resolver` are available by default.""" + +
    +[docs] + def get_resolver(self, name: str) -> Callable | None: + """Returns the callable object (function) of the resolver with the + ``name``. If no resolver is registered for the ``name``, ``None`` is + returned. + """ + fqn = self.resolver_map.get(name) + if fqn is None: + return None + mod_name, _, func_name = fqn.rpartition('.') + mod = importlib.import_module(mod_name) + func = getattr(mod, func_name) + if func is None: + raise ValueError(f"resolver {fqn} is not implemented") + return func
    + + + favicon_path: str = get_setting("ui.static_path") + "/themes/{theme}/img/empty_favicon.svg" # type: ignore + favicon_mime_type: str = "image/svg+xml" + +
    +[docs] + def favicon(self, **replacements): + """Returns pathname and mimetype of the default favicon.""" + return ( + pathlib.Path(self.favicon_path.format(**replacements)), + self.favicon_mime_type, + )
    + + +
    +[docs] + def favicon_data_url(self, **replacements): + """Returns data image URL of the default favicon.""" + + cache_key = ", ".join(f"{x}:{replacements[x]}" for x in sorted(list(replacements.keys()), key=str)) + data_url = DEFAULT_FAVICON_URL.get(cache_key) + if data_url is not None: + return data_url + + fav, mimetype = CFG.favicon(**replacements) + # hint: encoding utf-8 limits favicons to be a SVG image + with fav.open("r", encoding="utf-8") as f: + data_url = f.read() + + data_url = urllib.parse.quote(data_url) + data_url = f"data:{mimetype};utf8,{data_url}" + DEFAULT_FAVICON_URL[cache_key] = data_url + return data_url
    +
    + + + +
    +[docs] +def favicon_proxy(): + """REST API of SearXNG's favicon proxy service + + :: + + /favicon_proxy?authority=<...>&h=<...> + + ``authority``: + Domain name :rfc:`3986` / see :py:obj:`favicon_url` + + ``h``: + HMAC :rfc:`2104`, build up from the :ref:`server.secret_key <settings + server>` setting. + + """ + authority = flask.request.args.get('authority') + + # malformed request or RFC 3986 authority + if not authority or "/" in authority: + return '', 400 + + # malformed request / does not have authorisation + if not is_hmac_of( + CFG.secret_key, + authority.encode(), + flask.request.args.get('h', ''), + ): + return '', 400 + + resolver = flask.request.preferences.get_value('favicon_resolver') # type: ignore + # if resolver is empty or not valid, just return HTTP 400. + if not resolver or resolver not in CFG.resolver_map.keys(): + return "", 400 + + data, mime = search_favicon(resolver, authority) + + if data is not None and mime is not None: + resp = flask.Response(data, mimetype=mime) # type: ignore + resp.headers['Cache-Control'] = f"max-age={CFG.max_age}" + return resp + + # return default favicon from static path + theme = flask.request.preferences.get_value("theme") # type: ignore + fav, mimetype = CFG.favicon(theme=theme) + return flask.send_from_directory(fav.parent, fav.name, mimetype=mimetype)
    + + + +
    +[docs] +def search_favicon(resolver: str, authority: str) -> tuple[None | bytes, None | str]: + """Sends the request to the favicon resolver and returns a tuple for the + favicon. The tuple consists of ``(data, mime)``, if the resolver has not + determined a favicon, both values are ``None``. + + ``data``: + Binary data of the favicon. + + ``mime``: + Mime type of the favicon. + + """ + + data, mime = (None, None) + + func = CFG.get_resolver(resolver) + if func is None: + return data, mime + + # to avoid superfluous requests to the resolver, first look in the cache + data_mime = cache.CACHE(resolver, authority) + if data_mime is not None: + return data_mime + + try: + data, mime = func(authority, timeout=CFG.resolver_timeout) + if data is None or mime is None: + data, mime = (None, None) + + except (HTTPError, SearxEngineResponseException): + pass + + cache.CACHE.set(resolver, authority, mime, data) + return data, mime
    + + + +
    +[docs] +def favicon_url(authority: str) -> str: + """Function to generate the image URL used for favicons in SearXNG's result + lists. The ``authority`` argument (aka netloc / :rfc:`3986`) is usually a + (sub-) domain name. This function is used in the HTML (jinja) templates. + + .. code:: html + + <div class="favicon"> + <img src="{{ favicon_url(result.parsed_url.netloc) }}"> + </div> + + The returned URL is a route to :py:obj:`favicon_proxy` REST API. + + If the favicon is already in the cache, the returned URL is a `data URL`_ + (something like ``data:image/png;base64,...``). By generating a data url from + the :py:obj:`.cache.FaviconCache`, additional HTTP roundtripps via the + :py:obj:`favicon_proxy` are saved. However, it must also be borne in mind + that data urls are not cached in the client (web browser). + + .. _data URL: https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs + + """ + + resolver = flask.request.preferences.get_value('favicon_resolver') # type: ignore + # if resolver is empty or not valid, just return nothing. + if not resolver or resolver not in CFG.resolver_map.keys(): + return "" + + data_mime = cache.CACHE(resolver, authority) + + if data_mime == (None, None): + # we have already checked, the resolver does not have a favicon + theme = flask.request.preferences.get_value("theme") # type: ignore + return CFG.favicon_data_url(theme=theme) + + if data_mime is not None: + data, mime = data_mime + return f"data:{mime};base64,{str(base64.b64encode(data), 'utf-8')}" # type: ignore + + h = new_hmac(CFG.secret_key, authority.encode()) + proxy_url = flask.url_for('favicon_proxy') + query = urllib.parse.urlencode({"authority": authority, "h": h}) + return f"{proxy_url}?{query}"
    + +
    + +
    +
    +
    +
    + + +
    +
    + + + \ No newline at end of file diff --git a/_modules/searx/favicons/resolvers.html b/_modules/searx/favicons/resolvers.html new file mode 100644 index 000000000000..f1f1069d38b8 --- /dev/null +++ b/_modules/searx/favicons/resolvers.html @@ -0,0 +1,217 @@ + + + + + + + + searx.favicons.resolvers — SearXNG Documentation (2024.10.31+5f50d2d5) + + + + + + + + + + + + +
    +
    +
    +
    + +

    Source code for searx.favicons.resolvers

    +# SPDX-License-Identifier: AGPL-3.0-or-later
    +"""Implementations of the favicon *resolvers* that are available in the favicon
    +proxy by default.  A *resolver* is a function that obtains the favicon from an
    +external source.  The *resolver* function receives two arguments (``domain,
    +timeout``) and returns a tuple ``(data, mime)``.
    +
    +"""
    +
    +from __future__ import annotations
    +
    +__all__ = ["DEFAULT_RESOLVER_MAP", "allesedv", "duckduckgo", "google", "yandex"]
    +
    +from typing import Callable
    +from searx import network
    +from searx import logger
    +
    +DEFAULT_RESOLVER_MAP: dict[str, Callable]
    +logger = logger.getChild('favicons.resolvers')
    +
    +
    +def _req_args(**kwargs):
    +    # add the request arguments from the searx.network
    +    d = {"raise_for_httperror": False}
    +    d.update(kwargs)
    +    return d
    +
    +
    +
    +[docs] +def allesedv(domain: str, timeout: int) -> tuple[None | bytes, None | str]: + """Favicon Resolver from allesedv.com / https://favicon.allesedv.com/""" + data, mime = (None, None) + url = f"https://f1.allesedv.com/32/{domain}" + logger.debug("fetch favicon from: %s", url) + + # will just return a 200 regardless of the favicon existing or not + # sometimes will be correct size, sometimes not + response = network.get(url, **_req_args(timeout=timeout)) + if response and response.status_code == 200: + mime = response.headers['Content-Type'] + if mime != 'image/gif': + data = response.content + return data, mime
    + + + +
    +[docs] +def duckduckgo(domain: str, timeout: int) -> tuple[None | bytes, None | str]: + """Favicon Resolver from duckduckgo.com / https://blog.jim-nielsen.com/2021/displaying-favicons-for-any-domain/""" + data, mime = (None, None) + url = f"https://icons.duckduckgo.com/ip2/{domain}.ico" + logger.debug("fetch favicon from: %s", url) + + # will return a 404 if the favicon does not exist and a 200 if it does, + response = network.get(url, **_req_args(timeout=timeout)) + if response and response.status_code == 200: + # api will respond with a 32x32 png image + mime = response.headers['Content-Type'] + data = response.content + return data, mime
    + + + +
    +[docs] +def google(domain: str, timeout: int) -> tuple[None | bytes, None | str]: + """Favicon Resolver from google.com""" + data, mime = (None, None) + + # URL https://www.google.com/s2/favicons?sz=32&domain={domain}" will be + # redirected (HTTP 301 Moved Permanently) to t1.gstatic.com/faviconV2: + url = ( + f"https://t1.gstatic.com/faviconV2?client=SOCIAL&type=FAVICON&fallback_opts=TYPE,SIZE,URL" + f"&url=https://{domain}&size=32" + ) + logger.debug("fetch favicon from: %s", url) + + # will return a 404 if the favicon does not exist and a 200 if it does, + response = network.get(url, **_req_args(timeout=timeout)) + if response and response.status_code == 200: + # api will respond with a 32x32 png image + mime = response.headers['Content-Type'] + data = response.content + return data, mime
    + + + +
    +[docs] +def yandex(domain: str, timeout: int) -> tuple[None | bytes, None | str]: + """Favicon Resolver from yandex.com""" + data, mime = (None, None) + url = f"https://favicon.yandex.net/favicon/{domain}" + logger.debug("fetch favicon from: %s", url) + + # api will respond with a 16x16 png image, if it doesn't exist, it will be a + # 1x1 png image (70 bytes) + response = network.get(url, **_req_args(timeout=timeout)) + if response and response.status_code == 200 and len(response.content) > 70: + mime = response.headers['Content-Type'] + data = response.content + return data, mime
    + + + +DEFAULT_RESOLVER_MAP = { + "allesedv": allesedv, + "duckduckgo": duckduckgo, + "google": google, + "yandex": yandex, +} +
    + +
    +
    +
    +
    + + +
    +
    + + + \ No newline at end of file diff --git a/_modules/searx/infopage.html b/_modules/searx/infopage.html index 0d5772a0add3..b8cacb54392d 100644 --- a/_modules/searx/infopage.html +++ b/_modules/searx/infopage.html @@ -5,14 +5,14 @@ - searx.infopage — SearXNG Documentation (2024.10.4+bebb5f57) + searx.infopage — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + - + @@ -25,7 +25,7 @@

    Navigation

  • modules |
  • - + @@ -310,11 +310,8 @@

    Quick search

    - - - \ No newline at end of file diff --git a/_modules/searx/limiter.html b/_modules/searx/limiter.html index 196823c08eec..fafd1c090b2d 100644 --- a/_modules/searx/limiter.html +++ b/_modules/searx/limiter.html @@ -5,14 +5,14 @@ - searx.limiter — SearXNG Documentation (2024.10.4+bebb5f57) + searx.limiter — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + - + @@ -25,7 +25,7 @@

    Navigation

  • modules |
  • - + @@ -167,9 +167,6 @@

    Source code for searx.limiter

     LIMITER_CFG_SCHEMA = Path(__file__).parent / "limiter.toml"
     """Base configuration (schema) of the botdetection."""
     
    -LIMITER_CFG = Path('/etc/searxng/limiter.toml')
    -"""Local Limiter configuration."""
    -
     CFG_DEPRECATED = {
         # "dummy.old.foo": "config 'dummy.old.foo' exists only for tests.  Don't use it in your real project config."
     }
    @@ -177,8 +174,12 @@ 

    Source code for searx.limiter

     
     def get_cfg() -> config.Config:
         global CFG  # pylint: disable=global-statement
    +
         if CFG is None:
    -        CFG = config.Config.from_toml(LIMITER_CFG_SCHEMA, LIMITER_CFG, CFG_DEPRECATED)
    +        from . import settings_loader  # pylint: disable=import-outside-toplevel
    +
    +        cfg_file = (settings_loader.get_user_cfg_folder() or Path("/etc/searxng")) / "limiter.toml"
    +        CFG = config.Config.from_toml(LIMITER_CFG_SCHEMA, cfg_file, CFG_DEPRECATED)
         return CFG
     
     
    @@ -353,11 +354,8 @@ 

    Quick search

    - - - \ No newline at end of file diff --git a/_modules/searx/locales.html b/_modules/searx/locales.html index 36f1e41060aa..70dc0b6b029c 100644 --- a/_modules/searx/locales.html +++ b/_modules/searx/locales.html @@ -5,14 +5,14 @@ - searx.locales — SearXNG Documentation (2024.10.4+bebb5f57) + searx.locales — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + - + @@ -25,7 +25,7 @@

    Navigation

  • modules |
  • - + @@ -588,11 +588,8 @@

    Quick search

    - - - \ No newline at end of file diff --git a/_modules/searx/plugins/unit_converter.html b/_modules/searx/plugins/unit_converter.html index 96690bf55b16..17b680817826 100644 --- a/_modules/searx/plugins/unit_converter.html +++ b/_modules/searx/plugins/unit_converter.html @@ -5,14 +5,14 @@ - searx.plugins.unit_converter — SearXNG Documentation (2024.10.4+bebb5f57) + searx.plugins.unit_converter — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + - + @@ -25,7 +25,7 @@

    Navigation

  • modules |
  • - + @@ -364,11 +364,8 @@

    Quick search

    - - - \ No newline at end of file diff --git a/_modules/searx/redislib.html b/_modules/searx/redislib.html index eb1c512fdec0..4660264266af 100644 --- a/_modules/searx/redislib.html +++ b/_modules/searx/redislib.html @@ -5,14 +5,14 @@ - searx.redislib — SearXNG Documentation (2024.10.4+bebb5f57) + searx.redislib — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + - + @@ -25,7 +25,7 @@

    Navigation

  • modules |
  • - + @@ -356,11 +356,8 @@

    Quick search

    - - - \ No newline at end of file diff --git a/_modules/searx/search.html b/_modules/searx/search.html index 56b989957373..51709167c9b8 100644 --- a/_modules/searx/search.html +++ b/_modules/searx/search.html @@ -5,14 +5,14 @@ - searx.search — SearXNG Documentation (2024.10.4+bebb5f57) + searx.search — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + - + @@ -25,7 +25,7 @@

    Navigation

  • modules |
  • - + @@ -323,11 +323,8 @@

    Quick search

    - - - \ No newline at end of file diff --git a/_modules/searx/search/models.html b/_modules/searx/search/models.html index c3368fb885d8..03f53db95672 100644 --- a/_modules/searx/search/models.html +++ b/_modules/searx/search/models.html @@ -5,14 +5,14 @@ - searx.search.models — SearXNG Documentation (2024.10.4+bebb5f57) + searx.search.models — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + - + @@ -25,7 +25,7 @@

    Navigation

  • modules |
  • - + @@ -240,11 +240,8 @@

    Quick search

    - - - \ No newline at end of file diff --git a/_modules/searx/search/processors/abstract.html b/_modules/searx/search/processors/abstract.html index b4fb2e5eadb4..bb5868dcfc8b 100644 --- a/_modules/searx/search/processors/abstract.html +++ b/_modules/searx/search/processors/abstract.html @@ -5,14 +5,14 @@ - searx.search.processors.abstract — SearXNG Documentation (2024.10.4+bebb5f57) + searx.search.processors.abstract — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + - + @@ -25,7 +25,7 @@

    Navigation

  • modules |
  • - + @@ -305,11 +305,8 @@

    Quick search

    - - - \ No newline at end of file diff --git a/_modules/searx/search/processors/offline.html b/_modules/searx/search/processors/offline.html index 78f5d9d932a2..8fab5192f9d1 100644 --- a/_modules/searx/search/processors/offline.html +++ b/_modules/searx/search/processors/offline.html @@ -5,14 +5,14 @@ - searx.search.processors.offline — SearXNG Documentation (2024.10.4+bebb5f57) + searx.search.processors.offline — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + - + @@ -25,7 +25,7 @@

    Navigation

  • modules |
  • - + @@ -131,11 +131,8 @@

    Quick search

    - - - \ No newline at end of file diff --git a/_modules/searx/search/processors/online.html b/_modules/searx/search/processors/online.html index 55c51614991d..39717cd51719 100644 --- a/_modules/searx/search/processors/online.html +++ b/_modules/searx/search/processors/online.html @@ -5,14 +5,14 @@ - searx.search.processors.online — SearXNG Documentation (2024.10.4+bebb5f57) + searx.search.processors.online — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + - + @@ -25,7 +25,7 @@

    Navigation

  • modules |
  • - + @@ -347,11 +347,8 @@

    Quick search

    - - - \ No newline at end of file diff --git a/_modules/searx/search/processors/online_currency.html b/_modules/searx/search/processors/online_currency.html index f02df4e2f7cc..344830a9d300 100644 --- a/_modules/searx/search/processors/online_currency.html +++ b/_modules/searx/search/processors/online_currency.html @@ -5,14 +5,14 @@ - searx.search.processors.online_currency — SearXNG Documentation (2024.10.4+bebb5f57) + searx.search.processors.online_currency — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + - + @@ -25,7 +25,7 @@

    Navigation

  • modules |
  • - + @@ -63,7 +63,7 @@

    Source code for searx.search.processors.online_currency

    currency = CURRENCIES['names'].get(name, [name]) if isinstance(currency, str): return currency - return currency[0] + return currency[-1] def iso4217_to_name(iso4217, language): @@ -181,11 +181,8 @@

    Quick search

    - - - \ No newline at end of file diff --git a/_modules/searx/search/processors/online_dictionary.html b/_modules/searx/search/processors/online_dictionary.html index 075e6a4879b7..72adaae57bd0 100644 --- a/_modules/searx/search/processors/online_dictionary.html +++ b/_modules/searx/search/processors/online_dictionary.html @@ -5,14 +5,14 @@ - searx.search.processors.online_dictionary — SearXNG Documentation (2024.10.4+bebb5f57) + searx.search.processors.online_dictionary — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + - + @@ -25,7 +25,7 @@

    Navigation

  • modules |
  • - + @@ -168,11 +168,8 @@

    Quick search

    - - - \ No newline at end of file diff --git a/_modules/searx/search/processors/online_url_search.html b/_modules/searx/search/processors/online_url_search.html index b80d35e8f970..acc7589cf49b 100644 --- a/_modules/searx/search/processors/online_url_search.html +++ b/_modules/searx/search/processors/online_url_search.html @@ -5,14 +5,14 @@ - searx.search.processors.online_url_search — SearXNG Documentation (2024.10.4+bebb5f57) + searx.search.processors.online_url_search — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + - + @@ -25,7 +25,7 @@

    Navigation

  • modules |
  • - + @@ -153,11 +153,8 @@

    Quick search

    - - - \ No newline at end of file diff --git a/_modules/searx/settings_loader.html b/_modules/searx/settings_loader.html index 90b94732b2ac..c7739041f922 100644 --- a/_modules/searx/settings_loader.html +++ b/_modules/searx/settings_loader.html @@ -5,14 +5,14 @@ - searx.settings_loader — SearXNG Documentation (2024.10.4+bebb5f57) + searx.settings_loader — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + - + @@ -25,7 +25,7 @@

    Navigation

  • modules |
  • - + @@ -331,11 +331,8 @@

    Quick search

    - - - \ No newline at end of file diff --git a/_modules/searx/sqlitedb.html b/_modules/searx/sqlitedb.html new file mode 100644 index 000000000000..dddccb70e985 --- /dev/null +++ b/_modules/searx/sqlitedb.html @@ -0,0 +1,455 @@ + + + + + + + + searx.sqlitedb — SearXNG Documentation (2024.10.31+5f50d2d5) + + + + + + + + + + + + +
    +
    +
    +
    + +

    Source code for searx.sqlitedb

    +# SPDX-License-Identifier: AGPL-3.0-or-later
    +"""Implementations to make access to SQLite databases a little more convenient.
    +
    +:py:obj:`SQLiteAppl`
    +  Abstract class with which DB applications can be implemented.
    +
    +:py:obj:`SQLiteProperties`:
    +  Class to manage properties stored in a database.
    +
    +----
    +
    +"""
    +from __future__ import annotations
    +
    +import sys
    +import re
    +import sqlite3
    +import threading
    +import abc
    +
    +from searx import logger
    +
    +logger = logger.getChild('sqlitedb')
    +
    +
    +
    +[docs] +class SQLiteAppl(abc.ABC): + """Abstract base class for implementing convenient DB access in SQLite + applications. In the constructor, a :py:obj:`SQLiteProperties` instance is + already aggregated under ``self.properties``.""" + + DDL_CREATE_TABLES: dict[str, str] = {} + + DB_SCHEMA: int = 1 + """As soon as changes are made to the DB schema, the version number must be + increased. Changes to the version number require the DB to be recreated (or + migrated / if an migration path exists and is implemented).""" + + SQLITE_THREADING_MODE = { + 0: "single-thread", + 1: "multi-thread", + 3: "serialized"}[sqlite3.threadsafety] # fmt:skip + """Threading mode of the SQLite library. Depends on the options used at + compile time and is different for different distributions and architectures. + + Possible values are 0:``single-thread``, 1:``multi-thread``, + 3:``serialized`` (see :py:obj:`sqlite3.threadsafety`). Pre- Python 3.11 + this value was hard coded to 1. + + Depending on this value, optimizations are made, e.g. in “serialized” mode + it is not necessary to create a separate DB connector for each thread. + """ + + SQLITE_JOURNAL_MODE = "WAL" + SQLITE_CONNECT_ARGS = { + # "timeout": 5.0, + # "detect_types": 0, + "check_same_thread": bool(SQLITE_THREADING_MODE != "serialized"), + "cached_statements": 0, # https://github.com/python/cpython/issues/118172 + # "uri": False, + "autocommit": False, + } # fmt:skip + """Connection arguments (:py:obj:`sqlite3.connect`) + + ``check_same_thread``: + Is disabled by default when :py:obj:`SQLITE_THREADING_MODE` is + ``serialized``. The check is more of a hindrance in this case because it + would prevent a DB connector from being used in multiple threads. + + ``autocommit``: + Is disabled by default. Note: autocommit option has been added in Python + 3.12. + + ``cached_statements``: + Is set to ``0`` by default. Note: Python 3.12+ fetch result are not + consistent in multi-threading application and causing an API misuse error. + + The multithreading use in SQLiteAppl is intended and supported if + threadsafety is set to 3 (aka "serialized"). CPython supports “serialized” + from version 3.12 on, but unfortunately only with errors: + + - https://github.com/python/cpython/issues/118172 + - https://github.com/python/cpython/issues/123873 + + The workaround for SQLite3 multithreading cache inconsistency ist to set + option ``cached_statements`` to ``0`` by default. + """ + + def __init__(self, db_url): + + self.db_url = db_url + self.properties = SQLiteProperties(db_url) + self.thread_local = threading.local() + self._init_done = False + self._compatibility() + + def _compatibility(self): + + if self.SQLITE_THREADING_MODE == "serialized": + self._DB = None + else: + msg = ( + f"SQLite library is compiled with {self.SQLITE_THREADING_MODE} mode," + " read https://docs.python.org/3/library/sqlite3.html#sqlite3.threadsafety" + ) + if threading.active_count() > 1: + logger.error(msg) + else: + logger.warning(msg) + + if sqlite3.sqlite_version_info <= (3, 35): + # See "Generalize UPSERT:" in https://sqlite.org/releaselog/3_35_0.html + logger.critical( + "SQLite runtime library version %s is not supported (require >= 3.35)", sqlite3.sqlite_version + ) + +
    +[docs] + def connect(self) -> sqlite3.Connection: + """Creates a new DB connection (:py:obj:`SQLITE_CONNECT_ARGS`). If not + already done, the DB schema is set up + """ + if sys.version_info < (3, 12): + # Prior Python 3.12 there is no "autocommit" option + self.SQLITE_CONNECT_ARGS.pop("autocommit", None) + + self.init() + logger.debug("%s: connect to DB: %s // %s", self.__class__.__name__, self.db_url, self.SQLITE_CONNECT_ARGS) + conn = sqlite3.Connection(self.db_url, **self.SQLITE_CONNECT_ARGS) # type: ignore + conn.execute(f"PRAGMA journal_mode={self.SQLITE_JOURNAL_MODE}") + self.register_functions(conn) + return conn
    + + +
    +[docs] + def register_functions(self, conn): + """Create user-defined_ SQL functions. + + ``REGEXP(<pattern>, <field>)`` : 0 | 1 + `re.search`_ returns (int) 1 for a match and 0 for none match of + ``<pattern>`` in ``<field>``. + + .. code:: sql + + SELECT '12' AS field WHERE REGEXP('^[0-9][0-9]$', field) + -- 12 + + SELECT REGEXP('[0-9][0-9]', 'X12Y') + -- 1 + SELECT REGEXP('[0-9][0-9]', 'X1Y') + -- 0 + + .. _user-defined: https://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.create_function + .. _deterministic: https://sqlite.org/deterministic.html + .. _re.search: https://docs.python.org/3/library/re.html#re.search + """ + + conn.create_function('regexp', 2, lambda x, y: 1 if re.search(x, y) else 0, deterministic=True)
    + + + @property + def DB(self) -> sqlite3.Connection: + """Provides a DB connection. The connection is a *singleton* and + therefore well suited for read access. If + :py:obj:`SQLITE_THREADING_MODE` is ``serialized`` only one DB connection + is created for all threads. + + .. note:: + + For dedicated `transaction control`_, it is recommended to create a + new connection (:py:obj:`SQLiteAppl.connect`). + + .. _transaction control: + https://docs.python.org/3/library/sqlite3.html#sqlite3-controlling-transactions + """ + + if getattr(self.thread_local, 'DB', None) is None: + self.thread_local.DB = self.connect() + + # Theoretically it is possible to reuse the DB cursor across threads as + # of Python 3.12, in practice the threading of the cursor seems to me to + # be so faulty that I prefer to establish one connection per thread + + self.thread_local.DB.commit() + return self.thread_local.DB + + # In "serialized" mode, SQLite can be safely used by multiple threads + # with no restriction. + # + # if self.SQLITE_THREADING_MODE != "serialized": + # if getattr(self.thread_local, 'DB', None) is None: + # self.thread_local.DB = self.connect() + # return self.thread_local.DB + # + # if self._DB is None: + # self._DB = self.connect() # pylint: disable=attribute-defined-outside-init + # return self._DB + +
    +[docs] + def init(self): + """Initializes the DB schema and properties, is only executed once even + if called several times.""" + + if self._init_done: + return + self._init_done = True + + logger.debug("init DB: %s", self.db_url) + self.properties.init() + ver = self.properties("DB_SCHEMA") + if ver is None: + with self.properties.DB: + self.create_schema(self.properties.DB) + else: + ver = int(ver) + if ver != self.DB_SCHEMA: + raise sqlite3.DatabaseError("Expected DB schema v%s, DB schema is v%s" % (self.DB_SCHEMA, ver)) + logger.debug("DB_SCHEMA = %s", ver)
    + + + def create_schema(self, conn): + + logger.debug("create schema ..") + with conn: + for table_name, sql in self.DDL_CREATE_TABLES.items(): + conn.execute(sql) + self.properties.set(f"Table {table_name} created", table_name) + self.properties.set("DB_SCHEMA", self.DB_SCHEMA) + self.properties.set("LAST_MAINTENANCE", "")
    + + + +
    +[docs] +class SQLiteProperties(SQLiteAppl): + """Simple class to manage properties of a DB application in the DB. The + object has its own DB connection and transaction area. + + .. code:: sql + + CREATE TABLE IF NOT EXISTS properties ( + name TEXT, + value TEXT, + m_time INTEGER DEFAULT (strftime('%s', 'now')), + PRIMARY KEY (name)) + + """ + + SQLITE_JOURNAL_MODE = "WAL" + + DDL_PROPERTIES = """\ +CREATE TABLE IF NOT EXISTS properties ( + name TEXT, + value TEXT, + m_time INTEGER DEFAULT (strftime('%s', 'now')), -- last modified (unix epoch) time in sec. + PRIMARY KEY (name))""" + + """Table to store properties of the DB application""" + + SQL_GET = "SELECT value FROM properties WHERE name = ?" + SQL_M_TIME = "SELECT m_time FROM properties WHERE name = ?" + SQL_SET = ( + "INSERT INTO properties (name, value) VALUES (?, ?)" + " ON CONFLICT(name) DO UPDATE" + " SET value=excluded.value, m_time=strftime('%s', 'now')" + ) + SQL_TABLE_EXISTS = ( + "SELECT name FROM sqlite_master" + " WHERE type='table' AND name='properties'" + ) # fmt:skip + SQLITE_CONNECT_ARGS = dict(SQLiteAppl.SQLITE_CONNECT_ARGS) + SQLITE_CONNECT_ARGS["autocommit"] = True # This option has no effect before Python 3.12 + + def __init__(self, db_url: str): # pylint: disable=super-init-not-called + + self.db_url = db_url + self.thread_local = threading.local() + self._init_done = False + self._compatibility() + +
    +[docs] + def init(self): + """Initializes DB schema of the properties in the DB.""" + + if self._init_done: + return + self._init_done = True + logger.debug("init properties of DB: %s", self.db_url) + with self.DB as conn: + res = conn.execute(self.SQL_TABLE_EXISTS) + if res.fetchone() is None: # DB schema needs to be be created + self.create_schema(conn)
    + + + def __call__(self, name, default=None): + """Returns the value of the property ``name`` or ``default`` if property + not exists in DB.""" + + res = self.DB.execute(self.SQL_GET, (name,)).fetchone() + if res is None: + return default + return res[0] + +
    +[docs] + def set(self, name, value): + """Set ``value`` of property ``name`` in DB. If property already + exists, update the ``m_time`` (and the value).""" + + self.DB.execute(self.SQL_SET, (name, value)) + + if sys.version_info <= (3, 12): + # Prior Python 3.12 there is no "autocommit" option / lets commit + # explicitely. + self.DB.commit()
    + + +
    +[docs] + def row(self, name, default=None): + """Returns the DB row of property ``name`` or ``default`` if property + not exists in DB.""" + + cur = self.DB.cursor() + cur.execute("SELECT * FROM properties WHERE name = ?", (name,)) + res = cur.fetchone() + if res is None: + return default + col_names = [column[0] for column in cur.description] + return dict(zip(col_names, res))
    + + +
    +[docs] + def m_time(self, name, default: int = 0) -> int: + """Last modification time of this property.""" + res = self.DB.execute(self.SQL_M_TIME, (name,)).fetchone() + if res is None: + return default + return int(res[0])
    + + + def create_schema(self, conn): + with conn: + conn.execute(self.DDL_PROPERTIES)
    + +
    + +
    +
    +
    +
    + + +
    +
    + + + \ No newline at end of file diff --git a/_modules/searx/utils.html b/_modules/searx/utils.html index 3da5e61d5a6c..aace6cf2b23c 100644 --- a/_modules/searx/utils.html +++ b/_modules/searx/utils.html @@ -5,14 +5,14 @@ - searx.utils — SearXNG Documentation (2024.10.4+bebb5f57) + searx.utils — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + - + @@ -25,7 +25,7 @@

    Navigation

  • modules |
  • - + @@ -972,11 +972,8 @@

    Quick search

    - - - \ No newline at end of file diff --git a/_sources/admin/index.rst.txt b/_sources/admin/index.rst.txt index 606b51c22389..b47074a8fb48 100644 --- a/_sources/admin/index.rst.txt +++ b/_sources/admin/index.rst.txt @@ -15,6 +15,7 @@ Administrator documentation installation-apache update-searxng answer-captcha + searx.favicons searx.limiter api architecture diff --git a/_sources/admin/searx.favicons.rst.txt b/_sources/admin/searx.favicons.rst.txt new file mode 100644 index 000000000000..b05b3458b879 --- /dev/null +++ b/_sources/admin/searx.favicons.rst.txt @@ -0,0 +1,251 @@ +.. _favicons: + +======== +Favicons +======== + +.. sidebar:: warning + + Don't activate the favicons before reading the documentation. + +.. contents:: + :depth: 2 + :local: + :backlinks: entry + +Activating the favicons in SearXNG is very easy, but this **generates a +significantly higher load** in the client/server communication and increases +resources needed on the server. + +To mitigate these disadvantages, various methods have been implemented, +including a *cache*. The cache must be parameterized according to your own +requirements and maintained regularly. + +To activate favicons in SearXNG's result list, set a default +``favicon_resolver`` in the :ref:`search ` settings: + +.. code:: yaml + + search: + favicon_resolver: "duckduckgo" + +By default and without any extensions, SearXNG serves these resolvers: + +- ``duckduckgo`` +- ``allesedv`` +- ``google`` +- ``yandex`` + +With the above setting favicons are displayed, the user has the option to +deactivate this feature in his settings. If the user is to have the option of +selecting from several *resolvers*, a further setting is required / but this +setting will be discussed :ref:`later ` in this article, +first we have to setup the favicons cache. + +Infrastructure +============== + +The infrastructure for providing the favicons essentially consists of three +parts: + +- :py:obj:`Favicons-Proxy <.favicons.proxy>` (aka *proxy*) +- :py:obj:`Favicons-Resolvers <.favicons.resolvers>` (aka *resolver*) +- :py:obj:`Favicons-Cache <.favicons.cache>` (aka *cache*) + +To protect the privacy of users, the favicons are provided via a *proxy*. This +*proxy* is automatically activated with the above activation of a *resolver*. +Additional requests are required to provide the favicons: firstly, the *proxy* +must process the incoming requests and secondly, the *resolver* must make +outgoing requests to obtain the favicons from external sources. + +A *cache* has been developed to massively reduce both, incoming and outgoing +requests. This *cache* is also activated automatically with the above +activation of a *resolver*. In its defaults, however, the *cache* is minimal +and not well suitable for a production environment! + +.. _favicon cache setup: + +Setting up the cache +==================== + +To parameterize the *cache* and more settings of the favicons infrastructure, a +TOML_ configuration is created in the file ``/etc/searxng/favicons.toml``. + +.. code:: toml + + [favicons] + + cfg_schema = 1 # config's schema version no. + + [favicons.cache] + + db_url = "/var/cache/searxng/faviconcache.db" # default: "/tmp/faviconcache.db" + LIMIT_TOTAL_BYTES = 2147483648 # 2 GB / default: 50 MB + # HOLD_TIME = 5184000 # 60 days / default: 30 days + # BLOB_MAX_BYTES = 40960 # 40 KB / default 20 KB + # MAINTENANCE_MODE = "off" # default: "auto" + # MAINTENANCE_PERIOD = 600 # 10min / default: 1h + +:py:obj:`cfg_schema <.FaviconConfig.cfg_schema>`: + Is required to trigger any processes required for future upgrades / don't + change it. + +:py:obj:`cache.db_url <.FaviconCacheConfig.db_url>`: + The path to the (SQLite_) database file. The default path is in the `/tmp`_ + folder, which is deleted on every reboot and is therefore unsuitable for a + production environment. The FHS_ provides the folder for the + application cache + + The FHS_ provides the folder `/var/cache`_ for the cache of applications, so a + suitable storage location of SearXNG's caches is folder ``/var/cache/searxng``. + In container systems, a volume should be mounted for this folder and in a + standard installation (compare :ref:`create searxng user`), the folder must be + created and the user under which the SearXNG process is running must be given + write permission to this folder. + + .. code:: bash + + $ sudo mkdir /var/cache/searxng + $ sudo chown root:searxng /var/cache/searxng/ + $ sudo chmod g+w /var/cache/searxng/ + +:py:obj:`cache.LIMIT_TOTAL_BYTES <.FaviconCacheConfig.LIMIT_TOTAL_BYTES>`: + Maximum of bytes stored in the cache of all blobs. The limit is only reached + at each maintenance interval after which the oldest BLOBs are deleted; the + limit is exceeded during the maintenance period. + + .. attention:: + + If the maintenance period is too long or maintenance is switched + off completely, the cache grows uncontrollably. + +SearXNG hosters can change other parameters of the cache as required: + +- :py:obj:`cache.HOLD_TIME <.FaviconCacheConfig.HOLD_TIME>` +- :py:obj:`cache.BLOB_MAX_BYTES <.FaviconCacheConfig.BLOB_MAX_BYTES>` + + +Maintenance of the cache +------------------------ + +Regular maintenance of the cache is required! By default, regular maintenance +is triggered automatically as part of the client requests: + +- :py:obj:`cache.MAINTENANCE_MODE <.FaviconCacheConfig.MAINTENANCE_MODE>` (default ``auto``) +- :py:obj:`cache.MAINTENANCE_PERIOD <.FaviconCacheConfig.MAINTENANCE_PERIOD>` (default ``6000`` / 1h) + +As an alternative to maintenance as part of the client request process, it is +also possible to carry out maintenance using an external process. For example, +by creating a :man:`crontab` entry for maintenance: + +.. code:: bash + + $ python -m searx.favicons cache maintenance + +The following command can be used to display the state of the cache: + +.. code:: bash + + $ python -m searx.favicons cache state + + +.. _favicon proxy setup: + +Proxy configuration +=================== + +Most of the options of the :py:obj:`Favicons-Proxy <.favicons.proxy>` are +already set sensibly with settings from the :ref:`settings.yml ` and should not normally be adjusted. + +.. code:: toml + + [favicons.proxy] + + max_age = 5184000 # 60 days / default: 7 days (604800 sec) + + +:py:obj:`max_age <.FaviconProxyConfig.max_age>`: + The `HTTP Cache-Control max-age`_ response directive indicates that the + response remains fresh until N seconds after the response is generated. This + setting therefore determines how long a favicon remains in the client's cache. + As a rule, in the favicons infrastructure of SearXNG's this setting only + affects favicons whose byte size exceeds :ref:`BLOB_MAX_BYTES ` (the other favicons that are already in the cache are embedded as + `data URL`_ in the :py:obj:`generated HTML <.favicons.proxy.favicon_url>`, + which can greatly reduce the number of additional requests). + +.. _register resolvers: + +Register resolvers +------------------ + +A :py:obj:`resolver <.favicon.resolvers>` is a function that obtains the favicon +from an external source. The resolver functions available to the user are +registered with their fully qualified name (FQN_) in a ``resolver_map``. + +If no ``resolver_map`` is defined in the ``favicon.toml``, the favicon +infrastructure of SearXNG generates this ``resolver_map`` automatically +depending on the ``settings.yml``. SearXNG would automatically generate the +following TOML configuration from the following YAML configuration: + +.. code:: yaml + + search: + favicon_resolver: "duckduckgo" + +.. code:: toml + + [favicons.proxy.resolver_map] + + "duckduckgo" = "searx.favicons.resolvers.duckduckgo" + +If this automatism is not desired, then (and only then) a separate +``resolver_map`` must be created. For example, to give the user two resolvers to +choose from, the following configuration could be used: + +.. code:: toml + + [favicons.proxy.resolver_map] + + "duckduckgo" = "searx.favicons.resolvers.duckduckgo" + "allesedv" = "searx.favicons.resolvers.allesedv" + # "google" = "searx.favicons.resolvers.google" + # "yandex" = "searx.favicons.resolvers.yandex" + +.. note:: + + With each resolver, the resource requirement increases significantly. + +The number of resolvers increases: + +- the number of incoming/outgoing requests and +- the number of favicons to be stored in the cache. + +In the following we list the resolvers available in the core of SearXNG, but via +the FQN_ it is also possible to implement your own resolvers and integrate them +into the *proxy*: + +- :py:obj:`searx.favicons.resolvers.duckduckgo` +- :py:obj:`searx.favicons.resolvers.allesedv` +- :py:obj:`searx.favicons.resolvers.google` +- :py:obj:`searx.favicons.resolvers.yandex` + + + +.. _SQLite: + https://www.sqlite.org/ +.. _FHS: + https://refspecs.linuxfoundation.org/FHS_3.0/fhs/index.html +.. _`/var/cache`: + https://refspecs.linuxfoundation.org/FHS_3.0/fhs/ch05s05.html +.. _`/tmp`: + https://refspecs.linuxfoundation.org/FHS_3.0/fhs/ch03s18.html +.. _TOML: + https://toml.io/en/ +.. _HTTP Cache-Control max-age: + https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control#response_directives +.. _data URL: + https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs +.. _FQN: https://en.wikipedia.org/wiki/Fully_qualified_name + diff --git a/_sources/admin/settings/settings_search.rst.txt b/_sources/admin/settings/settings_search.rst.txt index 836207614d88..b8f37b42341a 100644 --- a/_sources/admin/settings/settings_search.rst.txt +++ b/_sources/admin/settings/settings_search.rst.txt @@ -9,6 +9,7 @@ search: safe_search: 0 autocomplete: "" + favicon_resolver: "" default_lang: "" ban_time_on_fail: 5 max_ban_time_on_fail: 120 @@ -41,6 +42,11 @@ - ``qwant`` - ``wikipedia`` +``favicon_resolver``: + To activate favicons in SearXNG's result list select a default + favicon-resolver, leave blank to turn off the feature. Don't activate the + favicons before reading the :ref:`Favicons documentation `. + ``default_lang``: Default search language - leave blank to detect from browser information or use codes from :origin:`searx/languages.py`. diff --git a/_sources/src/searx.favicons.rst.txt b/_sources/src/searx.favicons.rst.txt new file mode 100644 index 000000000000..c1c6a500beec --- /dev/null +++ b/_sources/src/searx.favicons.rst.txt @@ -0,0 +1,48 @@ +.. _favicons source: + +================= +Favicons (source) +================= + +.. contents:: + :depth: 2 + :local: + :backlinks: entry + +.. automodule:: searx.favicons + :members: + +.. _favicons.config: + +Favicons Config +=============== + +.. automodule:: searx.favicons.config + :members: + +.. _favicons.proxy: + +Favicons Proxy +============== + +.. automodule:: searx.favicons.proxy + :members: + +.. _favicons.resolver: + +Favicons Resolver +================= + +.. automodule:: searx.favicons.resolvers + :members: + +.. _favicons.cache: + +Favicons Cache +============== + +.. automodule:: searx.favicons.cache + :members: + + + diff --git a/_sources/src/searx.sqlitedb.rst.txt b/_sources/src/searx.sqlitedb.rst.txt new file mode 100644 index 000000000000..f984ee2863b8 --- /dev/null +++ b/_sources/src/searx.sqlitedb.rst.txt @@ -0,0 +1,8 @@ +.. _sqlite db: + +========= +SQLite DB +========= + +.. automodule:: searx.sqlitedb + :members: diff --git a/_static/autodoc_pydantic.css b/_static/autodoc_pydantic.css new file mode 100644 index 000000000000..994a3e548df4 --- /dev/null +++ b/_static/autodoc_pydantic.css @@ -0,0 +1,11 @@ +.autodoc_pydantic_validator_arrow { + padding-left: 8px; + } + +.autodoc_pydantic_collapsable_json { + cursor: pointer; + } + +.autodoc_pydantic_collapsable_erd { + cursor: pointer; + } \ No newline at end of file diff --git a/_static/describe_version.js b/_static/describe_version.js new file mode 100644 index 000000000000..19cd8d41e393 --- /dev/null +++ b/_static/describe_version.js @@ -0,0 +1,198 @@ +/** + * Match a PEP 440 version string. The full regex given in PEP 440 is not used. + * This subset covers what we expect to encounter in our projects. + */ +const versionRe = new RegExp([ + "^", + "(?:(?[1-9][0-9]*)!)?", + "(?(?:0|[1-9][0-9]*)(?:\\.(?:0|[1-9][0-9]*))*)", + "(?:(?a|b|rc)(?0|[1-9][0-9]*))?", + "(?:\\.post(?0|[1-9][0-9]*))?", + "(?:\\.dev(?0|[1-9][0-9]*))?", + "$", +].join("")) + +/** + * Parse a PEP 440 version string into an object. + * + * @param {string} value + * @returns {Object} parsed version information + */ +function parseVersion(value) { + let {groups: {epoch, version, preL, preN, postN, devN}} = versionRe.exec(value) + return { + value: value, + parts: [ + parseInt(epoch) || 0, ...version.split(".").map(p => parseInt(p)) + ], + isPre: Boolean(preL), + preL: preL || "", + preN: parseInt(preN) || 0, + isPost: Boolean(postN), + postN: parseInt(postN) || 0, + isDev: Boolean(devN), + devN: parseInt(devN) || 0, + } +} + +/** + * Compare two version objects. + * + * @param {Object} a left side of comparison + * @param {Object} b right side of comparison + * @returns {number} -1 less than, 0 equal to, 1 greater than + */ +function compareVersions(a, b) { + for (let [i, an] of a.parts.entries()) { + let bn = i < b.parts.length ? b.parts[i] : 0 + + if (an < bn) { + return -1 + } else if (an > bn) { + return 1 + } + } + + if (a.parts.length < b.parts.length) { + return -1 + } + + return 0 +} + +/** + * Get the list of released versions for the project from PyPI. Prerelease and + * development versions are discarded. The list is sorted in descending order, + * highest version first. + * + * This will be called on every page load. To avoid making excessive requests to + * PyPI, the result is cached for 1 day. PyPI also sends cache headers, so a + * subsequent request may still be more efficient, but it only specifies caching + * the full response for 5 minutes. + * + * @param {string} name The normalized PyPI project name to query. + * @returns {Promise} A sorted list of version objects. + */ +async function getReleasedVersions(name) { + // The response from PyPI is only cached for 5 minutes. Extend that to 1 day. + let cacheTime = localStorage.getItem("describeVersion-time") + let cacheResult = localStorage.getItem("describeVersion-result") + + // if there is a cached value + if (cacheTime && cacheResult) { + // if the cache is younger than 1 day + if (Number(cacheTime) >= Date.now() - 86400000) { + // Use the cached value instead of making another request. + return JSON.parse(cacheResult) + } + } + + let response = await fetch( + `https://pypi.org/simple/${name}/`, + {"headers": {"Accept": "application/vnd.pypi.simple.v1+json"}} + ) + let data = await response.json() + let result = data["versions"] + .map(parseVersion) + .filter(v => !(v.isPre || v.isDev)) + .sort(compareVersions) + .reverse() + localStorage.setItem("describeVersion-time", Date.now().toString()) + localStorage.setItem("describeVersion-result", JSON.stringify(result)) + return result +} + +/** + * Get the highest released version of the project from PyPI, and compare the + * version being documented. Returns a list of two values, the comparison + * result and the highest version. + * + * @param name The normalized PyPI project name. + * @param value The version being documented. + * @returns {Promise<[number, Object|null]>} + */ +async function describeVersion(name, value) { + if (value.endsWith(".x")) { + value = value.slice(0, -2) + } + + let currentVersion = parseVersion(value) + let releasedVersions = await getReleasedVersions(name) + + if (releasedVersions.length === 0) { + return [1, null] + } + + let highestVersion = releasedVersions[0] + let compared = compareVersions(currentVersion, highestVersion) + + if (compared === 1) { + return [1, highestVersion] + } + + // If the current version including trailing zeros is a prefix of the highest + // version, then these are the stable docs. For example, 2.0.x becomes 2.0, + // which is a prefix of 2.0.3. If we were just looking at the compare result, + // it would incorrectly be marked as an old version. + if (currentVersion.parts.every((n, i) => n === highestVersion.parts[i])) { + return [0, highestVersion] + } + + return [-1, highestVersion] +} + +/** + * Compare the version being documented to the highest released version, and + * display a warning banner if it is not the highest version. + * + * @param project The normalized PyPI project name. + * @param version The version being documented. + * @returns {Promise} + */ +async function createBanner(project, version) { + let [compared, stable] = await describeVersion(project, version) + + // No banner if this is the highest version or there are no other versions. + if (compared === 0 || stable === null) { + return + } + + let banner = document.createElement("p") + banner.className = "version-warning" + + if (compared === 1) { + banner.textContent = "This is the development version. The stable version is " + } else if (compared === -1) { + banner.textContent = "This is an old version. The current version is " + } + + let canonical = document.querySelector('link[rel="canonical"]') + + if (canonical !== null) { + // If a canonical URL is available, the version is a link to it. + let link = document.createElement("a") + link.href = canonical.href + link.textContent = stable.value + banner.append(link, ".") + } else { + // Otherwise, the version is text only. + banner.append(stable.value, ".") + } + + document.getElementsByClassName("document")[0].prepend(banner) + // Set scroll-padding-top to prevent the banner from overlapping anchors. + // It's also set in CSS assuming the banner text is only 1 line. + let bannerStyle = window.getComputedStyle(banner) + let bannerMarginTop = parseFloat(bannerStyle["margin-top"]) + let bannerMarginBottom = parseFloat(bannerStyle["margin-bottom"]) + let height = banner.offsetHeight + bannerMarginTop + bannerMarginBottom + document.documentElement.style["scroll-padding-top"] = `${height}px` +} + +(() => { + // currentScript is only available during init, not during callbacks. + let {project, version} = document.currentScript.dataset + document.addEventListener("DOMContentLoaded", async () => { + await createBanner(project, version) + }) +})() diff --git a/_static/documentation_options.js b/_static/documentation_options.js index c62771ec7f78..8575825fde0f 100644 --- a/_static/documentation_options.js +++ b/_static/documentation_options.js @@ -1,5 +1,5 @@ const DOCUMENTATION_OPTIONS = { - VERSION: '2024.10.4+bebb5f57', + VERSION: '2024.10.31+5f50d2d5', LANGUAGE: 'en', COLLAPSE_INDEX: false, BUILDER: 'html', diff --git a/_static/pocoo.css b/_static/pocoo.css index 4f14b31ee444..7a01d1d5cb56 100644 --- a/_static/pocoo.css +++ b/_static/pocoo.css @@ -2,6 +2,11 @@ /* -- page layout --------------------------------------------------- */ +html { + scroll-padding-top: calc(30px + 1em); + /* see .version-warning selector for banner positioning */ +} + body { font-family: 'Garamond', 'Georgia', serif; font-size: 17px; @@ -136,20 +141,10 @@ div.sphinxsidebar #searchbox input[type=submit] { border-left-width: 0; } -/* -- versions ------------------------------------------------------ */ - -div.sphinxsidebar ul.versions a.current { - font-style: italic; - border-bottom: 1px solid #000; - color: #000; -} - -div.sphinxsidebar ul.versions span.note { - color: #999; -} - /* -- version warning ----------------------------------------------- */ +/* see html selector for scroll offset */ + p.version-warning { top: 10px; position: sticky; @@ -469,11 +464,6 @@ table.footnote td { display: none; } - div.sphinxsidebar ul.versions a.current { - border-bottom-color: #fff; - color: #fff; - } - div.footer { text-align: left; margin: 0 -20px; diff --git a/_static/version_warning_offset.js b/_static/version_warning_offset.js deleted file mode 100644 index c7f9f49b5c17..000000000000 --- a/_static/version_warning_offset.js +++ /dev/null @@ -1,40 +0,0 @@ -/* -When showing the sticky version warning, the warning will cover the -scroll target when navigating to #id hash locations. Take over scrolling -to adjust the position to account for the height of the warning. -*/ -$(() => { - const versionWarning = $('.version-warning') - - // Skip if there is no version warning, regular browser behavior is - // fine in that case. - if (versionWarning.length) { - const height = versionWarning.outerHeight(true) - const target = $(':target') - - // Adjust position when the initial link has a hash. - if (target.length) { - // Use absolute scrollTo instead of relative scrollBy to avoid - // scrolling when the viewport is already at the bottom of the - // document and has space. - const y = target.offset().top - height - // Delayed because the initial browser scroll doesn't seem to - // happen until after the document ready event, so scrolling - // immediately will be overridden. - setTimeout(() => scrollTo(0, y), 100) - } - - // Listen to clicks on hash anchors. - $('a[href^="#"]').on('click', e => { - // Stop default scroll. Also stops the automatic URL hash update. - e.preventDefault() - // Get the id to scroll to and set the URL hash manually. - const id = $(e.currentTarget).attr('href').substring(1) - location.hash = id - // Use getElementById since the hash may have dots in it. - const target = $(document.getElementById(id)) - // Scroll to top of target with space for the version warning. - scrollTo(0, target.offset().top - height) - }) - } -}) diff --git a/admin/answer-captcha.html b/admin/answer-captcha.html index 4eab3381ea14..499657485f8e 100644 --- a/admin/answer-captcha.html +++ b/admin/answer-captcha.html @@ -5,17 +5,19 @@ - Answer CAPTCHA from server’s IP — SearXNG Documentation (2024.10.4+bebb5f57) + Answer CAPTCHA from server’s IP — SearXNG Documentation (2024.10.31+5f50d2d5) + - + + - +
    - - - \ No newline at end of file diff --git a/admin/api.html b/admin/api.html index 46e3cc984eb7..2f44cb451e3c 100644 --- a/admin/api.html +++ b/admin/api.html @@ -5,13 +5,14 @@ - Administration API — SearXNG Documentation (2024.10.4+bebb5f57) + Administration API — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

    Navigation

  • previous |
  • - + @@ -159,6 +160,7 @@

    Table of Contents

  • Apache
  • SearXNG maintenance
  • Answer CAPTCHA from server’s IP
  • +
  • Favicons
  • Limiter
  • Administration API @@ -103,6 +104,12 @@

    Administrator documentationAnswer CAPTCHA from server’s IP

  • +
  • Favicons +
  • Limiter
  • @@ -165,6 +171,7 @@

    Table of Contents

  • Apache
  • SearXNG maintenance
  • Answer CAPTCHA from server’s IP
  • +
  • Favicons
  • Limiter
  • Administration API
  • Architecture
  • @@ -216,11 +223,8 @@

    This Page

    - - - \ No newline at end of file diff --git a/admin/installation-apache.html b/admin/installation-apache.html index 9e12ff9daff7..1a979ac6e97e 100644 --- a/admin/installation-apache.html +++ b/admin/installation-apache.html @@ -5,13 +5,15 @@ - Apache — SearXNG Documentation (2024.10.4+bebb5f57) + Apache — SearXNG Documentation (2024.10.31+5f50d2d5) + - + + @@ -33,7 +35,7 @@

    Navigation

  • previous |
  • - + @@ -418,6 +420,7 @@

    Table of Contents

  • SearXNG maintenance
  • Answer CAPTCHA from server’s IP
  • +
  • Favicons
  • Limiter
  • Administration API
  • Architecture
  • @@ -472,11 +475,8 @@

    This Page

    - - - \ No newline at end of file diff --git a/admin/installation-docker.html b/admin/installation-docker.html index 2eb80b7e3e0b..cbe5bfd9abcc 100644 --- a/admin/installation-docker.html +++ b/admin/installation-docker.html @@ -5,13 +5,14 @@ - Docker Container — SearXNG Documentation (2024.10.4+bebb5f57) + Docker Container — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

    Navigation

  • previous |
  • - + @@ -267,6 +268,7 @@

    Table of Contents

  • Apache
  • SearXNG maintenance
  • Answer CAPTCHA from server’s IP
  • +
  • Favicons
  • Limiter
  • Administration API
  • Architecture
  • @@ -321,11 +323,8 @@

    This Page

    - - - \ No newline at end of file diff --git a/admin/installation-nginx.html b/admin/installation-nginx.html index f9d074c28635..7b5dc4a746ce 100644 --- a/admin/installation-nginx.html +++ b/admin/installation-nginx.html @@ -5,13 +5,15 @@ - NGINX — SearXNG Documentation (2024.10.4+bebb5f57) + NGINX — SearXNG Documentation (2024.10.31+5f50d2d5) + - + + @@ -33,7 +35,7 @@

    Navigation

  • previous |
  • - + @@ -296,6 +298,7 @@

    Table of Contents

  • Apache
  • SearXNG maintenance
  • Answer CAPTCHA from server’s IP
  • +
  • Favicons
  • Limiter
  • Administration API
  • Architecture
  • @@ -350,11 +353,8 @@

    This Page

    - - - \ No newline at end of file diff --git a/admin/installation-scripts.html b/admin/installation-scripts.html index d66420470e7b..559fea00d8a4 100644 --- a/admin/installation-scripts.html +++ b/admin/installation-scripts.html @@ -5,13 +5,14 @@ - Installation Script — SearXNG Documentation (2024.10.4+bebb5f57) + Installation Script — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

    Navigation

  • previous |
  • - + @@ -131,6 +132,7 @@

    Table of Contents

  • Apache
  • SearXNG maintenance
  • Answer CAPTCHA from server’s IP
  • +
  • Favicons
  • Limiter
  • Administration API
  • Architecture
  • @@ -185,11 +187,8 @@

    This Page

    - - - \ No newline at end of file diff --git a/admin/installation-searxng.html b/admin/installation-searxng.html index 282434407979..6bcf39af812a 100644 --- a/admin/installation-searxng.html +++ b/admin/installation-searxng.html @@ -5,13 +5,15 @@ - Step by step installation — SearXNG Documentation (2024.10.4+bebb5f57) + Step by step installation — SearXNG Documentation (2024.10.31+5f50d2d5) + - + + @@ -33,7 +35,7 @@

    Navigation

  • previous |
  • - + @@ -255,6 +257,9 @@

    Navigation

    autocomplete: "" # minimun characters to type before autocompleter starts autocomplete_min: 4 + # backend for the favicon near URL in search results. + # Available resolvers: "allesedv", "duckduckgo", "google", "yandex" - leave blank to turn it off by default. + favicon_resolver: "" # Default search language - leave blank to detect from browser information or # use codes from 'languages.py' default_lang: "auto" @@ -559,6 +564,7 @@

    Table of Contents

  • Apache
  • SearXNG maintenance
  • Answer CAPTCHA from server’s IP
  • +
  • Favicons
  • Limiter
  • Administration API
  • Architecture
  • @@ -613,11 +619,8 @@

    This Page

    - - - \ No newline at end of file diff --git a/admin/installation-uwsgi.html b/admin/installation-uwsgi.html index 8b1c601c5717..e77f2f000805 100644 --- a/admin/installation-uwsgi.html +++ b/admin/installation-uwsgi.html @@ -5,13 +5,15 @@ - uWSGI — SearXNG Documentation (2024.10.4+bebb5f57) + uWSGI — SearXNG Documentation (2024.10.31+5f50d2d5) + - + + @@ -33,7 +35,7 @@

    Navigation

  • previous |
  • - + @@ -577,6 +579,7 @@

    Table of Contents

  • Apache
  • SearXNG maintenance
  • Answer CAPTCHA from server’s IP
  • +
  • Favicons
  • Limiter
  • Administration API
  • Architecture
  • @@ -631,11 +634,8 @@

    This Page

    - - - \ No newline at end of file diff --git a/admin/installation.html b/admin/installation.html index 950f0476078f..798a231dd125 100644 --- a/admin/installation.html +++ b/admin/installation.html @@ -5,13 +5,14 @@ - Installation — SearXNG Documentation (2024.10.4+bebb5f57) + Installation — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

    Navigation

  • previous |
  • - + @@ -92,6 +93,7 @@

    Table of Contents

  • Apache
  • SearXNG maintenance
  • Answer CAPTCHA from server’s IP
  • +
  • Favicons
  • Limiter
  • Administration API
  • Architecture
  • @@ -146,11 +148,8 @@

    This Page

    - - - \ No newline at end of file diff --git a/admin/plugins.html b/admin/plugins.html index 1480d04c5335..fbe1f5ff3b0e 100644 --- a/admin/plugins.html +++ b/admin/plugins.html @@ -5,13 +5,14 @@ - Plugins builtin — SearXNG Documentation (2024.10.4+bebb5f57) + Plugins builtin — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

    Navigation

  • previous |
  • - + @@ -139,6 +140,7 @@

    Table of Contents

  • Apache
  • SearXNG maintenance
  • Answer CAPTCHA from server’s IP
  • +
  • Favicons
  • Limiter
  • Administration API
  • Architecture
  • @@ -193,11 +195,8 @@

    This Page

    - - - \ No newline at end of file diff --git a/admin/searx.favicons.html b/admin/searx.favicons.html new file mode 100644 index 000000000000..d2c66a06aaed --- /dev/null +++ b/admin/searx.favicons.html @@ -0,0 +1,354 @@ + + + + + + + + Favicons — SearXNG Documentation (2024.10.31+5f50d2d5) + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    Favicons

    + + +

    Activating the favicons in SearXNG is very easy, but this generates a +significantly higher load in the client/server communication and increases +resources needed on the server.

    +

    To mitigate these disadvantages, various methods have been implemented, +including a cache. The cache must be parameterized according to your own +requirements and maintained regularly.

    +

    To activate favicons in SearXNG’s result list, set a default +favicon_resolver in the search settings:

    +
    search:
    +  favicon_resolver: "duckduckgo"
    +
    +
    +

    By default and without any extensions, SearXNG serves these resolvers:

    +
      +
    • duckduckgo

    • +
    • allesedv

    • +
    • google

    • +
    • yandex

    • +
    +

    With the above setting favicons are displayed, the user has the option to +deactivate this feature in his settings. If the user is to have the option of +selecting from several resolvers, a further setting is required / but this +setting will be discussed later in this article, +first we have to setup the favicons cache.

    +
    +

    Infrastructure

    +

    The infrastructure for providing the favicons essentially consists of three +parts:

    + +

    To protect the privacy of users, the favicons are provided via a proxy. This +proxy is automatically activated with the above activation of a resolver. +Additional requests are required to provide the favicons: firstly, the proxy +must process the incoming requests and secondly, the resolver must make +outgoing requests to obtain the favicons from external sources.

    +

    A cache has been developed to massively reduce both, incoming and outgoing +requests. This cache is also activated automatically with the above +activation of a resolver. In its defaults, however, the cache is minimal +and not well suitable for a production environment!

    +
    +
    +

    Setting up the cache

    +

    To parameterize the cache and more settings of the favicons infrastructure, a +TOML configuration is created in the file /etc/searxng/favicons.toml.

    +
    [favicons]
    +
    +cfg_schema = 1   # config's schema version no.
    +
    +[favicons.cache]
    +
    +db_url = "/var/cache/searxng/faviconcache.db"  # default: "/tmp/faviconcache.db"
    +LIMIT_TOTAL_BYTES = 2147483648                 # 2 GB / default: 50 MB
    +# HOLD_TIME = 5184000                            # 60 days / default: 30 days
    +# BLOB_MAX_BYTES = 40960                         # 40 KB / default 20 KB
    +# MAINTENANCE_MODE = "off"                       # default: "auto"
    +# MAINTENANCE_PERIOD = 600                       # 10min / default: 1h
    +
    +
    +
    +
    cfg_schema:

    Is required to trigger any processes required for future upgrades / don’t +change it.

    +
    +
    cache.db_url:

    The path to the (SQLite) database file. The default path is in the /tmp +folder, which is deleted on every reboot and is therefore unsuitable for a +production environment. The FHS provides the folder for the +application cache

    +

    The FHS provides the folder /var/cache for the cache of applications, so a +suitable storage location of SearXNG’s caches is folder /var/cache/searxng. +In container systems, a volume should be mounted for this folder and in a +standard installation (compare Create user), the folder must be +created and the user under which the SearXNG process is running must be given +write permission to this folder.

    +
    $ sudo mkdir /var/cache/searxng
    +$ sudo chown root:searxng /var/cache/searxng/
    +$ sudo chmod g+w /var/cache/searxng/
    +
    +
    +
    +
    cache.LIMIT_TOTAL_BYTES:

    Maximum of bytes stored in the cache of all blobs. The limit is only reached +at each maintenance interval after which the oldest BLOBs are deleted; the +limit is exceeded during the maintenance period.

    +
    +

    Attention

    +

    If the maintenance period is too long or maintenance is switched +off completely, the cache grows uncontrollably.

    +
    +
    +
    +

    SearXNG hosters can change other parameters of the cache as required:

    + +
    +

    Maintenance of the cache

    +

    Regular maintenance of the cache is required! By default, regular maintenance +is triggered automatically as part of the client requests:

    + +

    As an alternative to maintenance as part of the client request process, it is +also possible to carry out maintenance using an external process. For example, +by creating a crontab entry for maintenance:

    +
    $ python -m searx.favicons cache maintenance
    +
    +
    +

    The following command can be used to display the state of the cache:

    +
    $ python -m searx.favicons cache state
    +
    +
    +
    +
    +
    +

    Proxy configuration

    +

    Most of the options of the Favicons-Proxy are +already set sensibly with settings from the settings.yml and should not normally be adjusted.

    +
    [favicons.proxy]
    +
    +max_age = 5184000             # 60 days / default: 7 days (604800 sec)
    +
    +
    +
    +
    max_age:

    The HTTP Cache-Control max-age response directive indicates that the +response remains fresh until N seconds after the response is generated. This +setting therefore determines how long a favicon remains in the client’s cache. +As a rule, in the favicons infrastructure of SearXNG’s this setting only +affects favicons whose byte size exceeds BLOB_MAX_BYTES (the other favicons that are already in the cache are embedded as +data URL in the generated HTML, +which can greatly reduce the number of additional requests).

    +
    +
    +
    +

    Register resolvers

    +

    A resolver is a function that obtains the favicon +from an external source. The resolver functions available to the user are +registered with their fully qualified name (FQN) in a resolver_map.

    +

    If no resolver_map is defined in the favicon.toml, the favicon +infrastructure of SearXNG generates this resolver_map automatically +depending on the settings.yml. SearXNG would automatically generate the +following TOML configuration from the following YAML configuration:

    +
    search:
    +  favicon_resolver: "duckduckgo"
    +
    +
    +
    [favicons.proxy.resolver_map]
    +
    +"duckduckgo" = "searx.favicons.resolvers.duckduckgo"
    +
    +
    +

    If this automatism is not desired, then (and only then) a separate +resolver_map must be created. For example, to give the user two resolvers to +choose from, the following configuration could be used:

    +
    [favicons.proxy.resolver_map]
    +
    +"duckduckgo" = "searx.favicons.resolvers.duckduckgo"
    +"allesedv" = "searx.favicons.resolvers.allesedv"
    +# "google" = "searx.favicons.resolvers.google"
    +# "yandex" = "searx.favicons.resolvers.yandex"
    +
    +
    +
    +

    Note

    +

    With each resolver, the resource requirement increases significantly.

    +
    +

    The number of resolvers increases:

    +
      +
    • the number of incoming/outgoing requests and

    • +
    • the number of favicons to be stored in the cache.

    • +
    +

    In the following we list the resolvers available in the core of SearXNG, but via +the FQN it is also possible to implement your own resolvers and integrate them +into the proxy:

    + +
    +
    +
    + + +
    +
    +
    +
    + + +
    +
    + + + \ No newline at end of file diff --git a/admin/searx.limiter.html b/admin/searx.limiter.html index 515f25fe10f9..9348d062386f 100644 --- a/admin/searx.limiter.html +++ b/admin/searx.limiter.html @@ -5,17 +5,18 @@ - Limiter — SearXNG Documentation (2024.10.4+bebb5f57) + Limiter — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + - +
    - - - \ No newline at end of file diff --git a/admin/settings/index.html b/admin/settings/index.html index 576a21098f5b..895102daa4bd 100644 --- a/admin/settings/index.html +++ b/admin/settings/index.html @@ -5,13 +5,14 @@ - Settings — SearXNG Documentation (2024.10.4+bebb5f57) + Settings — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

    Navigation

  • previous |
  • - + @@ -121,6 +122,7 @@

    Table of Contents

  • Apache
  • SearXNG maintenance
  • Answer CAPTCHA from server’s IP
  • +
  • Favicons
  • Limiter
  • Administration API
  • Architecture
  • @@ -175,11 +177,8 @@

    This Page

    - - - \ No newline at end of file diff --git a/admin/settings/settings.html b/admin/settings/settings.html index f8d2ce719fb1..951fa5da8b2a 100644 --- a/admin/settings/settings.html +++ b/admin/settings/settings.html @@ -5,13 +5,14 @@ - settings.yml — SearXNG Documentation (2024.10.4+bebb5f57) + settings.yml — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

    Navigation

  • previous |
  • - + @@ -196,6 +197,7 @@

    Table of Contents

  • Apache
  • SearXNG maintenance
  • Answer CAPTCHA from server’s IP
  • +
  • Favicons
  • Limiter
  • Administration API
  • Architecture
  • @@ -253,11 +255,8 @@

    This Page

    - - - \ No newline at end of file diff --git a/admin/settings/settings_brand.html b/admin/settings/settings_brand.html index 51c9815c3630..d6a44045a10e 100644 --- a/admin/settings/settings_brand.html +++ b/admin/settings/settings_brand.html @@ -5,13 +5,14 @@ - brand: — SearXNG Documentation (2024.10.4+bebb5f57) + brand: — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

    Navigation

  • previous |
  • - + @@ -107,6 +108,7 @@

    Table of Contents

  • Apache
  • SearXNG maintenance
  • Answer CAPTCHA from server’s IP
  • +
  • Favicons
  • Limiter
  • Administration API
  • Architecture
  • @@ -164,11 +166,8 @@

    This Page

    - - - \ No newline at end of file diff --git a/admin/settings/settings_categories_as_tabs.html b/admin/settings/settings_categories_as_tabs.html index a9798b904b67..097cf0fe48b8 100644 --- a/admin/settings/settings_categories_as_tabs.html +++ b/admin/settings/settings_categories_as_tabs.html @@ -5,13 +5,14 @@ - categories_as_tabs: — SearXNG Documentation (2024.10.4+bebb5f57) + categories_as_tabs: — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

    Navigation

  • previous |
  • - + @@ -112,6 +113,7 @@

    Table of Contents

  • Apache
  • SearXNG maintenance
  • Answer CAPTCHA from server’s IP
  • +
  • Favicons
  • Limiter
  • Administration API
  • Architecture
  • @@ -169,11 +171,8 @@

    This Page

    - - - \ No newline at end of file diff --git a/admin/settings/settings_engine.html b/admin/settings/settings_engine.html index 09cf34c60142..8a0380cf625b 100644 --- a/admin/settings/settings_engine.html +++ b/admin/settings/settings_engine.html @@ -5,13 +5,14 @@ - engine: — SearXNG Documentation (2024.10.4+bebb5f57) + engine: — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

    Navigation

  • previous |
  • - + @@ -294,6 +295,7 @@

    Table of Contents

  • Apache
  • SearXNG maintenance
  • Answer CAPTCHA from server’s IP
  • +
  • Favicons
  • Limiter
  • Administration API
  • Architecture
  • @@ -351,11 +353,8 @@

    This Page

    - - - \ No newline at end of file diff --git a/admin/settings/settings_general.html b/admin/settings/settings_general.html index 5cf45ead18a2..45480c056caa 100644 --- a/admin/settings/settings_general.html +++ b/admin/settings/settings_general.html @@ -5,13 +5,14 @@ - general: — SearXNG Documentation (2024.10.4+bebb5f57) + general: — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

    Navigation

  • previous |
  • - + @@ -115,6 +116,7 @@

    Table of Contents

  • Apache
  • SearXNG maintenance
  • Answer CAPTCHA from server’s IP
  • +
  • Favicons
  • Limiter
  • Administration API
  • Architecture
  • @@ -172,11 +174,8 @@

    This Page

    - - - \ No newline at end of file diff --git a/admin/settings/settings_outgoing.html b/admin/settings/settings_outgoing.html index 3b9131fe6d85..4455361e8135 100644 --- a/admin/settings/settings_outgoing.html +++ b/admin/settings/settings_outgoing.html @@ -5,13 +5,14 @@ - outgoing: — SearXNG Documentation (2024.10.4+bebb5f57) + outgoing: — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

    Navigation

  • previous |
  • - + @@ -180,6 +181,7 @@

    Table of Contents

  • Apache
  • SearXNG maintenance
  • Answer CAPTCHA from server’s IP
  • +
  • Favicons
  • Limiter
  • Administration API
  • Architecture
  • @@ -237,11 +239,8 @@

    This Page

    - - - \ No newline at end of file diff --git a/admin/settings/settings_redis.html b/admin/settings/settings_redis.html index f3e841a48502..21e679addd31 100644 --- a/admin/settings/settings_redis.html +++ b/admin/settings/settings_redis.html @@ -5,13 +5,14 @@ - redis: — SearXNG Documentation (2024.10.4+bebb5f57) + redis: — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

    Navigation

  • previous |
  • - + @@ -128,6 +129,7 @@

    Table of Contents

  • Apache
  • SearXNG maintenance
  • Answer CAPTCHA from server’s IP
  • +
  • Favicons
  • Limiter
  • Administration API
  • Architecture
  • @@ -185,11 +187,8 @@

    This Page

    - - - \ No newline at end of file diff --git a/admin/settings/settings_search.html b/admin/settings/settings_search.html index 7b6edb5078c8..eb1d12ae5809 100644 --- a/admin/settings/settings_search.html +++ b/admin/settings/settings_search.html @@ -5,13 +5,14 @@ - search: — SearXNG Documentation (2024.10.4+bebb5f57) + search: — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

    Navigation

  • previous |
  • - + @@ -49,6 +50,7 @@

    Navigation

    search:
       safe_search: 0
       autocomplete: ""
    +  favicon_resolver: ""
       default_lang: ""
       ban_time_on_fail: 5
       max_ban_time_on_fail: 120
    @@ -83,6 +85,10 @@ 

    Navigation

  • wikipedia

  • +
    favicon_resolver:

    To activate favicons in SearXNG’s result list select a default +favicon-resolver, leave blank to turn off the feature. Don’t activate the +favicons before reading the Favicons documentation.

    +
    default_lang:

    Default search language - leave blank to detect from browser information or use codes from git://searx/languages.py.

    @@ -179,6 +185,7 @@

    Table of Contents

  • Apache
  • SearXNG maintenance
  • Answer CAPTCHA from server’s IP
  • +
  • Favicons
  • Limiter
  • Administration API
  • Architecture
  • @@ -236,11 +243,8 @@

    This Page

    - - - \ No newline at end of file diff --git a/admin/settings/settings_server.html b/admin/settings/settings_server.html index fcc4cc836a4c..734e4ebdf45b 100644 --- a/admin/settings/settings_server.html +++ b/admin/settings/settings_server.html @@ -5,13 +5,14 @@ - server: — SearXNG Documentation (2024.10.4+bebb5f57) + server: — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

    Navigation

  • previous |
  • - + @@ -135,6 +136,7 @@

    Table of Contents

  • Apache
  • SearXNG maintenance
  • Answer CAPTCHA from server’s IP
  • +
  • Favicons
  • Limiter
  • Administration API
  • Architecture
  • @@ -192,11 +194,8 @@

    This Page

    - - - \ No newline at end of file diff --git a/admin/settings/settings_ui.html b/admin/settings/settings_ui.html index 0ffdcee512eb..82ced8cc5dc7 100644 --- a/admin/settings/settings_ui.html +++ b/admin/settings/settings_ui.html @@ -5,13 +5,14 @@ - ui: — SearXNG Documentation (2024.10.4+bebb5f57) + ui: — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

    Navigation

  • previous |
  • - + @@ -141,6 +142,7 @@

    Table of Contents

  • Apache
  • SearXNG maintenance
  • Answer CAPTCHA from server’s IP
  • +
  • Favicons
  • Limiter
  • Administration API
  • Architecture
  • @@ -198,11 +200,8 @@

    This Page

    - - - \ No newline at end of file diff --git a/admin/update-searxng.html b/admin/update-searxng.html index 04cd35a98c9e..c84b9f54e14d 100644 --- a/admin/update-searxng.html +++ b/admin/update-searxng.html @@ -5,13 +5,14 @@ - SearXNG maintenance — SearXNG Documentation (2024.10.4+bebb5f57) + SearXNG maintenance — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

    Navigation

  • previous |
  • - + @@ -211,6 +212,7 @@

    Table of Contents

  • Answer CAPTCHA from server’s IP
  • +
  • Favicons
  • Limiter
  • Administration API
  • Architecture
  • @@ -265,11 +267,8 @@

    This Page

    - - - \ No newline at end of file diff --git a/dev/contribution_guide.html b/dev/contribution_guide.html index 054c38e79eec..3469fd85a9d9 100644 --- a/dev/contribution_guide.html +++ b/dev/contribution_guide.html @@ -5,13 +5,14 @@ - How to contribute — SearXNG Documentation (2024.10.4+bebb5f57) + How to contribute — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

    Navigation

  • previous |
  • - + @@ -295,11 +296,8 @@

    This Page

    - - - \ No newline at end of file diff --git a/dev/engines/demo/demo_offline.html b/dev/engines/demo/demo_offline.html index 14054af21cda..a6fff05fd219 100644 --- a/dev/engines/demo/demo_offline.html +++ b/dev/engines/demo/demo_offline.html @@ -5,13 +5,14 @@ - Demo Offline Engine — SearXNG Documentation (2024.10.4+bebb5f57) + Demo Offline Engine — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

    Navigation

  • previous |
  • - + @@ -178,11 +179,8 @@

    This Page

    - - - \ No newline at end of file diff --git a/dev/engines/demo/demo_online.html b/dev/engines/demo/demo_online.html index 53d598ca80b4..70fb7c758efa 100644 --- a/dev/engines/demo/demo_online.html +++ b/dev/engines/demo/demo_online.html @@ -5,13 +5,14 @@ - Demo Online Engine — SearXNG Documentation (2024.10.4+bebb5f57) + Demo Online Engine — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

    Navigation

  • previous |
  • - + @@ -220,11 +221,8 @@

    This Page

    - - - \ No newline at end of file diff --git a/dev/engines/engine_overview.html b/dev/engines/engine_overview.html index d3b1aa362f82..b83ccc035887 100644 --- a/dev/engines/engine_overview.html +++ b/dev/engines/engine_overview.html @@ -5,13 +5,14 @@ - Engine Overview — SearXNG Documentation (2024.10.4+bebb5f57) + Engine Overview — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

    Navigation

  • previous |
  • - + @@ -453,7 +454,7 @@

    Specify Request<

    string, general result-text

    publishedDate

    -

    datetime.datetime, time of publish

    +

    datetime.datetime, time of publish

    @@ -468,45 +469,45 @@

    Specify Request<

    information

    template

    -

    str

    +

    str

    is set to images.html

    url

    -

    str

    +

    str

    url to the result site

    title

    -

    str

    +

    str

    title of the result

    content

    -

    str

    +

    str

    description of the image

    publishedDate

    -

    datetime

    +

    datetime

    time of publish

    img_src

    -

    str

    +

    str

    url to the result image

    thumbnail_src

    -

    str

    +

    str

    url to a small-preview image

    resolution

    -

    str

    +

    str

    the resolution of the image (e.g. 1920 x 1080 pixel)

    img_format

    -

    str

    +

    str

    the format of the image (e.g. png)

    filesize

    -

    str

    +

    str

    size of bytes in human readable notation (e.g. MB for 1024 * 1024 Bytes filesize).

    @@ -536,13 +537,13 @@

    Specify Request<

    (not implemented yet)

    publishedDate

    -

    datetime.datetime, time of publish

    +

    datetime.datetime, time of publish

    thumbnail

    string, url to a small-preview image

    length

    -

    datetime.timedelta, duration of result

    +

    datetime.timedelta, duration of result

    views

    string, view count in humanized number format

    @@ -573,7 +574,7 @@

    Specify Request<

    string, general result-text

    publishedDate

    -

    datetime.datetime, +

    datetime.datetime, time of publish (not implemented yet)

    seed

    @@ -620,7 +621,7 @@

    Specify Request<

    string, general result-text

    publishedDate

    -

    datetime.datetime, time of publish

    +

    datetime.datetime, time of publish

    latitude

    latitude of result (in decimal format)

    @@ -673,82 +674,82 @@

    Specify Request<

    information

    template

    -

    str

    +

    str

    is set to paper.html

    title

    -

    str

    +

    str

    title of the result

    content

    -

    str

    +

    str

    abstract

    comments

    -

    str

    +

    str

    free text display in italic below the content

    tags

    -

    List[str]

    +

    List[str]

    free tag list

    publishedDate

    -

    datetime

    +

    datetime

    last publication date

    type

    -

    str

    +

    str

    short description of medium type, e.g. book, pdf or html

    authors

    -

    List[str]

    +

    List[str]

    list of authors of the work (authors with a “s”)

    editor

    -

    str

    +

    str

    list of editors of a book

    publisher

    -

    str

    +

    str

    name of the publisher

    journal

    -

    str

    +

    str

    name of the journal or magazine the article was published in

    volume

    -

    str

    +

    str

    volume number

    pages

    -

    str

    +

    str

    page range where the article is

    number

    -

    str

    +

    str

    number of the report or the issue number for a journal article

    doi

    -

    str

    +

    str

    DOI number (like 10.1038/d41586-018-07848-2)

    issn

    -

    List[str]

    +

    List[str]

    ISSN number like 1476-4687

    isbn

    -

    List[str]

    +

    List[str]

    ISBN number like 9780201896831

    pdf_url

    -

    str

    +

    str

    URL to the full article, the PDF version

    html_url

    -

    str

    +

    str

    URL to full article, HTML version

    @@ -764,61 +765,61 @@

    Specify Request<

    information

    template

    -

    str

    +

    str

    is set to packages.html

    title

    -

    str

    +

    str

    title of the result

    content

    -

    str

    +

    str

    abstract

    package_name

    -

    str

    +

    str

    the name of the package

    version

    -

    str

    +

    str

    the current version of the package

    maintainer

    -

    str

    +

    str

    the maintainer or author of the project

    publishedDate

    -

    datetime

    +

    datetime

    date of latest update or release

    tags

    -

    List[str]

    +

    List[str]

    free tag list

    popularity

    -

    str

    +

    str

    the popularity of the package, e.g. rating or download count

    license_name

    -

    str

    +

    str

    the name of the license

    license_url

    -

    str

    +

    str

    the web location of a license copy

    homepage

    -

    str

    +

    str

    the url of the project’s homepage

    source_code_url

    -

    str

    +

    str

    the location of the project’s source code

    links

    -

    dict

    +

    dict

    additional links in the form of {'link_name': 'http://example.com'}

    @@ -939,11 +940,8 @@

    This Page

    - - - \ No newline at end of file diff --git a/dev/engines/enginelib.html b/dev/engines/enginelib.html index 2f7e1b5a2d95..4be77a1d0f9c 100644 --- a/dev/engines/enginelib.html +++ b/dev/engines/enginelib.html @@ -5,13 +5,14 @@ - Engine Library — SearXNG Documentation (2024.10.4+bebb5f57) + Engine Library — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

    Navigation

  • previous |
  • - + @@ -72,7 +73,7 @@

    Navigation

    -about: dict
    +about: dict

    Additional fields describing the engine.

    about:
        website: https://example.com
    @@ -87,32 +88,32 @@ 

    Navigation

    -categories: List[str]
    +categories: List[str]

    Specifies to which categories the engine should be added.

    -disabled: bool
    +disabled: bool

    To disable by default the engine, but not deleting it. It will allow the user to manually activate it in the settings.

    -display_error_messages: bool
    +display_error_messages: bool

    Display error messages on the web UI.

    -enable_http: bool
    +enable_http: bool

    Enable HTTP (by default only HTTPS is enabled).

    -engine: str
    +engine: str

    Name of the python file used to handle requests and responses to and from this search engine (file name from git://searx/engines without .py).

    @@ -120,25 +121,25 @@

    Navigation

    -engine_type: str
    +engine_type: str

    Type of the engine (Search processors)

    -fetch_traits: Callable
    +fetch_traits: Callable

    Function to to fetch engine’s traits from origin.

    -inactive: bool
    +inactive: bool

    Remove the engine from the settings (disabled & removed).

    -language: str
    +language: str

    For an engine, when there is language: ... in the YAML settings the engine does support only this one language:

    - name: google french
    @@ -150,26 +151,26 @@ 

    Navigation

    -language_support: bool
    +language_support: bool

    Engine supports languages (locales) search.

    -name: str
    +name: str

    Name that will be used across SearXNG to define this engine. In settings, on the result page ..

    -paging: bool
    +paging: bool

    Engine supports multiple pages.

    -proxies: dict
    +proxies: dict

    Set proxies for a specific engine (YAML):

    proxies :
       http:  socks5://proxy:port
    @@ -180,7 +181,7 @@ 

    Navigation

    -region: str
    +region: str

    For an engine, when there is region: ... in the YAML settings the engine does support only this one region:

    .. code:: yaml
    @@ -197,13 +198,13 @@ 

    Navigation

    -safesearch: bool
    +safesearch: bool

    Engine supports SafeSearch

    -send_accept_language_header: bool
    +send_accept_language_header: bool

    When this option is activated, the language (locale) that is selected by the user is used to build and send a Accept-Language header in the request to the origin search engine.

    @@ -211,25 +212,25 @@

    Navigation

    -shortcut: str
    +shortcut: str

    Code used to execute bang requests (!foo)

    -time_range_support: bool
    +time_range_support: bool

    Engine supports search time range.

    -timeout: float
    +timeout: float

    Specific timeout for search-engine.

    -tokens: List[str]
    +tokens: List[str]

    A list of secret tokens to make this engine private, more details see Private Engines (tokens).

    @@ -242,7 +243,7 @@

    Navigation

    -using_tor_proxy: bool
    +using_tor_proxy: bool

    Using tor proxy (true) or not (false) for this engine.

    @@ -269,7 +270,7 @@

    Navigation

    -classmethod fetch_traits(engine: Engine) 'EngineTraits' | None[source]
    +classmethod fetch_traits(engine: Engine) 'EngineTraits' | None[source]

    Call a function fetch_traits(engine_traits) from engines namespace to fetch and set properties from the origin engine in the object engine_traits. If function does not exists, None is returned.

    @@ -277,7 +278,7 @@

    Navigation

    -get_language(searxng_locale: str, default=None)[source]
    +get_language(searxng_locale: str, default=None)[source]

    Return engine’s language string that best fits to SearXNG’s locale.

    Parameters:
    @@ -295,7 +296,7 @@

    Navigation

    -get_region(searxng_locale: str, default=None)[source]
    +get_region(searxng_locale: str, default=None)[source]

    Return engine’s region string that best fits to SearXNG’s locale.

    Parameters:
    @@ -313,7 +314,7 @@

    Navigation

    -is_locale_supported(searxng_locale: str) bool[source]
    +is_locale_supported(searxng_locale: str) bool[source]

    A locale (SearXNG’s internal representation) is considered to be supported by the engine if the region or the language is supported by the engine.

    @@ -334,26 +335,26 @@

    Navigation

    -all_locale: str | None = None
    +all_locale: str | None = None

    To which locale value SearXNG’s all language is mapped (shown a “Default language”).

    -custom: Dict[str, Dict[str, Dict] | Iterable[str]]
    +custom: Dict[str, Dict[str, Dict] | Iterable[str]]

    A place to store engine’s custom traits, not related to the SearXNG core.

    -data_type: Literal['traits_v1'] = 'traits_v1'
    +data_type: Literal['traits_v1'] = 'traits_v1'

    Data type, default is ‘traits_v1’.

    -languages: Dict[str, str]
    +languages: Dict[str, str]

    Maps SearXNG’s internal representation of a language to the one of the engine.

    SearXNG’s internal representation can be parsed by babel and the value is send to the engine:

    @@ -370,7 +371,7 @@

    Navigation

    -regions: Dict[str, str]
    +regions: Dict[str, str]

    Maps SearXNG’s internal representation of a region to the one of the engine.

    SearXNG’s internal representation can be parsed by babel and the value is send to the engine:

    @@ -391,7 +392,7 @@

    Navigation

    class searx.enginelib.traits.EngineTraitsEncoder(*, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, sort_keys=False, indent=None, separators=None, default=None)[source]

    Encodes EngineTraits to a serializable object, see -json.JSONEncoder.

    +json.JSONEncoder.

    default(o)[source]
    @@ -418,7 +419,7 @@

    Navigation

    -set_traits(engine: Engine | types.ModuleType)[source]
    +set_traits(engine: Engine | types.ModuleType)[source]

    Set traits in a Engine namespace.

    Parameters:
    @@ -561,11 +562,8 @@

    This Page

    - - - \ No newline at end of file diff --git a/dev/engines/engines.html b/dev/engines/engines.html index 7f7c5ca98724..22c5307fd43c 100644 --- a/dev/engines/engines.html +++ b/dev/engines/engines.html @@ -5,13 +5,14 @@ - SearXNG’s engines loader — SearXNG Documentation (2024.10.4+bebb5f57) + SearXNG’s engines loader — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

    Navigation

  • previous |
  • - + @@ -61,11 +62,11 @@

    Navigation

    -searx.engines.load_engine(engine_data: dict) Engine | types.ModuleType | None[source]
    +searx.engines.load_engine(engine_data: dict) Engine | types.ModuleType | None[source]

    Load engine from engine_data.

    Parameters:
    -

    engine_data (dict) – Attributes from YAML settings:engines/<engine>

    +

    engine_data (dict) – Attributes from YAML settings:engines/<engine>

    Returns:

    initialized namespace of the <engine>.

    @@ -95,7 +96,7 @@

    Navigation

    -searx.engines.using_tor_proxy(engine: Engine | types.ModuleType)[source]
    +searx.engines.using_tor_proxy(engine: Engine | types.ModuleType)[source]

    Return True if the engine configuration declares to use Tor.

    @@ -208,11 +209,8 @@

    This Page

    - - - \ No newline at end of file diff --git a/dev/engines/index.html b/dev/engines/index.html index 924911ea4d0e..283f88c2240c 100644 --- a/dev/engines/index.html +++ b/dev/engines/index.html @@ -5,13 +5,14 @@ - Engine Implementations — SearXNG Documentation (2024.10.4+bebb5f57) + Engine Implementations — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

    Navigation

  • previous |
  • - + @@ -350,11 +351,8 @@

    This Page

    - - - \ No newline at end of file diff --git a/dev/engines/mediawiki.html b/dev/engines/mediawiki.html index 27048a445211..957c66ccf46b 100644 --- a/dev/engines/mediawiki.html +++ b/dev/engines/mediawiki.html @@ -5,13 +5,14 @@ - MediaWiki Engine — SearXNG Documentation (2024.10.4+bebb5f57) + MediaWiki Engine — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

    Navigation

  • previous |
  • - + @@ -81,14 +82,14 @@

    Implementations
    -searx.engines.mediawiki.api_path: str = 'w/api.php'
    +searx.engines.mediawiki.api_path: str = 'w/api.php'

    The path the PHP api is listening on.

    The default path should work fine usually.

    -searx.engines.mediawiki.base_url: str = 'https://{language}.wikipedia.org/'
    +searx.engines.mediawiki.base_url: str = 'https://{language}.wikipedia.org/'

    Base URL of the Wikimedia wiki.

    {language}:

    ISO 639-1 language code (en, de, fr ..) of the search language.

    @@ -98,7 +99,7 @@

    Implementations
    -searx.engines.mediawiki.search_type: str = 'nearmatch'
    +searx.engines.mediawiki.search_type: str = 'nearmatch'

    Which type of search to perform. One of the following values: nearmatch, text or title.

    See srwhat argument in list=search documentation.

    @@ -106,7 +107,7 @@

    Implementations
    -searx.engines.mediawiki.srenablerewrites: bool = True
    +searx.engines.mediawiki.srenablerewrites: bool = True

    Enable internal query rewriting (Type: boolean). Some search backends can rewrite the query into another which is thought to provide better results, for instance by correcting spelling errors.

    @@ -115,14 +116,14 @@

    Implementations
    -searx.engines.mediawiki.srprop: str = 'sectiontitle|snippet|timestamp|categorysnippet'
    +searx.engines.mediawiki.srprop: str = 'sectiontitle|snippet|timestamp|categorysnippet'

    Which properties to return.

    See srprop argument in list=search documentation.

    -searx.engines.mediawiki.srsort: str = 'relevance'
    +searx.engines.mediawiki.srsort: str = 'relevance'

    Set the sort order of returned results. One of the following values: create_timestamp_asc, create_timestamp_desc, incoming_links_asc, incoming_links_desc, just_match, last_edit_asc, last_edit_desc, @@ -277,11 +278,8 @@

    This Page

    - - - \ No newline at end of file diff --git a/dev/engines/offline/command-line-engines.html b/dev/engines/offline/command-line-engines.html index fc4c12efc69b..f063f0f770b1 100644 --- a/dev/engines/offline/command-line-engines.html +++ b/dev/engines/offline/command-line-engines.html @@ -5,13 +5,14 @@ - Command Line Engines — SearXNG Documentation (2024.10.4+bebb5f57) + Command Line Engines — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

    Navigation

  • previous |
  • - + @@ -242,11 +243,8 @@

    This Page

    - - - \ No newline at end of file diff --git a/dev/engines/offline/nosql-engines.html b/dev/engines/offline/nosql-engines.html index b6bd7495ed98..87b697baf4e6 100644 --- a/dev/engines/offline/nosql-engines.html +++ b/dev/engines/offline/nosql-engines.html @@ -5,13 +5,14 @@ - NoSQL databases — SearXNG Documentation (2024.10.4+bebb5f57) + NoSQL databases — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

    Navigation

  • previous |
  • - + @@ -293,11 +294,8 @@

    This Page

    - - - \ No newline at end of file diff --git a/dev/engines/offline/search-indexer-engines.html b/dev/engines/offline/search-indexer-engines.html index d710e2c411cb..5434961502b1 100644 --- a/dev/engines/offline/search-indexer-engines.html +++ b/dev/engines/offline/search-indexer-engines.html @@ -5,13 +5,14 @@ - Local Search APIs — SearXNG Documentation (2024.10.4+bebb5f57) + Local Search APIs — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

    Navigation

  • previous |
  • - + @@ -282,11 +283,8 @@

    This Page

    - - - \ No newline at end of file diff --git a/dev/engines/offline/sql-engines.html b/dev/engines/offline/sql-engines.html index d587566e9ca5..0d8b42181975 100644 --- a/dev/engines/offline/sql-engines.html +++ b/dev/engines/offline/sql-engines.html @@ -5,13 +5,14 @@ - SQL Engines — SearXNG Documentation (2024.10.4+bebb5f57) + SQL Engines — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

    Navigation

  • previous |
  • - + @@ -161,8 +162,8 @@

    Implementations
    searx.engines.sqlite.sqlite_cursor()[source]
    -

    Implements a Context Manager for a -sqlite3.Cursor.

    +

    Implements a Context Manager for a +sqlite3.Cursor.

    Open database in read only mode: if the database doesn’t exist. The default mode creates an empty file on the file system. See:

    @@ -268,11 +269,8 @@

    This Page

    - - - \ No newline at end of file diff --git a/dev/engines/online/duckduckgo.html b/dev/engines/online/duckduckgo.html index c05afa624fe1..b384c2829580 100644 --- a/dev/engines/online/duckduckgo.html +++ b/dev/engines/online/duckduckgo.html @@ -5,13 +5,14 @@ - DuckDuckGo Engines — SearXNG Documentation (2024.10.4+bebb5f57) + DuckDuckGo Engines — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

    Navigation

  • previous |
  • - + @@ -59,7 +60,7 @@

    Navigation

    -searx.engines.duckduckgo.cache_vqd(query, value)[source]
    +searx.engines.duckduckgo.cache_vqd(data: dict, value)[source]

    Caches a vqd value from a query.

    @@ -101,9 +102,10 @@

    Navigation

    Hint

    -

    DDG-lite does not offer a language -selection to the user, only a region can be selected by the user -(eng_region from the example above). DDG-lite stores the selected +

    DDG-lite and the no Javascript +page https://html.duckduckgo.com/html do not offer a language selection +to the user, only a region can be selected by the user (eng_region +from the example above). DDG-lite and no Javascript store the selected region in a cookie:

    params['cookies']['kl'] = eng_region  # 'ar-es'
     
    @@ -113,15 +115,8 @@

    Navigation

    -searx.engines.duckduckgo.get_vqd(query)[source]
    -

    Returns the vqd that fits to the query. If there is no vqd cached -(cache_vqd) the query is sent to DDG to get a vqd value from the -response.

    -
    -

    Hint

    -

    If an empty string is returned there are no results for the query and -therefore no vqd value.

    -
    +searx.engines.duckduckgo.get_vqd(data)[source] +

    Returns the vqd that fits to the query (data from HTTP POST).

    DDG’s bot detection is sensitive to the vqd value. For some search terms (such as extremely long search terms that are often sent by bots), no vqd value can be determined.

    @@ -146,6 +141,13 @@

    Navigation

    +
    +
    +searx.engines.duckduckgo.is_ddg_captcha(dom)[source]
    +

    In case of CAPTCHA ddg response its own not a Robot dialog and is not +redirected to a CAPTCHA page.

    +
    +
    searx.engines.duckduckgo.send_accept_language_header = True
    @@ -330,11 +332,8 @@

    This Page

    - - - \ No newline at end of file diff --git a/dev/engines/online/geizhals.html b/dev/engines/online/geizhals.html index 40d612d83f62..0ad8c603b190 100644 --- a/dev/engines/online/geizhals.html +++ b/dev/engines/online/geizhals.html @@ -5,13 +5,14 @@ - Geizhals — SearXNG Documentation (2024.10.4+bebb5f57) + Geizhals — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

    Navigation

  • previous |
  • - + @@ -197,11 +198,8 @@

    This Page

    - - - \ No newline at end of file diff --git a/dev/engines/online/gitea.html b/dev/engines/online/gitea.html index 2ca97600f98d..3f2472353b19 100644 --- a/dev/engines/online/gitea.html +++ b/dev/engines/online/gitea.html @@ -5,13 +5,14 @@ - Gitea — SearXNG Documentation (2024.10.4+bebb5f57) + Gitea — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

    Navigation

  • previous |
  • - + @@ -46,7 +47,7 @@

    Navigation

    Gitea

    -

    Engine to search in collaborative software platforms based on Gitea.

    +

    Engine to search in collaborative software platforms based on Gitea or Forgejo.

    Configuration

    The engine has the following mandatory setting:

    @@ -63,6 +64,11 @@

    Configuration engine: gitea base_url: https://gitea.com shortcut: gitea + +- name: forgejo.com + engine: gitea + base_url: https://code.forgejo.org + shortcut: forgejo

    If you would like to use additional instances, just configure new engines in the @@ -73,7 +79,7 @@

    Implementation
    -searx.engines.gitea.base_url: str = ''
    +searx.engines.gitea.base_url: str = ''

    URL of the Gitea instance.

    @@ -89,13 +95,13 @@

    Implementation
    -searx.engines.gitea.page_size: int = 10
    +searx.engines.gitea.page_size: int = 10

    Maximum number of results per page (default 10).

    -searx.engines.gitea.sort: str = 'updated'
    +searx.engines.gitea.sort: str = 'updated'

    Sort criteria, possible values:

    -searx.engines.gitlab.base_url: str = ''
    +searx.engines.gitlab.base_url: str = ''

    Base URL of the GitLab host.

    @@ -233,11 +234,8 @@

    This Page

    - - - \ No newline at end of file diff --git a/dev/engines/online/google.html b/dev/engines/online/google.html index e08d4e4d46ac..a633edd1408a 100644 --- a/dev/engines/online/google.html +++ b/dev/engines/online/google.html @@ -5,13 +5,14 @@ - Google Engines — SearXNG Documentation (2024.10.4+bebb5f57) + Google Engines — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

    Navigation

  • previous |
  • - + @@ -81,7 +82,7 @@

    Navigation

    -searx.engines.google.fetch_traits(engine_traits: EngineTraits, add_domains: bool = True)[source]
    +searx.engines.google.fetch_traits(engine_traits: EngineTraits, add_domains: bool = True)[source]

    Fetch languages from Google.

    @@ -94,14 +95,14 @@

    Navigation

    Parameters:
      -
    • param (dict) – Request parameters of the engine. At least +

    • param (dict) – Request parameters of the engine. At least a searxng_locale key should be in the dictionary.

    • eng_traits – Engine’s traits fetched from google preferences (searx.enginelib.traits.EngineTraits)

    Return type:
    -

    dict

    +

    dict

    Returns:

    Py-Dictionary with the key/value pairs:

    @@ -118,7 +119,7 @@

    Navigation

    code.

    params:

    Py-Dictionary with additional request arguments (can be passed to -urllib.parse.urlencode()).

    +urllib.parse.urlencode()).

    @@ -218,11 +219,8 @@

    This Page

    - - - \ No newline at end of file diff --git a/dev/engines/online/mullvad_leta.html b/dev/engines/online/mullvad_leta.html index 74275b03b088..1078c0abbcc8 100644 --- a/dev/engines/online/mullvad_leta.html +++ b/dev/engines/online/mullvad_leta.html @@ -5,13 +5,14 @@ - Mullvad-Leta — SearXNG Documentation (2024.10.4+bebb5f57) + Mullvad-Leta — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

    Navigation

  • previous |
  • - + @@ -65,7 +66,7 @@

    Navigation

    -searx.engines.mullvad_leta.assign_headers(headers: dict) dict[source]
    +searx.engines.mullvad_leta.assign_headers(headers: dict) dict[source]

    Assigns the headers to make a request to Mullvad Leta

    @@ -83,7 +84,7 @@

    Navigation

    -searx.engines.mullvad_leta.is_vpn_connected(dom: HtmlElement) bool[source]
    +searx.engines.mullvad_leta.is_vpn_connected(dom: HtmlElement) bool[source]

    Returns true if the VPN is connected, False otherwise

    @@ -235,11 +236,8 @@

    This Page

    - - - \ No newline at end of file diff --git a/dev/engines/online/mwmbl.html b/dev/engines/online/mwmbl.html index d53780ea19ee..3f5e06777953 100644 --- a/dev/engines/online/mwmbl.html +++ b/dev/engines/online/mwmbl.html @@ -5,13 +5,14 @@ - Mwmbl Engine — SearXNG Documentation (2024.10.4+bebb5f57) + Mwmbl Engine — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

    Navigation

  • previous |
  • - + @@ -214,11 +215,8 @@

    This Page

    - - - \ No newline at end of file diff --git a/dev/engines/online/odysee.html b/dev/engines/online/odysee.html index 6c5a5bcffeaf..d988c15e2676 100644 --- a/dev/engines/online/odysee.html +++ b/dev/engines/online/odysee.html @@ -5,13 +5,14 @@ - Odysee — SearXNG Documentation (2024.10.4+bebb5f57) + Odysee — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

    Navigation

  • previous |
  • - + @@ -194,11 +195,8 @@

    This Page

    - - - \ No newline at end of file diff --git a/dev/engines/online/peertube.html b/dev/engines/online/peertube.html index 5b4b626120ec..21eb50eb0f2e 100644 --- a/dev/engines/online/peertube.html +++ b/dev/engines/online/peertube.html @@ -5,13 +5,14 @@ - Peertube Engines — SearXNG Documentation (2024.10.4+bebb5f57) + Peertube Engines — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

    Navigation

  • previous |
  • - + @@ -237,11 +238,8 @@

    This Page

    - - - \ No newline at end of file diff --git a/dev/engines/online/piped.html b/dev/engines/online/piped.html index bf111a8a7b24..9c1de52a9ea6 100644 --- a/dev/engines/online/piped.html +++ b/dev/engines/online/piped.html @@ -5,13 +5,14 @@ - Piped — SearXNG Documentation (2024.10.4+bebb5f57) + Piped — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

    Navigation

  • previous |
  • - + @@ -96,7 +97,7 @@

    Implementations
    -searx.engines.piped.backend_url: list | str = 'https://pipedapi.kavin.rocks'
    +searx.engines.piped.backend_url: list | str = 'https://pipedapi.kavin.rocks'

    Piped-Backend: The core component behind Piped. The value is an URL or a list of URLs. In the latter case instance will be selected randomly. For a complete list of official instances see Piped-Instances (JSON)

    @@ -104,7 +105,7 @@

    Implementations
    -searx.engines.piped.frontend_url: str = 'https://piped.video'
    +searx.engines.piped.frontend_url: str = 'https://piped.video'

    Piped-Frontend: URL to use as link and for embeds.

    @@ -255,11 +256,8 @@

    This Page

    - - - \ No newline at end of file diff --git a/dev/engines/online/presearch.html b/dev/engines/online/presearch.html index 13e95a860603..c40b09b81382 100644 --- a/dev/engines/online/presearch.html +++ b/dev/engines/online/presearch.html @@ -5,13 +5,14 @@ - Presearch Engine — SearXNG Documentation (2024.10.4+bebb5f57) + Presearch Engine — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

    Navigation

  • previous |
  • - + @@ -255,11 +256,8 @@

    This Page

    - - - \ No newline at end of file diff --git a/dev/engines/online/qwant.html b/dev/engines/online/qwant.html index c9b34fad3487..5a494409c2f4 100644 --- a/dev/engines/online/qwant.html +++ b/dev/engines/online/qwant.html @@ -5,13 +5,14 @@ - Qwant — SearXNG Documentation (2024.10.4+bebb5f57) + Qwant — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

    Navigation

  • previous |
  • - + @@ -270,11 +271,8 @@

    This Page

    - - - \ No newline at end of file diff --git a/dev/engines/online/radio_browser.html b/dev/engines/online/radio_browser.html index 0df665f64978..cabd14d508b5 100644 --- a/dev/engines/online/radio_browser.html +++ b/dev/engines/online/radio_browser.html @@ -5,13 +5,14 @@ - RadioBrowser — SearXNG Documentation (2024.10.4+bebb5f57) + RadioBrowser — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

    Navigation

  • previous |
  • - + @@ -220,11 +221,8 @@

    This Page

    - - - \ No newline at end of file diff --git a/dev/engines/online/recoll.html b/dev/engines/online/recoll.html index 26e56166d490..86c8b9007049 100644 --- a/dev/engines/online/recoll.html +++ b/dev/engines/online/recoll.html @@ -5,13 +5,14 @@ - Recoll Engine — SearXNG Documentation (2024.10.4+bebb5f57) + Recoll Engine — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

    Navigation

  • previous |
  • - + @@ -237,11 +238,8 @@

    This Page

    - - - \ No newline at end of file diff --git a/dev/engines/online/seekr.html b/dev/engines/online/seekr.html index a1eff91d6514..b6e167e91a5f 100644 --- a/dev/engines/online/seekr.html +++ b/dev/engines/online/seekr.html @@ -5,13 +5,14 @@ - Seekr Engines — SearXNG Documentation (2024.10.4+bebb5f57) + Seekr Engines — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

    Navigation

  • previous |
  • - + @@ -96,7 +97,7 @@

    Implementations
    -searx.engines.seekr.seekr_category: str = 'unset'
    +searx.engines.seekr.seekr_category: str = 'unset'

    Search category, any of news, videos or images.

    @@ -241,11 +242,8 @@

    This Page

    - - - \ No newline at end of file diff --git a/dev/engines/online/startpage.html b/dev/engines/online/startpage.html index e1c058806a8a..310e73a83c00 100644 --- a/dev/engines/online/startpage.html +++ b/dev/engines/online/startpage.html @@ -5,13 +5,14 @@ - Startpage Engines — SearXNG Documentation (2024.10.4+bebb5f57) + Startpage Engines — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

    Navigation

  • previous |
  • - + @@ -334,11 +335,8 @@

    This Page

    - - - \ No newline at end of file diff --git a/dev/engines/online/tagesschau.html b/dev/engines/online/tagesschau.html index f820f5ad2f02..892074a405a9 100644 --- a/dev/engines/online/tagesschau.html +++ b/dev/engines/online/tagesschau.html @@ -5,13 +5,14 @@ - Tagesschau API — SearXNG Documentation (2024.10.4+bebb5f57) + Tagesschau API — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

    Navigation

  • previous |
  • - + @@ -205,11 +206,8 @@

    This Page

    - - - \ No newline at end of file diff --git a/dev/engines/online/torznab.html b/dev/engines/online/torznab.html index bae993062826..f2bc06d4c5a1 100644 --- a/dev/engines/online/torznab.html +++ b/dev/engines/online/torznab.html @@ -5,13 +5,14 @@ - Torznab WebAPI — SearXNG Documentation (2024.10.4+bebb5f57) + Torznab WebAPI — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

    Navigation

  • previous |
  • - + @@ -84,19 +85,19 @@

    Implementations
    -searx.engines.torznab.build_result(item: Element) Dict[str, Any][source]
    +searx.engines.torznab.build_result(item: Element) Dict[str, Any][source]

    Build a result from a XML item.

    -searx.engines.torznab.get_attribute(item: Element, property_name: str) str | None[source]
    +searx.engines.torznab.get_attribute(item: Element, property_name: str) str | None[source]

    Get attribute from item.

    -searx.engines.torznab.get_torznab_attribute(item: Element, attribute_name: str) str | None[source]
    +searx.engines.torznab.get_torznab_attribute(item: Element, attribute_name: str) str | None[source]

    Get torznab special attribute from item.

    @@ -108,13 +109,13 @@

    Implementations
    -searx.engines.torznab.request(query: str, params: Dict[str, Any]) Dict[str, Any][source]
    +searx.engines.torznab.request(query: str, params: Dict[str, Any]) Dict[str, Any][source]

    Build the request params.

    -searx.engines.torznab.response(resp: httpx.Response) List[Dict[str, Any]][source]
    +searx.engines.torznab.response(resp: httpx.Response) List[Dict[str, Any]][source]

    Parse the XML response and return a list of results.

    @@ -259,11 +260,8 @@

    This Page

    - - - \ No newline at end of file diff --git a/dev/engines/online/void.html b/dev/engines/online/void.html index 09e554db28d1..daf0e065ad8b 100644 --- a/dev/engines/online/void.html +++ b/dev/engines/online/void.html @@ -5,13 +5,14 @@ - Void Linux binary packages — SearXNG Documentation (2024.10.4+bebb5f57) + Void Linux binary packages — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

    Navigation

  • previous |
  • - + @@ -212,11 +213,8 @@

    This Page

    - - - \ No newline at end of file diff --git a/dev/engines/online/wallhaven.html b/dev/engines/online/wallhaven.html index a2ad6e164158..f275b7d4bfdb 100644 --- a/dev/engines/online/wallhaven.html +++ b/dev/engines/online/wallhaven.html @@ -5,13 +5,14 @@ - Wallhaven — SearXNG Documentation (2024.10.4+bebb5f57) + Wallhaven — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

    Navigation

  • previous |
  • - + @@ -210,11 +211,8 @@

    This Page

    - - - \ No newline at end of file diff --git a/dev/engines/online/wikipedia.html b/dev/engines/online/wikipedia.html index 3ac48da4228c..92a0179da5a6 100644 --- a/dev/engines/online/wikipedia.html +++ b/dev/engines/online/wikipedia.html @@ -5,13 +5,14 @@ - Wikimedia — SearXNG Documentation (2024.10.4+bebb5f57) + Wikimedia — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

    Navigation

  • previous |
  • - + @@ -362,11 +363,8 @@

    This Page

    - - - \ No newline at end of file diff --git a/dev/engines/online/yacy.html b/dev/engines/online/yacy.html index 297b0cc14f78..d054ede25063 100644 --- a/dev/engines/online/yacy.html +++ b/dev/engines/online/yacy.html @@ -5,13 +5,14 @@ - Yacy — SearXNG Documentation (2024.10.4+bebb5f57) + Yacy — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

    Navigation

  • previous |
  • - + @@ -97,7 +98,7 @@

    Implementations
    -searx.engines.yacy.base_url: list | str = 'https://yacy.searchlab.eu'
    +searx.engines.yacy.base_url: list | str = 'https://yacy.searchlab.eu'

    The value is an URL or a list of URLs. In the latter case instance will be selected randomly.

    @@ -275,11 +276,8 @@

    This Page

    - - - \ No newline at end of file diff --git a/dev/engines/online/yahoo.html b/dev/engines/online/yahoo.html index ddb9127d0132..e1428935da5f 100644 --- a/dev/engines/online/yahoo.html +++ b/dev/engines/online/yahoo.html @@ -5,13 +5,14 @@ - Yahoo Engine — SearXNG Documentation (2024.10.4+bebb5f57) + Yahoo Engine — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

    Navigation

  • previous |
  • - + @@ -220,11 +221,8 @@

    This Page

    - - - \ No newline at end of file diff --git a/dev/engines/online/zlibrary.html b/dev/engines/online/zlibrary.html index f2f4f39348f7..bbe6461993fc 100644 --- a/dev/engines/online/zlibrary.html +++ b/dev/engines/online/zlibrary.html @@ -5,13 +5,14 @@ - Z-Library — SearXNG Documentation (2024.10.4+bebb5f57) + Z-Library — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

    Navigation

  • previous |
  • - + @@ -82,32 +83,32 @@

    Implementations
    -searx.engines.zlibrary.fetch_traits(engine_traits: EngineTraits) None[source]
    +searx.engines.zlibrary.fetch_traits(engine_traits: EngineTraits) None[source]

    Fetch languages and other search arguments from zlibrary’s search form.

    -searx.engines.zlibrary.init(engine_settings=None) None[source]
    +searx.engines.zlibrary.init(engine_settings=None) None[source]

    Check of engine’s settings.

    -searx.engines.zlibrary.zlib_ext: str = ''
    +searx.engines.zlibrary.zlib_ext: str = ''

    Filter z-library’s results by a file ending. Common filters for example are PDF and EPUB.

    -searx.engines.zlibrary.zlib_year_from: str = ''
    +searx.engines.zlibrary.zlib_year_from: str = ''

    Filter z-library’s results by year from. E.g ‘2010’.

    -searx.engines.zlibrary.zlib_year_to: str = ''
    +searx.engines.zlibrary.zlib_year_to: str = ''

    Filter z-library’s results by year to. E.g. ‘2010’.

    @@ -252,11 +253,8 @@

    This Page

    - - - \ No newline at end of file diff --git a/dev/engines/online_url_search/tineye.html b/dev/engines/online_url_search/tineye.html index a987ce55fb66..fb1ce06b37ef 100644 --- a/dev/engines/online_url_search/tineye.html +++ b/dev/engines/online_url_search/tineye.html @@ -5,13 +5,14 @@ - Tineye — SearXNG Documentation (2024.10.4+bebb5f57) + Tineye — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

    Navigation

  • previous |
  • - + @@ -60,7 +61,7 @@

    Navigation

    searx.engines.tineye.parse_tineye_match(match_json)[source]
    -

    Takes parsed JSON from the API server and turns it into a dict +

    Takes parsed JSON from the API server and turns it into a dict object.

    Attributes (class Match)

    @@ -453,11 +455,8 @@

    This Page

    - - - \ No newline at end of file diff --git a/dev/makefile.html b/dev/makefile.html index ba23b4f18957..abcf96285cd1 100644 --- a/dev/makefile.html +++ b/dev/makefile.html @@ -5,13 +5,15 @@ - Makefile & ./manage — SearXNG Documentation (2024.10.4+bebb5f57) + Makefile & ./manage — SearXNG Documentation (2024.10.31+5f50d2d5) + - + + @@ -33,7 +35,7 @@

    Navigation

  • previous |
  • - + @@ -582,11 +584,8 @@

    This Page

    - - - \ No newline at end of file diff --git a/dev/plugins.html b/dev/plugins.html index 686399a3ce4b..9e72be1f2e09 100644 --- a/dev/plugins.html +++ b/dev/plugins.html @@ -5,13 +5,14 @@ - Plugins — SearXNG Documentation (2024.10.4+bebb5f57) + Plugins — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

    Navigation

  • previous |
  • - + @@ -92,7 +93,7 @@

    Plugin entry points +pre_search(request, search) bool

    Runs BEFORE the search request.

    search.result_container can be changed.

    Return a boolean:

    @@ -111,14 +112,14 @@

    Plugin entry points

    False to stop the search

    Return type:
    -

    bool

    +

    bool

    -post_search(request, search) None
    +post_search(request, search) None

    Runs AFTER the search request.

    Parameters:
    @@ -132,7 +133,7 @@

    Plugin entry points
    -on_result(request, search, result) bool
    +on_result(request, search, result) bool

    Runs for each result of each engine.

    result can be changed.

    If result[“url”] is defined, then result[“parsed_url”] = urlparse(result[‘url’])

    @@ -150,14 +151,14 @@

    Plugin entry points

    Returns:

    True to keep the result

    Return type:
    -

    bool

    +

    bool

    @@ -255,11 +256,8 @@

    This Page

    - - - \ No newline at end of file diff --git a/dev/quickstart.html b/dev/quickstart.html index 3cae5ba5be81..08c943802ee6 100644 --- a/dev/quickstart.html +++ b/dev/quickstart.html @@ -5,13 +5,14 @@ - Development Quickstart — SearXNG Documentation (2024.10.4+bebb5f57) + Development Quickstart — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

    Navigation

  • previous |
  • - + @@ -191,11 +192,8 @@

    This Page

    - - - \ No newline at end of file diff --git a/dev/reST.html b/dev/reST.html index 81235a8760ac..e979bb99bbb5 100644 --- a/dev/reST.html +++ b/dev/reST.html @@ -5,13 +5,14 @@ - reST primer — SearXNG Documentation (2024.10.4+bebb5f57) + reST primer — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

    Navigation

  • previous |
  • - + @@ -366,11 +367,11 @@

    Anchors & Links< -

    rfc

    +

    rfc

    RFC 822

    :rfc:`822`

    -

    pep

    +

    pep

    PEP 8

    :pep:`8`

    @@ -407,19 +408,19 @@

    Anchors & Links<

    intersphinx

    external anchor

    -

    Boolean operations

    +

    Boolean operations

    :ref:`python:and`

    external doc anchor

    -

    Template Designer Documentation

    +

    Template Designer Documentation

    :doc:`jinja:templates`

    python code object

    -

    datetime.datetime

    +

    datetime.datetime

    :py:obj:`datetime.datetime`

    flask code object

    -

    flask.Flask

    +

    flask.Flask

    :py:obj:`flask.Flask`

    @@ -447,7 +448,7 @@

    Anchors & Links<

    Literal blocks

    The simplest form of literal-blocks is a indented block introduced by two colons (::). For highlighting use highlight or code-block directive. To include literals from external files use -literalinclude or kernel-include +literalinclude or kernel-include directive (latter one expands environment variables in the path name).

    ::

    @@ -487,9 +488,9 @@

    Literal blocksSyntax highlighting

    is handled by pygments.

    -

    The code-block directive is a variant of the code directive +

    The code-block directive is a variant of the code directive with additional options. To learn more about code literals visit -Showing code examples.

    +Showing code examples.

    The URL ``/stats`` handle is shown in :ref:`stats-handle`
     
     .. code-block:: Python
    @@ -548,7 +549,7 @@ 

    Unicode substitution

    A custom interpreted text role (ref) is an inline piece of @@ -573,19 +574,19 @@

    Unicode substitution -

    guilabel

    +

    guilabel

    Cancel

    :guilabel:`&Cancel`

    -

    kbd

    +

    kbd

    C-x C-f

    :kbd:`C-x C-f`

    -

    menuselection

    +

    menuselection

    Open ‣ File

    :menuselection:`Open --> File`

    -

    download

    +

    download

    this file

    :download:`this file <reST.rst>`

    @@ -593,11 +594,11 @@

    Unicode substitution

    a^2 + b^2 = c^2

    :math:`a^2 + b^2 = c^2`

    -

    ref

    +

    ref

    Simple SVG image.

    :ref:`svg image example`

    -

    command

    +

    command

    ls -la

    :command:`ls -la`

    @@ -801,7 +802,7 @@

    Bullet list

    Horizontal list

    -

    The .. hlist:: transforms a bullet list into a more compact +

    The .. hlist:: transforms a bullet list into a more compact list.

    .. hlist::
     
    @@ -1565,8 +1566,8 @@ 

    Tabbed views

    The input language for mathematics is LaTeX markup using the CTAN: amsmath package.

    -

    To embed LaTeX markup in reST documents, use role :math: for -inline and directive .. math:: for block markup.

    +

    To embed LaTeX markup in reST documents, use role :math: for +inline and directive .. math:: for block markup.

    In :math:numref:`schroedinger general` the time-dependent Schrödinger equation
     is shown.
     
    @@ -1742,11 +1743,8 @@ 

    This Page

    - - - \ No newline at end of file diff --git a/dev/rtm_asdf.html b/dev/rtm_asdf.html index bd6ce81868a8..2794d8b86f06 100644 --- a/dev/rtm_asdf.html +++ b/dev/rtm_asdf.html @@ -5,13 +5,14 @@ - Runtime Management — SearXNG Documentation (2024.10.4+bebb5f57) + Runtime Management — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

    Navigation

  • previous |
  • - + @@ -224,11 +225,8 @@

    This Page

    - - - \ No newline at end of file diff --git a/dev/search_api.html b/dev/search_api.html index c3fa77fa7e9b..e7eeeda720e0 100644 --- a/dev/search_api.html +++ b/dev/search_api.html @@ -5,13 +5,14 @@ - Search API — SearXNG Documentation (2024.10.4+bebb5f57) + Search API — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

    Navigation

  • previous |
  • - + @@ -220,11 +221,8 @@

    This Page

    - - - \ No newline at end of file diff --git a/dev/searxng_extra/index.html b/dev/searxng_extra/index.html index 8cdd54679f95..f4ed905f8087 100644 --- a/dev/searxng_extra/index.html +++ b/dev/searxng_extra/index.html @@ -5,13 +5,14 @@ - Tooling box searxng_extra — SearXNG Documentation (2024.10.4+bebb5f57) + Tooling box searxng_extra — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

    Navigation

  • previous |
  • - + @@ -151,11 +152,8 @@

    This Page

    - - - \ No newline at end of file diff --git a/dev/searxng_extra/standalone_searx.py.html b/dev/searxng_extra/standalone_searx.py.html index 56eb1015c942..15cf4d42e7d5 100644 --- a/dev/searxng_extra/standalone_searx.py.html +++ b/dev/searxng_extra/standalone_searx.py.html @@ -5,13 +5,14 @@ - searxng_extra/standalone_searx.py — SearXNG Documentation (2024.10.4+bebb5f57) + searxng_extra/standalone_searx.py — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

    Navigation

  • previous |
  • - + @@ -135,11 +136,8 @@

    This Page

    - - - \ No newline at end of file diff --git a/dev/searxng_extra/update.html b/dev/searxng_extra/update.html index b308d9402439..93cb5a8b950b 100644 --- a/dev/searxng_extra/update.html +++ b/dev/searxng_extra/update.html @@ -5,13 +5,14 @@ - searxng_extra/update/ — SearXNG Documentation (2024.10.4+bebb5f57) + searxng_extra/update/ — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

    Navigation

  • previous |
  • - + @@ -189,11 +190,8 @@

    This Page

    - - - \ No newline at end of file diff --git a/dev/translation.html b/dev/translation.html index 735eb6f16434..36d2172cb739 100644 --- a/dev/translation.html +++ b/dev/translation.html @@ -5,13 +5,14 @@ - Translation — SearXNG Documentation (2024.10.4+bebb5f57) + Translation — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

    Navigation

  • previous |
  • - + @@ -188,11 +189,8 @@

    This Page

    - - - \ No newline at end of file diff --git a/genindex.html b/genindex.html index 5034e0e0eeb9..3931ac595c07 100644 --- a/genindex.html +++ b/genindex.html @@ -5,14 +5,14 @@ - Index — SearXNG Documentation (2024.10.4+bebb5f57) + Index — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + - + @@ -25,7 +25,7 @@

    Navigation

  • modules |
  • - + @@ -61,6 +61,7 @@

    Index

    | U | V | W + | Y | Z @@ -82,6 +83,8 @@

    A

  • ALIAS_SYMBOLS (in module searx.plugins.unit_converter)
  • all_locale (searx.enginelib.traits.EngineTraits attribute) +
  • +
  • allesedv() (in module searx.favicons.resolvers)
  • alpine_arch (in module searx.engines.alpinelinux)
  • @@ -153,6 +156,8 @@

    B

  • (in module searx.engines.yacy)
  • +
  • BLOB_MAX_BYTES (searx.favicons.cache.FaviconCacheConfig attribute) +
    • block_ip() (in module searx.botdetection.ip_lists) @@ -190,11 +195,15 @@

      B

      C

      + -
      +
    • DB (searx.sqlitedb.SQLiteAppl property) +
    • +
    • DB_SCHEMA (searx.favicons.cache.FaviconCacheSQLite attribute) + +
    • +
    • db_type (searx.favicons.cache.FaviconCacheConfig attribute) +
    • +
    • db_url (searx.favicons.cache.FaviconCacheConfig attribute) +
    • ddg_category (in module searx.engines.duckduckgo_extra)
    • +
    • DDL_BLOB_MAP (searx.favicons.cache.FaviconCacheSQLite attribute) +
    • +
    • DDL_BLOBS (searx.favicons.cache.FaviconCacheSQLite attribute) +
    • +
    • DDL_PROPERTIES (searx.sqlitedb.SQLiteProperties attribute) +
    • +
      @@ -325,6 +358,38 @@

      F

      • family_filter_map (in module searx.engines.dailymotion) +
      • +
      • favicon() (searx.favicons.proxy.FaviconProxyConfig method) +
      • +
      • favicon_data_url() (searx.favicons.proxy.FaviconProxyConfig method) +
      • +
      • favicon_proxy() (in module searx.favicons) + +
      • +
      • favicon_url() (in module searx.favicons) + +
      • +
      • FaviconCache (class in searx.favicons.cache) +
      • +
      • FaviconCacheConfig (class in searx.favicons.cache) +
      • +
      • FaviconCacheMEM (class in searx.favicons.cache) +
      • +
      • FaviconCacheNull (class in searx.favicons.cache) +
      • +
      • FaviconCacheSQLite (class in searx.favicons.cache) +
      • +
      • FaviconCacheStats (class in searx.favicons.cache) +
      • +
      • FaviconConfig (class in searx.favicons.config) +
      • +
      • FaviconProxyConfig (class in searx.favicons.proxy)
      • fetch_traits (searx.enginelib.Engine attribute)
      • @@ -375,6 +440,8 @@

        F

      • FORMAT_NOT_SUPPORTED (in module searx.engines.tineye)
      • from_data() (searx.enginelib.traits.EngineTraitsMap class method) +
      • +
      • from_toml_file() (searx.favicons.config.FaviconConfig class method)
      • frontend_url (in module searx.engines.piped)
      • @@ -431,6 +498,8 @@

        G

      • get_real_ip() (in module searx.botdetection)
      • get_region() (searx.enginelib.traits.EngineTraits method) +
      • +
      • get_resolver() (searx.favicons.proxy.FaviconProxyConfig method)
      • get_sc_code() (in module searx.engines.startpage)
      • @@ -455,6 +524,8 @@

        G

      • get_yaml_cfg() (in module searx.settings_loader)
      • Goggles (in module searx.engines.brave) +
      • +
      • google() (in module searx.favicons.resolvers)
      • google_complete() (in module searx.autocomplete)
      • @@ -465,6 +536,8 @@

        H

        @@ -527,6 +606,8 @@

        I

      • int_or_zero() (in module searx.utils)
      • is_broken_text() (in module searx.engines.duckduckgo_definitions) +
      • +
      • is_ddg_captcha() (in module searx.engines.duckduckgo)
      • is_installed() (in module searx.limiter)
      • @@ -570,7 +651,7 @@

        L

      • lemmy_type (in module searx.engines.lemmy)
      • -
      • LIMITER_CFG (in module searx.limiter) +
      • LIMIT_TOTAL_BYTES (searx.favicons.cache.FaviconCacheConfig attribute)
      • LIMITER_CFG_SCHEMA (in module searx.limiter)
      • @@ -612,9 +693,29 @@

        L

        M

        -
      • html (searx.infopage.InfoPage property) -
      • @@ -1145,6 +1274,8 @@

        S

      • search_endpoint (in module searx.engines.discourse) +
      • +
      • search_favicon() (in module searx.favicons.proxy)
      • search_form_xpath (in module searx.engines.startpage)
      • @@ -1540,8 +1671,6 @@

        S

      • module
      • - - + - +
        +
      • next_maintenance_time (searx.favicons.cache.FaviconCacheSQLite property) +
      • +
      • resolver_map (searx.favicons.proxy.FaviconProxyConfig attribute) +
        • searx.engines.mwmbl @@ -1591,6 +1720,8 @@

          S

        • module
        +
      • set() (searx.botdetection.config.Config method) + +
      • set_traits() (searx.enginelib.traits.EngineTraits method)
      • +

        Y

        + + +
        +

        Z

        + + + + + + + + + + + + + + + + + +
        @@ -104,6 +105,7 @@

        Welcome to SearXNGApache
      • SearXNG maintenance
      • Answer CAPTCHA from server’s IP
      • +
      • Favicons
      • Limiter
      • Administration API
      • Architecture
      • @@ -135,6 +137,7 @@

        Welcome to SearXNGCustom message extractor (i18n)
      • Bot Detection
      • SearXNG Exceptions
      • +
      • Favicons (source)
      • Online /info
      • Locales
      • Hostnames plugin
      • @@ -145,6 +148,7 @@

        Welcome to SearXNGSearch
      • Search processors
      • Settings Loader
      • +
      • SQLite DB
      • Utility functions for the engines
      • @@ -216,11 +220,8 @@

        This Page

        - - - \ No newline at end of file diff --git a/objects.inv b/objects.inv index 8e72acffbe31e7ab07df8f6ef97416416420b96e..3a2d3951a84739a2b13c66f613592aff7fc12926 100644 GIT binary patch delta 11952 zcmV;hE>F?;R>)nDLklx8D>Y^{Fk~`hHIYp{e~;rhmZ0DLD?D(aw`$RHZa4a2Q7;W= zgfr5ZxRvd!tlAerwivcLWJ#q!NiD&=W7bBQO#sh23B(lW%aMYS|Bl0T7L-TF#B;j)ms@1v`mL)h4Cwdj zj`a;Sm>a*4)ypE#{63AHLv?&Fvy<#nj@Z=2=XU)(Jpf42|- z{s@9`Wg*J^I66hHqRDad#q-L4Sp4QDa)kDM^?3XA-4XEfxAkW0FoJ^TZ@z7wS2wGt zZyTp*r*D7%^mym+e z;CvUS`&TC|lR##;N9crzd+x7(f0@1_SJitBoIkH{GXDGW_sf#84ZL6dy7afJhov*@ z_UYf3k4_^>iSAgP*xB@g;~IC{W5*rgTevjkBt}B*bo-;?l z7gX+#ewhbR=_vi8B)}ico1^&2gBy1=TtQ`7nmhVdlHlYhepzr}Rh$D>o_;v{d~Yuc?j>?Y9 z%B3oxA5`K>ABy++LTDYc3mb3>Vv*bm>d4kyL7NA0?BfAN5F;n=+=TDb?A(|wbiu5O zGCf@(ve2b=(EzI0?bgs`f&0rj@xQF@m+o^B!g7g`*cTT-Q_ENMwtLVfWdxs8A6gPyC6+|(q4UN1=BvM!CsJ(C{Y-l8 z^X}(m+$0GKf@0&Hf8HdJg-wajkPQM@k15%*Nl%QsAy}Z%$5pTe>)1Nww%g}^(}WQL zL`hV-0^`Sa-v$>n6$&9YFd3TsE_l~omsCJN#t=UuvI`32S9#o@^)*d{8TN)o+$s3* zGuH3AAXaR`&_RTnW8m>o@}m>)IXTEZMst*joaQXmYG9G!e@-28KuplPv%~|ItE3|= zw;usz)-z0(#?D=~GMv*)rPC}Y+A+Q0Ro|izrOt{7rMW63jOH#Q1kg!VWIJQBWjj-< z<$<|pMTBfX^SktLi2DbcU8W93{`HFt#qs`#_OFKAGy?~I?`EK7vu6fb)f#4udg^m5 zviyg+*MenCe+2_X;2)nYd7TY$639MQn&Z*7zq^37Pfw>H3H5LI@n(W3AiH6OK@^`)X~&XGks6Yy;RR&Lm*9kd_%Bgh;uJSl_?tX8vawyX!J<>@v*M~Pb|Cag zmNb<*S=2C4)UXXu?H+)U*u?hz6YJMc2EKh_8B2>^%s8sCD`Sm~ihWw;g|Ry#1WgGl z`Hy{*0L@!W*^WL80QYho+L5>2yO#PzF-6mBd6r3l!94r?6lFep242bL} zyGA+@@SGMVn~}$$Sihs7JknC*B;F_viZa^Qe?64mK?xP}q9jBgD7PGzFxxh6ZKLa4 z8U`E(6#aP&Vq?kXa)wA9q7oT%p9tB2ESo%urvq6u?-rDd*uq7BqKir9#0sln(aKN4bE~YWbq97xwC6CHi2Ot0y9T?>xte;7%#-K2gZ$vA zO0`^y8d5TbE+7qvrn98Qefv{XkQr)-e`k~7LlaVP@LoP|@bZ<=MbZ-a|SG1WI>qoJ@J^c@cb+=F{M^P{1-j>*q_BETuxG%+~@T$E{Oe_pEM za;DOS!YFu;UL!3}NZ680v%zoe`d-18Us#Ekaoor={^D6OtxmZtN9d z5i`Wn`ctqJkSdPfaH|=k(l}`(f6JQUCX3=qKRP6AR@kC%*$u}Kz_8hX!Fb%Ed&?5; zVFra)2*SSaX@%yF(0X&Tc7vwR#xwp*uF!{(ur7NrGS*T5MMgU8y)>|H`YtlkWzR+C zy6d;3;kiJ@*+nX4C{0XgSS28nyT}ZoysUP{_;EQy42788n5#+c!3}$5e`~Du=-Qe{ zM%cc6C1(Uj848V=145>pAu_vQ{|f7v=A5aKI@U{0Homxlk$;(`*d;Jr7anlx{}DT^ z#A~R-DqMoPslX+myXsqpI;p%Rpu?(LqPnZNvmBW^@T^2~K~p&ra^^vq8r^07@g5|` z-Z~L7M2^Z3TO!lvEa7w>}D3lN>Oen&eWN6lQF4kE^pjXPcoB>9(G3S9ic)=iQH zi@)TBS(*o7l!6tH3nQ31(p@HT_;u|f4b`-7HOPcXC??2 z1y+$c>hDmX!@dp!I&AP6k^b@b70muw?2fP@mqA`;ZI`{OLdgY9sVU@!Rd6kS9~cZe zioFkRB%E^XTJZru>#u15lfAf44QvavcNSaLOM{7E|HEvrG>AOXmUKuM{K}?dV&s-! zm{RPIL1p?bYDvR~e<2CtPP<>ERlc|AsIo_0zgHs=6Sw>@QF2hsD-^eA@b(Z_m$9>+SN^Z3vG~{$_RexY&MMFR$?iEgy*P zz_iy+fB2`M?A?kpG7Q_=X$07EI%ohn&HqfyR+&u9RJ57Yf3Aw+P=Az4A6pNF#;M-W z>ypZ@uRyn3Y_fz|H+t4Q+sQ=(P~os|oE^zq8iiKwR6x*B76r@B!%$7^L)j;p9S^Q7 z+!Xb}-h((k25-n{&maU130KQm4bfWIKAyC-)VPP&jE!C+;dQI;wXs|VtL&!NW<23{ z*gUD$LiaF-fA!eyxuo_wR;OJOM6n|<5pbERRL*g-QURK-@S7M?xJ_Xy07(qLq}|ZY z*kJbTr!T&^Q#eZ*>&9Xb6G!*$Z+=moP5~Z)8@t#8*rP`>1HvHL81K2W%QvtvOUlA2 zpIqT8y^Quah!DTd@j|{BF)F`D^3?DVQW@r6u6G0~f6?@q^fl62Y*_$aq8t|^GN4SV z(|C?#95W68#mo=lcswCVeeQ?>cYer0MKCv9T@WeLZY?{6-jR!izPakKf*5;Bb`+et z#ieByIv&2U=P?k}@7=}*X7Yt$!$@CBAEwt}+CNA8@`9pQREGo3cUalDFug^WO4Xf3tQmmo)|F9-TZju22*&xN5$9lU+#LZjhUSHc*xBjSG!2H-pYx455lOjC1KVj*K*g3Petip13cp{f0Qn4W?tF}QM)*1*8OBFmhJ37FYM1a+T}rR{4}|oe<4eS*sxq}(tEIWb6nOqxG?)G9)>&P zXFm7HHZnKf3J0%lGr|+vP@IGmH=6>(l+MI5pHYfBb&+u-f|Dr|shYdT;QsSUql+kBi5frT_4B zyS#Q7&&&1d>Gm3-ggfQ=QjXAUbmENsuzYY<+%fAql?H&F)*A%qw(5AS=zOn}lmysy zl9G^}rX?l1P0Y_jhfAJsx zcK!71-!H#xpMG7gulFifDbnPsDue<%_)%V-9fjlc`{7K-Ul7I>7kxmA z*_XkLR%Ty<66rG%B6@b0^tNd;eDn19WpyXjC7pBHEu$lH?4oX`0#%PK#(us^=*t0| zRH0MgnoLg7E7Ma9J730s1uC@if27yp(CyR1y??X7S?=F_xf_@1>_TbFHUiU~s2%_j zak$`fAPk<|&+y}-f~>=FiLu4P#3e^8^3-%106kc>NMpWZ$|W4uW)(-9yFl|e^QFUNFmf*m7)2KkS(Ka?XYh94^Q(Oqjo>r!aph*nbff0V;Wade8x))wj@JVnW;#&b;#z@L&?Sv*k3z0vMSM2qWk z$T0{(%( z_~Yh&0lzlN&VGZ~McqH$Ebf>7=jCSWKPE*_SnBC+1yfBTd%N}cYtV*BN! z^i?)@1{TyZ4bml`%L(brOSH$O-oCh&pDeC$u`7rRBk;PTt0Fpbn#zL9!KO5EaAyxs$l3DdAu9HHBvz+8pRI=6 zhithUx`>6V=@*nEf0$myV=R}kq}~_MM{vsG#y$WCR6Gs@e^VDyEBrA)uM!Uc+AVmO z))Y2me@j?uioQLrwwvB)s{%5IaKBn?{LSwVpP%lpfG^IcT^f_anqd{Q@G6qR2%VN|kwkILgSt%O`K=($=b^l8N=4xbtQb~0NU z8ad)QEDMkHt2yP6!PW*q{1zguzRYAI?H<~38b_VRSCRINi`Z}=^bX?u9JM70Rg zNt)8Fe+xdGfTf)z;8NOTYe43F#L9M;Z2T{)d-brf3Dy(gMPa+D4^}<(ijt|{_-4>U?*W)>;#w7`7$Rgy>+sd z^^qL>OIA>2K!;|#?pT#ktP7qz(*#bRZI;9v-~Hn8?%U!HO3|%m*;8V*A#4sBJV3+L ze|41TEuecS?5JG63O5RYyL*07?O0w8RY&_%;8zJM_CYo(eDoGb?mxzB`?yOG_1a0< zVfakiV8ln6kJSrs7L?3iz*zl0E59D~14>Be440m9MUbqwpLQrjArxj5oW@5*tlSeT zZDWtjz#3hs;3j;OW3%K~oq{C#6BYwXe^gvVNGhDPqskSoQT#Ob|3rB@O1<#$Hvz|* z2gzX!;9muGPPdB@q-A!-ZA3B#bPDpO%ie@yql zQaz`pkqdHfdb4=m-h5q5iSrS9D98W%um4+2SI?ZCMG9aRF$(;QV8)cZ@Zx#J)$r&x zg7&M*kwRa3%0SW`h9HJRU`J7O0rfMg{#pEH%CxoU=#kr_lgLoy z!`sCq9Bk%3NRD7*T; zx#I<%86k9)g+&l(@Kr)6zqtLI$R>%xA4CVCFa@8oy$Z!dVb!Q3$VQLTe|!2v=+pLC z_u(|3v!rGB+6d9M>nV*{lBxK0KE*nizsrLpv_Mip3MQ97Ymw|w9z5FdgTgO^olTS# zS~RfkeSOHZD`XQIm82oiYdsaWUbqd5ZLmy~a@h|(7&keGG*W$ddRdC*zw~Tk?O+2Y zf|N=w^+-15Y{8V)RHyX1e~(Iztg@og^J*y-uJzO^vLRNy#)&wo%J7I3>1)L1bN<1S zUc*${PfKaMkr#cCW;2g_EUJb+&Twg@?(n7ZEEo!JW0DH%+tfGMc}3F&xrM7I;64ZY zSJ((J36cbVRHWbVhOC2=l~{mq%VW1hkoYF)^(^T932Uk896_N$quSnrf%f!e|SARgDZaG*Yq+ zH=7jZX22RI-|?6--N4%9Mj4p`D@Kx|%%ke7=P9{p(z86>f1xRNdp<4*!tglbnGnBj zx6d5g3^5014y0E*GB^Nu6tEVoR*vTTk#NxT8n8LZfbr2K835`JbXK0@6oCxN-;R6ItL-W+LT`?F4yP5NxGz$a~bqJy&~vGfh)ZxMRe zv0GvkO>xsFc2mKHO-8*$zR85M?x{0y1*+%=e-(`h2J($@J!(1CKz8OBI}aPNTERv> zQL7dW6ggH4jwsUMgaAc8z|Zd>ugDF4dh$L!oq{Cvq>oJd{(U+$$Q$|u#&>l;#(3Dd zDZK8<=+nn^^UM8|pJuHNLw)eJDX^a7x~KPGhB0Luix$r-O}O@N)_E^@tDba&y(i#f zf7!t0VwA~0_#1k2(mz?HMXRT^G;>&{87fmKo!PAJ#8uzig9+c5qmZX0G{a&8PmG+K z(-G?7gNelk7-UqT>o=PiqHo^sQS=@Ar36ML3QRPRVJNuN zaBz>t42sz)vp~8Jl!cM`hBBat5JORgo@B$#-|1{15*bz{!=;jw?oE_*&zA@3887Jz z)RBiA70Q^Mf}%`AV+rSCtPy6vl)w~sX0j+wOA}HEGN|~i#O9_lcVag9ICi+3fB7+8 zr|GHS?b?qI>&;I}ZWYIGLFmV*G!;Wxl!Zj^c=z~@68?VL#U?7qFdPwA^=qhT8lDSe zDwtG=HIn37g~|}h%W7wWaWS^|&6RpedIo1rny4VdkZ`Hw3h*!e^xZfQtldVeWrJmc(hMrQ|X~X3`iC9FOJK?t0|&H zh7SfnyeF^m;5{#i(=Y>*%W;biuGYgYp~qG1k3nUC*MgM3trcOBQ-9dFi7OpRKHV~v z?`Wri!U@_2qBvxG`YQ<2&L!?;kv(fYea!j*?tXsrMC<8y{&UiID6EOue>gmL`kfzy zJkgvVXTXUg=BB^ntBLO5G9!f_ZiX=+t}pW9sIz`z;}osw|M67g=+5r3PbL0+HWdD@ zJS$P;deS*cQAexKS)7vdYvgxU4#%Zo_$_)vG3*OyS;>J|{IQ3Lp_Vee+t4PfkO?cb z!VHZT*i-O|h{xs@hTrGye=?K$%XE$(CAhp#q{*kYvdZp?$p2AA`&Uw@v{mXSji|#L zPk#~52qZ_FZCf4gar+efG|O>Wr&V)ap8TK)UpgA>KC6JMgiJ|4kavSni86Cu&@#kq zKB=c)=pbAu!X^r0MXt_eg$S>)(ipOAmwrqeLJBfYl_U(}G@(b&e}2rfbALDrh1vwC zS4%vZmUc+CP!PPYW9P+T#50S?Oc9id^Zz6 z#l&!Dzz1s-WMRi<#RsH4DovJt$ifI_lvDBle6G{(cJuZ9uv?cQuM-<2D z^gYcnl|3Wi96T=Mf3|2UE#OPosSx7sBLp-3@h%Ut<6HFSPt$!GVthTawKcD3jd5r7 zZ!wpp81}Nnugw8fY29n+H>1~{gs3kCpG_<3U&1sqDS}}n}bK^c~6Qk=tyCYwI~g0DF-YEC8V;dNEWf01of&Ezx-=mgs%!kuh1 z*q>mnNlzXs<9Lko06%X(i%>`x49rEr?Pib;U!<{*(?nJlehfD8T3K$?XhjY|9Q(zukfnPzj8DyX>a zv(8d|i6I=GscT}Gydgj8fT;JZQ8~+%aYq)qR>72=0osNK`GNGZi;IHsYRq#`6u4Pj zh#NmLnV;H0OG})i!)1)s%d|Z5t_(fP4kssls1CMve`w<%d{4moA|itP>txFQ!-JF{ z3?tGDEK{P&-bf_q&zks4PGnrXfrRUQhg#0bTS!h@T)YLwc?{S47Im;=-vXMi(ccVJ zHnf3_oh^d{5!%Zpjcj}2A*6BcqphCC8s(8E_og+WwV803f;VN^zkfsOrJ z7Th1|JzTXa9HB~F|ENN@Z!X`K-~j7oI`^hQobaS+--Bvq=J)I_;; zn$$2R)e%UNF_X?YD+8fIO>o!j&g3P{*@=K1f1@!tLXSJM{s25yk1d!WXahG9mJ!>TgH19m*ctk3b%Jsytj9El*Kc;bzUl0Hzw8GfXyF8d- zJ75%{G`Fp2=A-7t&}fBRviBN7zmqQ;{V#7}NS`nAQw0krHv?M+*; zDtxMvYS*}wlrLY=7FlffoDpT#D0!34oV!%7en&C><`4wVy*c32$iR)5(k+B`Tjz|a ziM^ogl{oD$I7N2VVZyAX#aiJoQ*`#k6WXg5Zqjj=(8K0EpoYtY20(I_U~6Zte{#0K zTqrcqyP#0-Uo^fweM0s1js+TlNuC<|LX&(o%v7EpI{q6Pfz+NG`ogGvH_Q}%AE-Nr zW+qCG9D0*Va^)~nx`I&ocYr;}d4kF*^PU&IMdewUUfnjA>w2;-PpcIN-^k#7{Uk~|;e{cq`L}|?IV7%(2IxCqlk=D-}=`O9H*9(Tae>HRl5ph#B zA8jbTuH(jZ@Nl6d>luHY(&fxE9!v7h;J=CJRybu;vs{W0xa@}h#fY$usVV(J9zl_8 z_rKjvz%F3Ak5Ql)DK%^cX7J0Sk{(r4Z|+iP5kX05ZXY07IHlrkb#fVlsdoM3aP%_u zzC#^bXvp!4xe2*dPpF0we?9UKS?i_57jUXo&Y5Q~n}|^jk7=-oDKlCF;Ihw@fa`%M zPZP38{-X^0iK3Gfze=ZW(Xc_7)GUvn^{+xf=RA&oJK2%3+~cngQ?4}UuL0KuIXXZ9 z=Mcuf3R|wn#93PAm0d=F98+OSG~_TU)yjxMn@ufp6$NJgAFSese@^*-vVdUub3a#@ z7U+T@3e38ogP8wMiY=9EEeaeF^lBwsaN{Vk*Y%jZj3~fJ!Ja_HIpBy+mLD_|mDJeV zt5?69gddbvQS{Fg%oaLLo+=g~?Hy9u>TwEJ=QQSi#~w%*)0)g0G7*;JmR*mA3Hglw z;++s-Qhwq_a2mT2e@HPbf&Qr2f_=S%%oLI4RL#6tl!(+JMfvPw{B zJFH{c9@uVxwnw!el+b^hoYGJ+mzSMA{(zgw6R)^*R!=gvx6Os7)%~pgEmEPj!v~{# zTdr{ZpBHtW>J0IzVf>(}u-Z<3MlPEZVbpZKF%L$=u#JA3f6iY)Hp!>N0aGp=sx;w3 z$uQr-27g0b3P~eDa@lk!L`H&Le?ny0++to(zsla+;Mm@-$hId~rj4{uVMecc%CKDv z%^lr#rasLb+(m0!a3Pqm#2Mwtut=}kcqoEsAeLZ@h=3w?0f{(%8~o48e+|PMRrAe}YF>(^_r<*p1iRYX2ySs*YE6&5dn}{T-&cg z6AEGQ??VJdrh+GQ$BivtY`vM0OTi@jaJVHlS&&jsf3Y<@1+X6;mv4K= z&gB%3e^OW=g8c}0C;X6%DPQijUb^R+Uah(Az%U<-xsv@c&HH+!IWg9vVhi$zsq%U1 zyi$0;Q!t3USId7U`azC|Rb(W=?o&9}L>q}j2>$VQak_t{nlBN;V>aSS-=t4OiO;a< z7ov4fTuV_5?u$%Ia3OBSU{Q~X)|ZrW$fMAbe*&V6awoJ{WFp#3fIIRkGm@yZ$E0a8 zHwYA}aKfd4Q7K3mrd)9CQaE$%*Qatn|4jALJfwTVa`a+U=E5Eb-$%)7t&W>a3Z(m3 zj3_21Z+#)^d8+i()zYR?>r~`OLF}z9vz7|8%-u+u9Cm`KOq&EDk|Z@YT!%5ZF_;k{ ze*{TV@LvQ1#1RWyOqH)`c@sG2Wrusc)4%t|CVlrn%KJO>R^RSL$va=!`05$v516dd zZlSg3XvXG?Kvvp*#O@a7qzpb3uE845`M{j%)0@n_{tnc9b`FNtp`9!w9gymg2OihH zsfsc^O;4yOU@n5)##|lTB&`iUs^;*t!TG%-bH8R^N>gXO* zXMxaPjWD>&9a9KJmtS~Hwa1YU3+e-gG~GQEb*9u3jc{r`KDb(9SsIjIqyD5{KAK@ee;CaX zf(BgstU;OVNfdrYxVWP^kx(0&d;lH~gx;%*7qf)Dm&+7Axk-bS&d;DsD*X-r3#+^J zIcG2UgRZTNS>$~MyJM~=b8%nsDJ!OBy$y20XISEoz1{L3pHv~sfJA{8`TO5)*!mxb zN-nu==Lb1nR#kcU=0V^LEy*Eue=rDY&nR?8zXH$HJgx@TC1Hx{@3+PMrwCBCZ|?2L zxAOodqIiip%LfezPl`HM&N`2P!h>S%%UQtQ(T+6N?`i(}61VOBRJ%U~j;VS=RjxOm z*EO@Q0VoTeJXEJ^dzW z>MFx>uwDDin2}39x^6nqC{Pv!tQ{CN8zceh5b!P0sIWS@K4`-@@UD;An28UTshA{-qVHhy<(b?6h4^^2-Z7$c9>tlYm4x@3%hw%*>$9&X*2}phLhX_E?f3ld-5ooH;j{c~3 z;wXAj7N>pGSPo#Pe@Ni&ZbF-xKnY9%>;Mn}t|B{V6}5m^5zhape?bNE`C;?wok?~D z1amyb@p|DC>lR%T(wW$svE4VU`PDQes_qn46Dw7<+J^1=p>3eJKf!HA*9Jh-J{>(G zdQar(x<9pCoD5p?>a2Ll>s_)NOSYLxKUvy5W0n4b=~BA=3g$~ewqsu`Zn8l=*$Cv_ zfd2!{aJj9m8&R7_f6q$)@)~^G1AXf-1l1@~O=^uYm4nL8ZXY#DeZE$`o2okiRdX7{ z)7E&jJ?K;ur@WhTN82Ho}*-RE^&4C zx8|}*>HnQX%(y~~h(a6CnUzl-t5221o79SzCLAP<2+JOP0ohQ|Zoz5G#N zrp$nfvAS-EuAfgKAOThrd4L)JG8 zi%Ggg5_(#atW3{Ik{6TM%8Sl_N^*yw$gPMRt2Oi`77Izxfgpe`?o|g6)z&EbaIuI4EQTqG@J%716u|0gnD&0MZR|LJR_Gpwhdp; z#KE>@G6+xGGq~b7;&q$4*tX_yU)wWs8d;Mh$J@fowk5RTZhOXmadho|`~L$t&tKcF CEop=R delta 11097 zcmV-fE2h-QUHDdzLkcu2Vr61tHD)z8kxo5-Z|pXYzCN^wQ)>o#H(BTd+fKKNeZDPxESZsE^t5yC7T?xT>QH#bt7E5--sNX^{MX zSjA0^6MQT(RHM}%<9&uA@moVdIf0<+N1SKm?~hDjlzDtVZZkWHiuFO;c#E|*x4`eVMu zS?ZCxNe<{3udAw|MD&rMV)*H~LP@!aa#X+L^40tuPl1&v&Z4w9A9kqgB8n4uJ5Qgq zLX1$J;9Z*UKLMS^`M!zw$S0cQeeSicq|~NDWkh0{*PlaOecfC?MHe^M_s9$#MI{J%RTdwumbiqZPfV;Xe1-lAO9mCrAe;8vUKi>Kd7vOYZB_=(_Z zo8jcuOUopY1?drbA(Ec^YgFTZSLCaDZ-J}FHA%+*xc=vP$=C*lDM;TTdPOInc~8Nz6nLYiRa7-qktQi_DzD^%cc9J#))+^}I6slD z;~x#;b;)ET8wO|Tw(|w417s;-_<-8y*Yrvq^o?-LfK|N34ehhUbzP=^+lGt*=AsfZ zfY{?QMU@}kF0JBihIZa)MHZhTRF=4mj;N|g|IbrQQ4SG}plj(1D00^qE2>Y0C*TXJ zlS5ROaawyyzci1@2lM7Be(K=HAB|K{MS)9C-%1`IJ;kqx_q>Ypz$)>Fx6ijkdp;IC zpH;;#sGaTfz(e`2KNgOE4k+HC(o+BjQdAOOHEW$7QB;z6dM<^)^;Z4U_SRF`@maYv z74(B@Qt3nSKAj0|V|Hc(&Okhp&yqT`HP_Hqah647KoMui%R6`B2`)~Z*+L)8rmFGr z6Cw*;Y99@tj@@q!eI^KWwmVaGp4n{`?UPJ8^Q_p3%8GU2dQel9<)gX#plh3k;GSt6;XHS>f-70m*`2INO3`rGud?{ zx}WE9^E|F7ijQ}HMw37lwk1MGHjZIErsm5gBQYL^;DAOSpMtG;$JQ&i-#(9#R z&C}W!m^^m-HiV$9P)NCn$qmiSSTZCs(KDYNmcZ)pb1v^TWkj`2rS z@P5}BvEmbk9wO8o1J93AlpaOT$wTgOnx{+@G;gWa0;__5bn1`?VvgRuB_6PRB^_n? z{RkMdonbmRcK))JwJhWyt|0ua?}j11Em(cA#UkX9qde8g`6+>T@o# z{)fHSLS$@z1p`FjpNKDcoh)&Z$T1c!$!I&;p214+@fhbj^BcarPzIL^;Ya8;ZsRH| zT53rFDe0strdEBU164rYPhZNId=OQcc#ShNQzt2cvR&ns-1b_b)Wk=B&vZt%wu>%Ubi@%auEt^qLO-gK zwo<2xS_X;+wgqb3127YtyS{(!{QCLCx6d78>ClUrN40ikoUv(@;HIps-4Q8hOHe5n z7pbuA87cN%tc^!oAg@HQvlUC-UZ8H>;0ZupgP?p@;M6u-Hidh@?@|0lP-mxTlf1(J zdu%O#MN-mMj9S4YCQW+u_Q%elsp{cJxf5H#DQH-^+U@pqW$Y8s{?o!@Z7@NS@R1rp|9)cV)M`YOG~V@dvSZHX-%*b652<;aX8IiuqUd2 z^K7Ie&2=i$1?RY0G9im6uW?L>rtg<`S?iec>U5etLFta}PC37fPh3`*g7lh>RdT>t zT>4B(j$E%@ki!3=IDZ{`7h+8Dd|mo zEBJuTjo54`?AUxK0|EcwkVD5+!0lb8tbO18}%P61an-q}}^gq*E(p(4$R9O>9d}?&0(wYJ**(SLXy_YGk;?E@(B`$n$Mn<_4IM6+)>iAeh zFStC$XAo1;IsU{MnIq2kc(=8}b3CEO#cwGp(hS$uk4#G1kfpU(L`3WmM*~gC(mc6N+kG+=;)=%F>Mf&Wys9b;j7Q8!E$U3{o zq%5V03r(v8RPqp6AXL`P)*3${XNjQ{a~pGYsUx^)uk4I<9$h;V=?FW2a;Phu*6(P48wu*HGE0H8U)Z@xa$t#e;n)Ho<9gunR>oq(>c&S2&aC4PCS^+tv;+THZUc}hgL=~W zd$r~o6>02PQM+|w6{5c$VuiEvb7q2nNKxPwnWz2^1A6T1 zaG=KqpA*@iC~08!&tU_D3%QQVy6Ah=)fGx1XiH5gH?4x}@yEbm&`~83czW>4b!){Z z0G+?42~7Ut5wn4meR zx?5&u7_PO`46x&L&;&9r|IF=HnOw|Pw7Jx_Nwb~#w39J^wiybIQ@iKZCzW4+0^Mz~ z$r0w<=sELTCl@V1jZeLKb|h~&-8p$Y0YOVylq@$VKrL|$<(_12Jh*c3Bs2zlkF)F$ zzagtVgA}wRTr1}^MC)P4c*^ci>o!|EHhoQ{W2~{)CUOO=vfEyp^Q3EF`=nYAJ;I#U zV|VA$+UwAN9JhI#W}d)Qz-Ov5InT+;1X#MlZ)!;4H-(u1Br*I_HY|H%gV}S0Um|&@ z@|H5rjm0D;iSFCqqN+I_V=@A_cCjb0XOCnigh8`0ON2klH?T0v>&h#iUXd!jP7@Nu zj=av{Ouig3YQIPN)bbHB8SVjYbOfr<%ozNd8ZEYe8~`tANs192Q0C2XK1VT*nFoMk z7R6aMpOE87_(~w1A9|J$%ndhZM9Q{X%MD@nwc?;}uR5F{)}E3Zg`{qEZkdISM`Z1J zOazTPpmBlO+*PB@)YgRS{Pe^RPWvwm;ghrB_eauy z(enE`K4FhAd4+0JdZlhqU6Y}v-)y8QxjE%^d|ncOONzpLsh;Cr!cB0&8s@jvcaaj z36!Elk$&Lh0%;3|rdsAtO?kqfUR+(RpVtrf7q@V{&;9210)FX_$L(3A)Ny{pMYOp(u98bQ=@wyfIY~ z135!wA>_a?Mf%qt;Ym4H-fD+`s-#S14|VX_8pvbF-j<`YSfrYMK_$u)YR>92mdpYh zeZ#PNOpuVCL>^VD=+K`U{x}|TV583Mi3~60qOZNAKm8R(H{rY(`8f{%b_7HB@ z7n^AF&$}-Vx1WHoPRA|Ir~}v3_{qA3K=+>Xd`Ywn{?w4X;_1WfRrGX!eYM_1U!QKH ztLvXHzTQ5=wf4qp7kr)|%y3mvjO~X;5 zJ0PNU^I1{(RS;$+%eS;XJhDp22ZQ<6MZ1VqY|;Vc?6*_d%FxIY&tr*D!RHo^A?vJi z0;{Q6rTh3o6T|S;>cQG_=!RBRd+?&fuzZ2bY87uQGAKxDL$fn~RM59SW-x!nNAYCz zQ|N~?CjdTcB`hD!#bj1so2DvIzC*i>w3_nrHoAjbd}M<-Gv$H(^`8xz16RDno1IJY zkbh>Z`}j{OIy@*oRVgN+^tQPk0)ic(Fn~IJQkFzF0)M|NdE?W6Qq(2P&rH>Jr`KntY8wK7!>?t=+QUyvREHqFq$yjzjKB-7agsnt z8I!F8S&0!VUtw+!o*xVwyI?aBUKC8$qU2>CwM$Zln$DehijNsE&xTPa!s4bM8pLfn z>4OYu&sknj0Rx)rqb-FL^OVJqtnV!l-Jt6`BwJ6h*DMWe#+u4%3wMKBJv}B&cx|uC`2!)B6P-oe!st2u=V~puijA^isMFrw!;aq zbkCXL(FMI1TwXjrU;c6tQ0rXgwd()qo&ZQVp<3IR$>EFr7eO_~LOb)JWGa zh4!l{kw#y6%0bEBbtt0$N^)-;#e^8@iYZ)*IZPcCs^NQlB-Zrc&R1&eMh8>my{tY^HSj z|AG8GBCaT$%y1G=TcNfaTV3^)+NdsEf(1DzBy!m=!-*WOp=Ab zuFX`^^pFN9bHQ>^#^pcEVA5XfajN@j%(4tEewo>H9nS?!1sRoInvr}m#eu1;76j~n zdW=dPGCEP2H+DvaYcsV;U5JgSE>b~i3NoBT=IX5bTzs&!$q!%?SB>&GPk759T4>pU z=(f?MyP<2Pvx1aH=Ili&&yu0pOQWdpj!Aoid*cf(=q*w`0rxRZUcp9o5$8GisA!}A zhMa>_m3V+~E9AFikmM%qvRttH3*O9svH^ajOBz#yyJXj)P`&7o1X$)8cx#+N=lUVl zXF<^TiwuVQGAw#J%bY-{;)Oz4usO}n&;zuF_g$|Sr~=xS*(uuM4sX$ELk&${Q&8-*axWBGe7DR)y3!KA*g`dbD~|KB zakrwLUBZ>{XBm6}23rQK7?2-&=@{J}mMM$4QuvzQVr+V*3G&|I9*IyP}T(fyL(Z`p(cIc+ch?4pR*TI#z*`*{ne@XZ5F!fHz zl`rX^E;lXc{8crRoE9NdUq1$a^rA~IO1wpZaOyEH2+9Zrj@)_8FR`p94#nH^7 zdInf1eo--tZT*kEbFvayP9#?{QJ?>Dv*^u^^jgK<{0LN7?F?XmQQP&H=aq3BKos2-Ob|A{acuM2;q_ z_|t~&J=iy-Igx?F{g7&ZU3KPwk`h6sB6@q&X@#vLrgqqu3?RFE6mZF)aJ|^YX?8kd zT2DEa2StU2q1+Iq)|r#R9dRJ+jcln1!t|d=SQ7CNk2vIaWGVuGm)jZfQq9B4rv{bx zL&}E%<=t?K44+6y!9J}I&32Vy_Y%#NNgyFp4vBI|kZ=4$9FjU;A-TanKk@Y~^r5MP z){*!Gzu@sj~>m2W9}H?ezS49#%C1HY-^ zg8BR?QJ7B))-7{?b)i93^Bs9DobN*ABQw7Lm<|i_l0AX(UE7bb9_3*RZ+PxUaE~{?-Ui~V z27MU%V}GR)!;$E!WCkSDL(j1c5^X4 zS!G1)r?m`oShg7|TPTCstl`Af*xZ8+-oV(Kz`r(6(#RnL4RAK5j z+ZeKM-5XLEI?Xnm=vTA8^mtFp!s_?QdL6K#d|D;ADJ$D6OF2%JYCq$$Icnd0*Cem- z{~p`eQjo)c$u<0cgU1qfkJ3L6aaLL2LX4qr_%AImtx;^Ffec5%rGZ0wG zos-yuJN|1idYrTk**$kUxRbvZ`qQ9oJZ@b|Vn@1vnIFLu#>YyuYv12JZGKo-PA0Ym z&_BdDxMO$1TXJV%I<447l_wepcT`;0uThVGweXZPVuJ^Iy%;&-$^z@0gcUprrIC`( z4mq_@<*}c^BU~=VPD`}0I;ScIk5bK?jO?7nacp~tUhpeiE^NojS$M-E=z=G>^@ZJ8 z7>}BNvvJ$==z=GvV199SeB3y&J)ezyIv_rh*X{XQ7G~!}qF^J{M%cbf6milUyx-Ol~=?6yds)U_jhlwa12oJOs^LMN5Ljq>qR)A-r3Z5)(*#&VfYn#Lm9a8>Y2EKSoV>?#86L} z-R)@8Rmhx|T4_VZ3hXg{MK9^F&m``Pc9~24C0LP1IVtZ8W%8-7tTURT@_#gG@=EJ} zl)g&)q!V>`#S-n>thsGyO)6mzt1b+CZ|)ZShCY5z>%Js^q&k!#Q)T{;?`f zq&}BS8CZh|3J^7J;aushteVp=$r%!tWbbDp0GdbETRm<;;Ll;H}qYmh2$bH8QV=2D_La0NK4TbF0 z!!w<)IG`-U!8O&J%5xAe~+0yq?Za-ocD zUCk?cW87u?Th3)^hP^!TTXR5NT8|p~E!lObAlggG=hKSjm$1!D%3wH2J5k9)Lm3&f zrHRs~9u0Hs^jaQjmw2uI5`oG#K^vBCQe42PCZ9h3nOqBE+MP-^!`rG*Ap5F@$!Q+Y z5%xChwyM$Kc!KqhqvfG;PRKcbckuJ-iwuQ!!NBo+H7}hgAY_0icG%xD{qcQ`$cvFe z_d^?2nx!7|U*+Aw^`?{eN1X5RZfg%pa{#sofg|qVuaamdqHuo307YiYY4hu?;6p-} z>27Y8wCWGyN{|auH^WTKAKCnPD~v~WsYJayY96Z^yW?gFm->T&G!H?48I_LV)pOE0 zn`?GQsgkOkn0`iyp&XH^Pt-7ZLw~dZF~2aga#kpljx2Po;(&X&?!)79PkY(bS;2%Y z<}t1+(kx!c8{c!8ANoNnOPsUA<&5=9P#;8Bh8>PUl9N5u2iv-8@DP3|VPg@ILH>0S z@c+mlCEo2)+6$~PRpoDgBop)}L;Mx@2tM9G!HvE{E9d1c6n6wZ-h$vljvIZ8HrTmu zK@Xam8)v3$X#+buTP6o0wXeH0y6r`TfV0v|^GZP*@{c6{kqxZPr!*W~pR^WWT+Ssz zG5B{+jPC}93ojT>`-Y+Kz|Mzmc~m=NR5lc{KR-NOUen_M9=<+*FU0m2*+FI|U-8f| z*BVKV3S|#jMcwdl_K+xU{0dj!SW*pgir7l3j;?pvG6*V3I_@ni`Wa5b4L)Xckq~7kK5K2*-8UsR=@;_Ld4cc$#&; z2H&;t=Yen=e;&pZD}PN0s--{YQ(J$rSehJg7MEuPzzMxDHtenlX4<9#O(@-s1w0VG zwSb2)VRL~d0A+&#r^6Nl#h(TPX zj}~{D3{iH_Eva(Il*7ef8dIrPzoCqLa|i+#yW2@>6euxllQ-^^TXHqIy^g<n=2HVF+*rIjqY$5Lel+EL=rn|b$=X^_f2fd9e{gyE6 z+p{N3-@MU(x)YePbA2o{W$*e@xAT3lpS=@EyOVt^jCL>kQnL@9ZEx>pqO!4lG^v!W z?Mv;}c-?+?*w$I*sD^JZhYcQYX?@bB*RahMx}mBo(rPWhmn!%#JPje-67L$=+9y^y zy3@AmI>%B8>nFwren^Wl0W^anm&)eJHzb_ zMoOJ!*d_c5nPkY+^!sHrT2xR`TDb>E*P@tsU!7iNVEx)Y*&o6}zm?0xmKtjOGGUeL z)Dvo9RFD2cm(LjS1)L1kEAHvYC1Ok?T7YL=5cn!E_r?X4o3c~nT<;o4YI8V#6 zamxsh<0^dCo1R>un{3u-^Vu4qqQR{GlUMxEDgWO*AXrgKR+`mXQ!rG4FW3$ctN+e_ zu(fvjT7#p4VXH(6ZkFcmx*?ZW5f!Zax)YeV036WK@q^}~iW+}={eohb@SWDsg#8I% zC3w)}>0$xW;U2SAPf&!qpmC2T?m)Ia(Pg%fg*3)>?0R&pa+l(l=!8fs-J`H8GAzYI ziV+F)N5j`Z+f6yPh;(=7EagubhyHedonyMEo4(n~cYF%!CPzEhVI9{FVL2SML#BPF zh5p;(hc`z1+YxMhc@d~PyGb2uzav4yS2^U6&`4&F-o8qN^MHvaw z%dU?WIuabZXrU{S4)cQMh0E@qvHlJ)Zt?AyHj3%@l3k0G;fCPdO|ov*6WvX*Rd1(d zC7G~ll$OY{?y1|$C4=Z7uED&E^z!NH1bG66GkodDzRIXZzqgpkw{i-v>w@XB@;9U^ zTAbT@9$$2J30G6FGO6=!O0%DT;NjA?yf=Q(kc4g8+7t|mD5QKsh9`+SD( zaDtud;PIzS-=NMF&;NZP_Y}C!lXrF(EX6PR`h)ETG5|V@>-tp~LZJ-teaN8bRPcgr zVsPcl-3&{5DVcO@gD`HT3sU+iw$A2j{v#CfeQ$vx*|llxVw%PQZ7OqrAW!7r`x?KZ zy!v6mTslRaaxrP%mjT*>6)u#P*U}{O0Z*r8X8SfAbEVzDv80zGSJ-Y2x*bF8+;Aig zw{R>~j0m8!t%Lc->svt?&Q4>ULn6!!SFXMYb!onxy~=cVHna^2x@S7Y{wAMkcqaJjIuA&og)QA zIps!b@yMjC8VC2uO<^T5>5xmaWbP0cRO5F@17lKEUw6 zw!xI>#i}fXLlC}A^Ve3LG-(XTO!uuQE~Z-hQ}q&SofGx6nbZ@OIZ{y*Q^%}j!aQ>~ zil%@aVXDz3L8v56jg8RZ3}OFbMMy!K6yg_!0CC2`6IT^$PT_*oh{2ZhN`t?T#sh=7G^sp-uYHBylGSNe>&I4h;I$;PeBeoE#A-@WLx$21T5+2kC3^|5o<87w2 z5}j~bJu&#ZmbW-N&0nzG38^8A=PFm~@DBNpaHDrZy8+iZ_k_`e#x47+p2#`c`{-pF zQ(&EgZfVedjpk$f#At&LF%0JcS#bS>gH&>;P{e_s@{ZwnA!BIjX*MDdcCRg7-1zTS zEmQ2I83R^-@%PV|O!_PN7gk@z837fnEGUMRJo1r-Jus(Jxuh@mP*g$P?)+Ma8IbHF zaa*1flOA-Ljw*;EfBX9-U!N0D#S5|P{GGt7sye5}A_$V9;OCGHHv1#~!RS=txmqaH z!1`l{QTzS&xc@E#R82ZZJKFs`fQceeVos`Wb?H2R&g8w;jP|mru_o>#^pqt5oz5ba{?@J zlqnt|tzXn`pY~GzFc45lV);q#k8{~P*Rth;aI4R@)4_DJx)l(eCeUJK1j&3KY1T#JJzEI{Jz;Q6#x(Qg)OELQG`V6R0k;c3om^E9Y0NN19E!n8> zI=MYtz&bE)PZwCq50&_mK5z!@`%T$jHQ0xKZ z#}7!bdftGQte!Z~q6I=8K_KDKAu-v#>CcgWSSoF<&{gYWakmYlbFP8)4LTR%mDn%0|{xO`OQg4W;9T5&jeR@=9OxPO)_D6bpf;tRr z2YzO2ay>QTKz#d zeBNCTRww1#x%lC*c|=?KW$g{5d*fR@VK~LL7#SFkGJ4}@-8gwL2sQ!L1D^(i;qI7M zk7$R(E<<30Pm+;7ugNRPvVFj+;t*I?PbIB)E0ZS(tE;P}{HeNv*l55?Xs)Y&r^cXU zHx8^Nj%sz^0E}F#9+-wlO-y)nQ^Eg_+wyPl76k6jzZS z`EGpv{=0x%bkemZw#-z$@k3f%e4h|uwq;AYKH&=ho8N92WkrGR-c*2S@}>e%zQ&_? zRdXDV_1vp1+uveT(Q~*amlAk?Pi*4GO`$G&cLLLL`DVG9Sgy_fw9sQ*%q4;<`M+i9 zHxs!7rM}!oq@WA?B)ORj%JkosNZRHS<+F21sPn%qm+#b@iRIet&w~3|b1Sh1higlA zEekDkzXmflTl_H?K@R3wzthdG*1e95ZC78nAG9PtnN6|S)i>xE2~UN8uHUNSvT(_N z$QSNdxz}tU4ZN^M@I4C zn8wjIBOe>AYddr_6mMiA1PTcy1bP^u2tf4GXMwpg2Wkemrg5!#5>_{Mro-IsM)>v& zVzoQhJDIq57O~;jm;u0laI%c<7#S)*7t};acx!Ri#9?JLTib01i3RqTPOe+iQR25a3ou{I%!0_b?HtjJL z&D0o_UUOW1D#3*72;HV4tzQVCnoegFFc>3knxH(23(S0!JhwrAEx_^Wq~rdir`DxZ z74_(d>((}yfm7*Gi{`#tX(dqpETo{0x9Qd?tm8X%y~8f$Pw`@{yI8Q_2NPsxa>qyP zQm9KX|4q5f;hF0YM?+=~&jg_LN838IogeE$VN-O$(71f%+YA%A!Ek(^A6E%edYYe5 zS*w7*(v`L#hH1-0Ce9Yj`>QSTtsB@Sy%e$S_=Kg7cpZ~LdgNWgmB3N&yv!A^Ge`L3 fUDC^zq&Vo6-gq6M9k;wo@k^jvH@*KKM~TH46V32b diff --git a/own-instance.html b/own-instance.html index 8971264fa216..052f260c54cf 100644 --- a/own-instance.html +++ b/own-instance.html @@ -5,13 +5,14 @@ - Why use a private instance? — SearXNG Documentation (2024.10.4+bebb5f57) + Why use a private instance? — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

        Navigation

      • previous |
      • - + @@ -195,11 +196,8 @@

        This Page

        - - - \ No newline at end of file diff --git a/py-modindex.html b/py-modindex.html index 724135a5067f..dc109f35da2e 100644 --- a/py-modindex.html +++ b/py-modindex.html @@ -5,14 +5,14 @@ - Python Module Index — SearXNG Documentation (2024.10.4+bebb5f57) + Python Module Index — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + - + @@ -28,7 +28,7 @@

        Navigation

      • modules |
      • - + @@ -455,6 +455,31 @@

        Python Module Index

            searx.exceptions
            + searx.favicons +
            + searx.favicons.cache +
            + searx.favicons.config +
            + searx.favicons.proxy +
            + searx.favicons.resolvers +
            @@ -530,6 +555,11 @@

        Python Module Index

            searx.settings_loader
            + searx.sqlitedb +
            @@ -596,11 +626,8 @@

        Quick search

        - - - \ No newline at end of file diff --git a/search.html b/search.html index 1de95de0bb84..2c9d15b55494 100644 --- a/search.html +++ b/search.html @@ -5,15 +5,15 @@ - Search — SearXNG Documentation (2024.10.4+bebb5f57) + Search — SearXNG Documentation (2024.10.31+5f50d2d5) - + - + - + @@ -32,7 +32,7 @@

        Navigation

      • modules |
      • - + @@ -113,11 +113,8 @@

        Project Links

        - - - \ No newline at end of file diff --git a/searchindex.js b/searchindex.js index e2cd3392ad66..7cca85a852b1 100644 --- a/searchindex.js +++ b/searchindex.js @@ -1 +1 @@ -Search.setIndex({"alltitles": {"! select engine and category": [[111, "select-engine-and-category"]], "!! automatic redirect": [[111, "automatic-redirect"]], "!! external bangs": [[111, "bang-external-bangs"]], "./manage go.help": [[81, "manage-go-help"]], "./manage redis.help": [[81, "manage-redis-help"]], ": select language": [[111, "select-language"]], "::": [[84, "rest-literal"]], ":ref: role": [[84, null]], "ASCII grid table": [[84, null]], "About LaTeX": [[84, null]], "About SearXNG": [[108, null]], "Abstract processor class": [[105, "module-searx.search.processors.abstract"]], "Administration API": [[1, null]], "Administrator documentation": [[4, null]], "Admonitions": [[84, "admonitions"]], "Alpine Linux Packages": [[39, null]], "Anchors": [[84, "anchors"]], "Anchors & Links": [[84, "anchors-links"]], "Anna\u2019s Archive": [[40, null]], "Answer CAPTCHA from server\u2019s IP": [[0, null]], "Apache": [[6, null]], "Apache modules": [[6, "apache-modules"]], "Apache sites": [[6, "apache-sites"]], "Apache\u2019s SearXNG site": [[6, "apache-s-searxng-site"]], "Arch Linux": [[41, null]], "Arch Linux Wiki": [[41, "arch-linux-wiki"]], "Architecture": [[2, null]], "Audience": [[80, null]], "BT4G": [[45, null]], "Bashism": [[7, null]], "Basic article structure": [[84, "basic-article-structure"]], "Basic inline markup": [[84, "basic-inline-markup"]], "Bing Engines": [[42, null]], "Bing Images": [[42, "module-searx.engines.bing_images"]], "Bing News": [[42, "module-searx.engines.bing_news"]], "Bing Videos": [[42, "module-searx.engines.bing_videos"]], "Bing WEB": [[42, "module-searx.engines.bing"]], "Bot Detection": [[95, null]], "Bpb": [[43, null]], "Brave Engines": [[44, null]], "Brave Goggles": [[44, "brave-goggles"]], "Brave languages": [[44, "brave-languages"]], "Brave regions": [[44, "brave-regions"]], "Build and Development tools": [[3, "build-and-development-tools"]], "Build docs": [[3, "build-docs"]], "Build environment": [[84, null]], "Build the image": [[7, "build-the-image"]], "Buildhosts": [[3, null]], "Bullet list": [[84, "bullet-list"]], "CSV table": [[84, "csv-table"], [84, null]], "CSV table example": [[84, "id14"]], "Check": [[10, "check"]], "Check after Installation": [[25, "check-after-installation"]], "Clean up": [[113, "clean-up"]], "Code": [[26, "code"]], "Code block": [[84, null]], "Command Help": [[113, "command-help"], [114, "command-help"]], "Command Line Engines": [[34, null]], "Command line": [[7, "command-line"]], "Common command environments": [[112, "common-command-environments"]], "Common options in the engine module": [[29, "id3"]], "Common options in the engine setup (settings.yml)": [[29, "id4"]], "Conclusion": [[92, "conclusion"]], "Config": [[95, "module-searx.botdetection.config"]], "Configuration": [[10, "configuration"], [33, "configuration"], [34, "configuration"], [35, "configuration"], [35, "id3"], [40, "configuration"], [45, "configuration"], [50, "configuration"], [51, "configuration"], [53, "configuration"], [57, "configuration"], [62, "configuration"], [64, "configuration"], [66, "configuration"], [67, "configuration"], [70, "configuration"], [74, "configuration"], [76, "configuration"], [78, "configuration"]], "Configure Limiter": [[13, "configure-limiter"]], "Configure the engines": [[35, "configure-the-engines"], [37, "configure-the-engines"]], "Configured Engines": [[109, null]], "Content matters": [[84, null]], "Content-Security-Policy (CSP)": [[52, null]], "Contents": [[44, "contents"], [45, "contents"], [53, "contents"], [57, "contents"], [62, "contents"], [64, "contents"], [67, "contents"], [74, "contents"], [76, "contents"]], "Create good commits!": [[26, null]], "Create user": [[10, "create-user"]], "Custom message extractor (i18n)": [[94, null]], "DOT files (aka Graphviz)": [[84, "dot-files-aka-graphviz"]], "Dailymotion": [[46, null]], "Dailymotion (Videos)": [[46, "dailymotion-videos"]], "Debian\u2019s Apache layout": [[6, "debian-s-apache-layout"]], "Debian\u2019s uWSGI layout": [[11, "debian-s-uwsgi-layout"]], "Definition list": [[84, "definition-list"]], "Demo Offline Engine": [[27, null]], "Demo Online Engine": [[28, null]], "DevOps tooling box": [[112, null]], "Developer documentation": [[79, null]], "Developing in Linux Containers": [[80, null]], "Development Quickstart": [[83, null]], "Disable logs": [[8, "disable-logs"]], "Discourse Forums": [[47, null]], "Distributors": [[11, "distributors"]], "Docker Container": [[7, null]], "Documentation": [[26, "documentation"]], "DuckDuckGo Engines": [[48, null]], "DuckDuckGo Extra (images, videos, news)": [[48, "duckduckgo-extra-images-videos-news"]], "DuckDuckGo Instant Answer API": [[48, "duckduckgo-instant-answer-api"]], "DuckDuckGo Lite": [[48, "duckduckgo-lite"]], "DuckDuckGo Weather": [[48, "duckduckgo-weather"]], "Elasticsearch": [[36, "module-searx.engines.elasticsearch"]], "Embed search bar": [[1, "embed-search-bar"]], "Enable Limiter": [[13, "enable-limiter"]], "Engine File": [[29, "engine-file"]], "Engine Implementations": [[32, null]], "Engine Library": [[30, null]], "Engine Overview": [[29, null]], "Engine Types": [[32, "engine-types"]], "Engine settings.yml": [[29, "engine-settings-yml"]], "Engine traits": [[30, "module-searx.enginelib.traits"]], "Example": [[34, "example"], [35, "example"], [35, "id4"], [36, "example"], [36, "id3"], [36, "id5"], [37, "example"], [37, "id4"], [37, "id7"], [37, "id9"], [47, "example"], [66, "example"], [78, "example"]], "Example plugin": [[82, "example-plugin"]], "Example: Multilingual Search": [[18, "example-multilingual-search"]], "External plugins": [[82, "external-plugins"]], "Extra Dependencies": [[35, "extra-dependencies"], [37, "extra-dependencies"], [38, "extra-dependencies"]], "Field List": [[84, null]], "Field Lists": [[84, "field-lists"]], "Figures & Images": [[84, "figures-images"]], "Framework Components": [[32, null]], "Fully functional SearXNG suite": [[80, null]], "Further list blocks": [[84, "further-list-blocks"]], "Further reading": [[2, null], [84, null], [84, null]], "Further reading ..": [[12, null], [14, null], [15, null], [18, null], [29, null], [82, null], [86, null], [109, null]], "Geizhals": [[49, null]], "General Engine Configuration": [[29, "general-engine-configuration"]], "Generic admonition": [[84, "generic-admonition"]], "Gentlemen, start your engines!": [[80, "gentlemen-start-your-engines"]], "Get Docker": [[7, "get-docker"]], "Get configuration data": [[1, "get-configuration-data"]], "Get started": [[85, "get-started"]], "GitLab": [[51, null]], "Gitea": [[50, null]], "Good to know": [[113, "good-to-know"]], "Google API": [[52, "google-api"]], "Google Autocomplete": [[52, "google-autocomplete"]], "Google Engines": [[52, null]], "Google Images": [[52, "module-searx.engines.google_images"]], "Google News": [[52, "module-searx.engines.google_news"]], "Google Scholar": [[52, "module-searx.engines.google_scholar"]], "Google Videos": [[52, "module-searx.engines.google_videos"]], "Google WEB": [[52, "module-searx.engines.google"]], "Grid tables": [[84, "grid-tables"]], "HTTP headers": [[6, null]], "Headings": [[84, "headings"]], "Horizontal list": [[84, "horizontal-list"]], "Hostnames plugin": [[99, null]], "How can I make it my own?": [[108, "how-can-i-make-it-my-own"]], "How do I set it as the default search engine?": [[108, "how-do-i-set-it-as-the-default-search-engine"]], "How does SearXNG protect privacy?": [[92, "how-does-searxng-protect-privacy"]], "How does it work?": [[108, "how-does-it-work"]], "How to contribute": [[26, null]], "How to inspect & debug": [[25, "how-to-inspect-debug"]], "How to update": [[25, "how-to-update"]], "I see. What about private instances?": [[92, "i-see-what-about-private-instances"]], "IP lists": [[95, "module-searx.botdetection.ip_lists"]], "If the engine_type is online": [[29, "id6"]], "If the engine_type is online_currency,\n in addition to the online arguments:": [[29, "id8"]], "If the engine_type is online_dictionary,\n in addition to the online arguments:": [[29, "id7"]], "If the engine_type is online_url_search,\n in addition to the online arguments:": [[29, "id9"]], "Image processing": [[84, null]], "Implementation": [[13, "implementation"], [50, "implementation"], [57, "implementation"]], "Implementations": [[33, "implementations"], [34, "implementations"], [35, "implementations"], [35, "id5"], [37, "implementations"], [37, "id5"], [37, "id8"], [37, "id10"], [40, "implementations"], [44, "implementations"], [45, "implementations"], [47, "implementations"], [51, "implementations"], [53, "implementations"], [62, "implementations"], [63, "implementations"], [64, "implementations"], [66, "implementations"], [67, "implementations"], [70, "implementations"], [74, "implementations"], [76, "implementations"], [78, "implementations"]], "In containers, work as usual": [[80, "in-containers-work-as-usual"]], "Inline markup": [[84, null]], "Install": [[114, "install"]], "Install LXD": [[113, "install-lxd"]], "Install SearXNG & dependencies": [[10, "install-searxng-dependencies"]], "Install packages": [[10, "install-packages"]], "Install suite": [[113, "install-suite"]], "Installation": [[5, null]], "Installation Script": [[9, null]], "Internet Connectivity & Docker": [[113, "internet-connectivity-docker"]], "Introduce asdf": [[85, "introduce-asdf"]], "Is running my own instance worth it?": [[92, null]], "KISS and readability": [[84, null]], "Known Quirks": [[62, "known-quirks"], [67, "known-quirks"]], "LaTeX math equation": [[84, null]], "Languages & Regions": [[63, "languages-regions"]], "Lemmy": [[53, null]], "Library of Congress": [[54, null]], "Limiter": [[13, null]], "Line spacing": [[84, null]], "Link ordinary URL": [[84, "link-ordinary-url"]], "Lint shell scripts": [[3, "lint-shell-scripts"]], "List markups": [[84, "list-markups"]], "List table": [[84, null]], "List tables": [[84, null]], "Literal block": [[84, null]], "Literal blocks": [[84, "literal-blocks"]], "Local Search APIs": [[36, null]], "Locales": [[98, null]], "Makefile & ./manage": [[81, null]], "Making a Request": [[29, "making-a-request"]], "Manage Versions": [[85, "manage-versions"]], "MariaDB": [[37, "mariadb"]], "Mastodon": [[55, null]], "Math equations": [[84, "math-equations"]], "Matrix Rooms Search (MRS)": [[57, null]], "MediaWiki Engine": [[33, null]], "MeiliSearch": [[36, "module-searx.engines.meilisearch"]], "Method http_accept": [[95, "method-http-accept"]], "Method http_accept_encoding": [[95, "method-http-accept-encoding"]], "Method http_accept_language": [[95, "method-http-accept-language"]], "Method http_connection": [[95, "method-http-connection"]], "Method http_user_agent": [[95, "method-http-user-agent"]], "Method ip_limit": [[95, "method-ip-limit"]], "Method ip_lists": [[95, "method-ip-lists"]], "Method link_token": [[95, "method-link-token"]], "Migrate and stay tuned!": [[25, "migrate-and-stay-tuned"]], "MongoDB": [[35, "engine-mongodb"]], "Motivation": [[80, "motivation"]], "Moviepilot": [[56, null]], "Mullvad-Leta": [[58, null]], "Mwmbl Autocomplete": [[59, "mwmbl-autocomplete"]], "Mwmbl Engine": [[59, null]], "Mwmbl WEB": [[59, "module-searx.engines.mwmbl"]], "MySQL": [[37, "engine-mysql-server"]], "NGINX": [[8, null]], "NGINX\u2019s SearXNG site": [[8, "nginx-s-searxng-site"]], "NVM make nvm.install nvm.status": [[81, "nvm-make-nvm-install-nvm-status"]], "Named hyperlink": [[84, null]], "Nested tables": [[84, null]], "NoSQL databases": [[35, null]], "Node.js environment (make node.env)": [[81, "node-js-environment-make-node-env"]], "Note ..": [[84, null]], "Odysee": [[60, null]], "Offline Concept": [[38, null]], "Offline Engines": [[32, "offline-engines"]], "Offline processor": [[105, "module-searx.search.processors.offline"]], "Online /info": [[97, null]], "Online Currency": [[32, "online-currency"]], "Online Dictionary": [[32, "online-dictionary"]], "Online Engines": [[32, "online-engines"]], "Online URL Search": [[32, "online-url-search"]], "Online URL search processor": [[105, "module-searx.search.processors.online_url_search"]], "Online currency processor": [[105, "module-searx.search.processors.online_currency"]], "Online dictionary processor": [[105, "module-searx.search.processors.online_dictionary"]], "Online processor": [[105, "module-searx.search.processors.online"]], "Origin uWSGI": [[11, "origin-uwsgi"]], "Overrides": [[29, "overrides"]], "Parameter of the default media type:": [[29, "id10"]], "Parameter of the images media type": [[29, "id11"]], "Parameter of the map media type:": [[29, "id14"]], "Parameter of the packages media type": [[29, "id16"]], "Parameter of the paper media type /\n see BibTeX field types and BibTeX format": [[29, "id15"]], "Parameter of the torrent media type:": [[29, "id13"]], "Parameter of the videos media type:": [[29, "id12"]], "Parameters": [[86, "parameters"]], "Passed Arguments (request)": [[29, "passed-arguments-request"]], "Peertube Engines": [[61, null]], "Peertube Video": [[61, "module-searx.engines.peertube"]], "Piped": [[62, null]], "Pitfalls of the Tyrant mode": [[11, "pitfalls-of-the-tyrant-mode"]], "Plugin entry points": [[82, "plugin-entry-points"]], "Plugins": [[82, null]], "Plugins builtin": [[12, null]], "Plugins configured at built time (defaults)": [[12, "id1"]], "PostgreSQL": [[37, "engine-postgresql"]], "Presearch Engine": [[63, null]], "Prime directives: Privacy, Hackability": [[26, "prime-directives-privacy-hackability"]], "Privacy-by-design": [[26, "privacy-by-design"]], "Private Engines (tokens)": [[18, "private-engines-tokens"]], "Private engines (Security)": [[38, "private-engines-security"]], "Probe HTTP headers": [[95, "module-searx.botdetection.http_accept"]], "Programming Interface": [[38, "programming-interface"]], "Python environment (make install)": [[81, "python-environment-make-install"]], "Quoted paragraph and line block": [[84, null]], "Quoted paragraphs": [[84, "quoted-paragraphs"]], "Qwant": [[64, null]], "RadioBrowser": [[65, null]], "Rate limit": [[95, "module-searx.botdetection.ip_limit"]], "Recoll Engine": [[66, null]], "Redis DB": [[102, null]], "Redis Developer Notes": [[21, "redis-developer-notes"]], "Redis Library": [[103, null]], "Redis Server": [[35, "redis-server"]], "Result Types (template)": [[29, "result-types-template"]], "Roles": [[84, "roles"]], "Running commands": [[113, "running-commands"]], "Runtime Management": [[85, null]], "SQL Engines": [[37, null]], "SQLite": [[37, "engine-sqlite"]], "Sample response": [[1, "sample-response"]], "SearXNG Exceptions": [[96, null]], "SearXNG LXC suite": [[113, "searxng-lxc-suite"]], "SearXNG maintenance": [[25, null]], "SearXNG suite config": [[113, "searxng-suite-config"]], "SearXNG\u2019s engines loader": [[31, null]], "SearXNG\u2019s locale codes": [[98, "module-searx.sxng_locales"]], "SearXNG\u2019s locale data": [[98, "searxngs-locale-data"]], "SearXNG\u2019s locale implementations": [[98, "searxngs-locale-implementations"]], "Search": [[104, null]], "Search API": [[86, null]], "Search processors": [[105, null]], "Search syntax": [[111, null]], "Search type video": [[63, "search-type-video"]], "Seekr Engines": [[67, null]], "SepiaSearch": [[61, "module-searx.engines.sepiasearch"]], "Settings": [[14, null]], "Settings Loader": [[106, null]], "Setup SearXNG buildhost": [[113, "setup-searxng-buildhost"]], "Sidebar": [[84, "sidebar"]], "Simple ASCII table": [[84, null]], "Simple tables": [[84, "simple-tables"]], "Smart refs": [[84, "smart-refs"]], "Soft skills": [[84, "soft-skills"]], "Solr": [[36, "module-searx.engines.solr"]], "Source-Code": [[93, null]], "Special Queries": [[111, "special-queries"]], "Specific admonitions": [[84, "specific-admonitions"]], "Specify Request": [[29, "specify-request"]], "Sphinx build needs": [[3, null]], "Startpage Engines": [[68, null]], "Startpage categories": [[68, "startpage-categories"]], "Startpage languages": [[68, "startpage-languages"]], "Startpage regions": [[68, "startpage-regions"]], "Step by step installation": [[10, null]], "Summary": [[80, "summary"]], "Syntax highlighting": [[84, null]], "Tabbed views": [[84, "tabbed-views"]], "Tables": [[84, "tables"]], "Tagesschau API": [[69, null]], "Templating": [[84, "templating"]], "The Apache HTTP server": [[6, "the-apache-http-server"]], "The naming of overrides is arbitrary / recommended overrides are:": [[29, "id5"]], "The nginx HTTP server": [[8, "the-nginx-http-server"]], "The reST sources": [[26, null]], "The searxng-archlinux container": [[80, null]], "Tineye": [[77, null]], "Tooling box searxng_extra": [[87, null]], "Tor check plugin": [[100, null]], "Torznab WebAPI": [[70, null]], "Translation": [[26, "translation"], [90, null]], "Unicode": [[84, null]], "Unicode substitution": [[84, "unicode-substitution"]], "Unit converter plugin": [[101, null]], "Update the OS first!": [[9, null]], "User information": [[110, null]], "Utility functions for the engines": [[107, null]], "Void Linux binary packages": [[71, null]], "Wallhaven": [[72, null]], "Warning": [[7, null]], "Welcome to SearXNG": [[91, null]], "What are the consequences of using public instances?": [[92, "what-are-the-consequences-of-using-public-instances"]], "Why use a private instance?": [[92, null]], "Why use it?": [[108, "why-use-it"]], "Wikidata": [[73, "module-searx.engines.wikidata"]], "Wikimedia": [[73, null]], "Wikipedia": [[73, "module-searx.engines.wikipedia"]], "Wrap production into developer suite": [[80, "wrap-production-into-developer-suite"]], "XPath Engine": [[78, null]], "Yacy": [[74, null]], "Yahoo Engine": [[75, null]], "Z-Library": [[76, null]], "activate environment": [[81, null]], "basic inline markup": [[84, "id4"]], "be a part": [[91, null]], "bibliographic fields": [[84, null]], "brand:": [[16, null]], "build environment": [[81, null]], "bullet list": [[84, null]], "categories_as_tabs:": [[17, null]], "code-block": [[84, "code-block"]], "default": [[29, "default"]], "definition list": [[84, null]], "deploy on github.io": [[26, "deploy-on-github-io"]], "disable logs": [[6, "disable-logs"]], "docker run": [[7, null], [7, null]], "docs.clean": [[26, null]], "drop environment": [[81, null]], "engine:": [[18, null]], "features": [[91, null]], "flask.Request.remote_addr": [[95, null]], "flat-table": [[84, "flat-table"]], "flat-table example": [[84, "id13"]], "foo gate truth table": [[84, "id11"]], "further read": [[6, null], [9, null], [9, null], [9, null], [25, null], [35, null], [36, null], [37, null], [80, null], [81, null], [81, null], [83, null], [83, null], [83, null], [113, null], [113, null]], "further reading": [[8, null], [11, null], [113, null], [114, null]], "general:": [[19, null]], "generic admonition title": [[84, null]], "grid table example": [[84, "id12"]], "group !apps": [[109, "group-apps"]], "group !lyrics": [[109, "group-lyrics"]], "group !packages": [[109, "group-packages"]], "group !q&a": [[109, "group-q-a"]], "group !radio": [[109, "group-radio"]], "group !repos": [[109, "group-repos"]], "group !scientific_publications": [[109, "group-scientific-publications"]], "group !software_wikis": [[109, "group-software-wikis"]], "group !translate": [[109, "group-translate"]], "group !web": [[109, "group-web"], [109, "id2"], [109, "id4"], [109, "id6"]], "group !wikimedia": [[109, "group-wikimedia"], [109, "id7"], [109, "id14"]], "hello.dot": [[84, null]], "hint": [[7, null], [113, null]], "hlist": [[84, null]], "images": [[29, "images"]], "info": [[7, null], [13, null], [18, null], [25, null], [32, null], [32, null], [32, null], [32, null], [32, null], [34, null], [34, null], [35, null], [35, null], [35, null], [36, null], [36, null], [36, null], [36, null], [37, null], [37, null], [37, null], [37, null], [37, null], [47, null], [66, "module-searx.engines.recoll"]], "kernel-render DOT": [[84, "kernel-render-dot"], [84, null]], "kernel-render SVG": [[84, "kernel-render-svg"], [84, null]], "limiter.toml": [[13, "limiter-toml"]], "live build": [[26, "live-build"]], "make clean": [[81, "make-clean"]], "make docs": [[81, "make-docs"]], "make docs.clean docs.live": [[81, "make-docs-clean-docs-live"]], "make docs.gh-pages": [[81, "make-docs-gh-pages"]], "make format.python": [[81, "make-format-python"]], "make nvm.nodejs": [[81, "make-nvm-nodejs"]], "make run": [[81, "make-run"]], "make search.checker.{engine name}": [[81, "make-search-checker-engine-name"]], "make static.build.*": [[81, "make-static-build"]], "make test": [[81, "make-test"]], "make test.pylint": [[81, "make-test-pylint"]], "make test.shell": [[81, "make-test-shell"]], "make themes.*": [[81, "make-themes"]], "map": [[29, "map"]], "offline engines": [[38, null]], "outgoing:": [[20, null]], "packages": [[29, "packages"]], "paper": [[29, "paper"]], "reST primer": [[84, null]], "reST template": [[84, "rest-template"]], "redis:": [[21, null]], "remove obsolete services": [[25, "remove-obsolete-services"]], "search:": [[22, null]], "searxng/searxng": [[7, "searxng-searxng"]], "searxng_extra/standalone_searx.py": [[88, null]], "searxng_extra/update/": [[89, null]], "server:": [[23, null]], "settings.yml": [[15, null]], "settings.yml location": [[15, "settings-yml-location"]], "shell inside container": [[7, "shell-inside-container"]], "smart refs with sphinx.ext.extlinks and intersphinx": [[84, "id5"], [84, "id6"]], "ssh manual:": [[0, null]], "tab !files": [[109, "tab-files"]], "tab !general": [[109, "tab-general"]], "tab !images": [[109, "tab-images"]], "tab !it": [[109, "tab-it"]], "tab !map": [[109, "tab-map"]], "tab !music": [[109, "tab-music"]], "tab !news": [[109, "tab-news"]], "tab !science": [[109, "tab-science"]], "tab !social_media": [[109, "tab-social-media"]], "tab !videos": [[109, "tab-videos"]], "the origin": [[91, null]], "torrent": [[29, "torrent"]], "translated": [[90, null]], "uWSGI": [[6, null], [11, null]], "uWSGI Setup": [[2, "uwsgi-setup"]], "uWSGI maintenance": [[11, "uwsgi-maintenance"]], "uWSGI setup": [[11, "uwsgi-setup"]], "ui:": [[24, null]], "update_ahmia_blacklist.py": [[89, "update-ahmia-blacklist-py"]], "update_currencies.py": [[89, "update-currencies-py"]], "update_engine_descriptions.py": [[89, "update-engine-descriptions-py"]], "update_engine_traits.py": [[89, "update-engine-traits-py"]], "update_external_bangs.py": [[89, "update-external-bangs-py"]], "update_firefox_version.py": [[89, "update-firefox-version-py"]], "update_locales.py": [[89, "update-locales-py"]], "update_osm_keys_tags.py": [[89, "update-osm-keys-tags-py"]], "update_pygments.py": [[89, "update-pygments-py"]], "update_wikidata_units.py": [[89, "update-wikidata-units-py"]], "use_default_settings": [[15, "use-default-settings"]], "use_default_settings: True": [[10, null]], "use_default_settings: true": [[15, null]], "utils/lxc.sh": [[113, null]], "utils/searxng.sh": [[114, null]], "videos": [[29, "videos"]], "without further subgrouping": [[109, "without-further-subgrouping"], [109, "id3"], [109, "id5"], [109, "id8"], [109, "id10"], [109, "id13"], [109, "id16"], [109, "id17"]], "wlc": [[90, "id2"]]}, "docnames": ["admin/answer-captcha", "admin/api", "admin/architecture", "admin/buildhosts", "admin/index", "admin/installation", "admin/installation-apache", "admin/installation-docker", "admin/installation-nginx", "admin/installation-scripts", "admin/installation-searxng", "admin/installation-uwsgi", "admin/plugins", "admin/searx.limiter", "admin/settings/index", "admin/settings/settings", "admin/settings/settings_brand", "admin/settings/settings_categories_as_tabs", "admin/settings/settings_engine", "admin/settings/settings_general", "admin/settings/settings_outgoing", "admin/settings/settings_redis", "admin/settings/settings_search", "admin/settings/settings_server", "admin/settings/settings_ui", "admin/update-searxng", "dev/contribution_guide", "dev/engines/demo/demo_offline", "dev/engines/demo/demo_online", "dev/engines/engine_overview", "dev/engines/enginelib", "dev/engines/engines", "dev/engines/index", "dev/engines/mediawiki", "dev/engines/offline/command-line-engines", "dev/engines/offline/nosql-engines", "dev/engines/offline/search-indexer-engines", "dev/engines/offline/sql-engines", "dev/engines/offline_concept", "dev/engines/online/alpinelinux", "dev/engines/online/annas_archive", "dev/engines/online/archlinux", "dev/engines/online/bing", "dev/engines/online/bpb", "dev/engines/online/brave", "dev/engines/online/bt4g", "dev/engines/online/dailymotion", "dev/engines/online/discourse", "dev/engines/online/duckduckgo", "dev/engines/online/geizhals", "dev/engines/online/gitea", "dev/engines/online/gitlab", "dev/engines/online/google", "dev/engines/online/lemmy", "dev/engines/online/loc", "dev/engines/online/mastodon", "dev/engines/online/moviepilot", "dev/engines/online/mrs", "dev/engines/online/mullvad_leta", "dev/engines/online/mwmbl", "dev/engines/online/odysee", "dev/engines/online/peertube", "dev/engines/online/piped", "dev/engines/online/presearch", "dev/engines/online/qwant", "dev/engines/online/radio_browser", "dev/engines/online/recoll", "dev/engines/online/seekr", "dev/engines/online/startpage", "dev/engines/online/tagesschau", "dev/engines/online/torznab", "dev/engines/online/void", "dev/engines/online/wallhaven", "dev/engines/online/wikipedia", "dev/engines/online/yacy", "dev/engines/online/yahoo", "dev/engines/online/zlibrary", "dev/engines/online_url_search/tineye", "dev/engines/xpath", "dev/index", "dev/lxcdev", "dev/makefile", "dev/plugins", "dev/quickstart", "dev/reST", "dev/rtm_asdf", "dev/search_api", "dev/searxng_extra/index", "dev/searxng_extra/standalone_searx.py", "dev/searxng_extra/update", "dev/translation", "index", "own-instance", "src/index", "src/searx.babel_extract", "src/searx.botdetection", "src/searx.exceptions", "src/searx.infopage", "src/searx.locales", "src/searx.plugins.hostnames", "src/searx.plugins.tor_check", "src/searx.plugins.unit_converter", "src/searx.redisdb", "src/searx.redislib", "src/searx.search", "src/searx.search.processors", "src/searx.settings", "src/searx.utils", "user/about", "user/configured_engines", "user/index", "user/search-syntax", "utils/index", "utils/lxc.sh", "utils/searxng.sh"], "envversion": {"sphinx": 62, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.viewcode": 1}, "filenames": ["admin/answer-captcha.rst", "admin/api.rst", "admin/architecture.rst", "admin/buildhosts.rst", "admin/index.rst", "admin/installation.rst", "admin/installation-apache.rst", "admin/installation-docker.rst", "admin/installation-nginx.rst", "admin/installation-scripts.rst", "admin/installation-searxng.rst", "admin/installation-uwsgi.rst", "admin/plugins.rst", "admin/searx.limiter.rst", "admin/settings/index.rst", "admin/settings/settings.rst", "admin/settings/settings_brand.rst", "admin/settings/settings_categories_as_tabs.rst", "admin/settings/settings_engine.rst", "admin/settings/settings_general.rst", "admin/settings/settings_outgoing.rst", "admin/settings/settings_redis.rst", "admin/settings/settings_search.rst", "admin/settings/settings_server.rst", "admin/settings/settings_ui.rst", "admin/update-searxng.rst", "dev/contribution_guide.rst", "dev/engines/demo/demo_offline.rst", "dev/engines/demo/demo_online.rst", "dev/engines/engine_overview.rst", "dev/engines/enginelib.rst", "dev/engines/engines.rst", "dev/engines/index.rst", "dev/engines/mediawiki.rst", "dev/engines/offline/command-line-engines.rst", "dev/engines/offline/nosql-engines.rst", "dev/engines/offline/search-indexer-engines.rst", "dev/engines/offline/sql-engines.rst", "dev/engines/offline_concept.rst", "dev/engines/online/alpinelinux.rst", "dev/engines/online/annas_archive.rst", "dev/engines/online/archlinux.rst", "dev/engines/online/bing.rst", "dev/engines/online/bpb.rst", "dev/engines/online/brave.rst", "dev/engines/online/bt4g.rst", "dev/engines/online/dailymotion.rst", "dev/engines/online/discourse.rst", "dev/engines/online/duckduckgo.rst", "dev/engines/online/geizhals.rst", "dev/engines/online/gitea.rst", "dev/engines/online/gitlab.rst", "dev/engines/online/google.rst", "dev/engines/online/lemmy.rst", "dev/engines/online/loc.rst", "dev/engines/online/mastodon.rst", "dev/engines/online/moviepilot.rst", "dev/engines/online/mrs.rst", "dev/engines/online/mullvad_leta.rst", "dev/engines/online/mwmbl.rst", "dev/engines/online/odysee.rst", "dev/engines/online/peertube.rst", "dev/engines/online/piped.rst", "dev/engines/online/presearch.rst", "dev/engines/online/qwant.rst", "dev/engines/online/radio_browser.rst", "dev/engines/online/recoll.rst", "dev/engines/online/seekr.rst", "dev/engines/online/startpage.rst", "dev/engines/online/tagesschau.rst", "dev/engines/online/torznab.rst", "dev/engines/online/void.rst", "dev/engines/online/wallhaven.rst", "dev/engines/online/wikipedia.rst", "dev/engines/online/yacy.rst", "dev/engines/online/yahoo.rst", "dev/engines/online/zlibrary.rst", "dev/engines/online_url_search/tineye.rst", "dev/engines/xpath.rst", "dev/index.rst", "dev/lxcdev.rst", "dev/makefile.rst", "dev/plugins.rst", "dev/quickstart.rst", "dev/reST.rst", "dev/rtm_asdf.rst", "dev/search_api.rst", "dev/searxng_extra/index.rst", "dev/searxng_extra/standalone_searx.py.rst", "dev/searxng_extra/update.rst", "dev/translation.rst", "index.rst", "own-instance.rst", "src/index.rst", "src/searx.babel_extract.rst", "src/searx.botdetection.rst", "src/searx.exceptions.rst", "src/searx.infopage.rst", "src/searx.locales.rst", "src/searx.plugins.hostnames.rst", "src/searx.plugins.tor_check.rst", "src/searx.plugins.unit_converter.rst", "src/searx.redisdb.rst", "src/searx.redislib.rst", "src/searx.search.rst", "src/searx.search.processors.rst", "src/searx.settings.rst", "src/searx.utils.rst", "user/about.rst", "user/configured_engines.rst", "user/index.rst", "user/search-syntax.rst", "utils/index.rst", "utils/lxc.sh.rst", "utils/searxng.sh.rst"], "indexentries": {"aa_content (in module searx.engines.annas_archive)": [[40, "searx.engines.annas_archive.aa_content", false]], "aa_ext (in module searx.engines.annas_archive)": [[40, "searx.engines.annas_archive.aa_ext", false]], "aa_sort (in module searx.engines.annas_archive)": [[40, "searx.engines.annas_archive.aa_sort", false]], "about (searx.enginelib.engine attribute)": [[30, "searx.enginelib.Engine.about", false]], "additional_translations (in module searx.locales)": [[98, "searx.locales.ADDITIONAL_TRANSLATIONS", false]], "additional_units (in module searx.plugins.unit_converter)": [[101, "searx.plugins.unit_converter.ADDITIONAL_UNITS", false]], "alias_symbols (in module searx.plugins.unit_converter)": [[101, "searx.plugins.unit_converter.ALIAS_SYMBOLS", false]], "all_locale (searx.enginelib.traits.enginetraits attribute)": [[30, "searx.enginelib.traits.EngineTraits.all_locale", false]], "alpine_arch (in module searx.engines.alpinelinux)": [[39, "searx.engines.alpinelinux.alpine_arch", false]], "api_key (in module searx.engines.discourse)": [[47, "searx.engines.discourse.api_key", false]], "api_key (in module searx.engines.seekr)": [[67, "searx.engines.seekr.api_key", false]], "api_key (in module searx.engines.wallhaven)": [[72, "searx.engines.wallhaven.api_key", false]], "api_max (in module searx.botdetection.ip_limit)": [[95, "searx.botdetection.ip_limit.API_MAX", false]], "api_order (in module searx.engines.discourse)": [[47, "searx.engines.discourse.api_order", false]], "api_path (in module searx.engines.gitlab)": [[51, "searx.engines.gitlab.api_path", false]], "api_path (in module searx.engines.mediawiki)": [[33, "searx.engines.mediawiki.api_path", false]], "api_url (in module searx.engines.qwant)": [[64, "searx.engines.qwant.api_url", false]], "api_username (in module searx.engines.discourse)": [[47, "searx.engines.discourse.api_username", false]], "api_window (in module searx.botdetection.ip_limit)": [[95, "searx.botdetection.ip_limit.API_WINDOW", false]], "arch_re (in module searx.engines.alpinelinux)": [[39, "searx.engines.alpinelinux.ARCH_RE", false]], "arch_re (in module searx.engines.voidlinux)": [[71, "searx.engines.voidlinux.ARCH_RE", false]], "area_to_str() (in module searx.engines.duckduckgo_definitions)": [[48, "searx.engines.duckduckgo_definitions.area_to_str", false]], "assign_headers() (in module searx.engines.mullvad_leta)": [[58, "searx.engines.mullvad_leta.assign_headers", false]], "backend_url (in module searx.engines.piped)": [[62, "searx.engines.piped.backend_url", false]], "base_url (in module searx.engines.bing)": [[42, "searx.engines.bing.base_url", false]], "base_url (in module searx.engines.bing_images)": [[42, "searx.engines.bing_images.base_url", false]], "base_url (in module searx.engines.bing_news)": [[42, "searx.engines.bing_news.base_url", false]], "base_url (in module searx.engines.bing_videos)": [[42, "searx.engines.bing_videos.base_url", false]], "base_url (in module searx.engines.discourse)": [[47, "searx.engines.discourse.base_url", false]], "base_url (in module searx.engines.gitea)": [[50, "searx.engines.gitea.base_url", false]], "base_url (in module searx.engines.gitlab)": [[51, "searx.engines.gitlab.base_url", false]], "base_url (in module searx.engines.lemmy)": [[53, "searx.engines.lemmy.base_url", false]], "base_url (in module searx.engines.mediawiki)": [[33, "searx.engines.mediawiki.base_url", false]], "base_url (in module searx.engines.peertube)": [[61, "searx.engines.peertube.base_url", false]], "base_url (in module searx.engines.yacy)": [[74, "searx.engines.yacy.base_url", false]], "block_ip() (in module searx.botdetection.ip_lists)": [[95, "searx.botdetection.ip_lists.block_ip", false]], "brave_spellcheck (in module searx.engines.brave)": [[44, "searx.engines.brave.brave_spellcheck", false]], "bt4g_category (in module searx.engines.bt4g)": [[45, "searx.engines.bt4g.bt4g_category", false]], "bt4g_order_by (in module searx.engines.bt4g)": [[45, "searx.engines.bt4g.bt4g_order_by", false]], "build_engine_locales() (in module searx.locales)": [[98, "searx.locales.build_engine_locales", false]], "build_result() (in module searx.engines.torznab)": [[70, "searx.engines.torznab.build_result", false]], "built-in function": [[82, "on_result", false], [82, "post_search", false], [82, "pre_search", false]], "burst_max (in module searx.botdetection.ip_limit)": [[95, "searx.botdetection.ip_limit.BURST_MAX", false]], "burst_max_suspicious (in module searx.botdetection.ip_limit)": [[95, "searx.botdetection.ip_limit.BURST_MAX_SUSPICIOUS", false]], "burst_window (in module searx.botdetection.ip_limit)": [[95, "searx.botdetection.ip_limit.BURST_WINDOW", false]], "cache_vqd() (in module searx.engines.duckduckgo)": [[48, "searx.engines.duckduckgo.cache_vqd", false]], "categories (searx.enginelib.engine attribute)": [[30, "searx.enginelib.Engine.categories", false]], "ceid_list (in module searx.engines.google_news)": [[52, "searx.engines.google_news.ceid_list", false]], "check_parsing_options() (in module searx.engines.command)": [[34, "searx.engines.command.check_parsing_options", false]], "config (class in searx.botdetection.config)": [[95, "searx.botdetection.config.Config", false]], "content (searx.infopage.infopage property)": [[97, "searx.infopage.InfoPage.content", false]], "content_xpath (in module searx.engines.xpath)": [[78, "searx.engines.xpath.content_xpath", false]], "convert_str_to_int() (in module searx.utils)": [[107, "searx.utils.convert_str_to_int", false]], "cookies (in module searx.engines.xpath)": [[78, "searx.engines.xpath.cookies", false]], "copy() (searx.enginelib.traits.enginetraits method)": [[30, "searx.enginelib.traits.EngineTraits.copy", false]], "custom (searx.enginelib.traits.enginetraits attribute)": [[30, "searx.enginelib.traits.EngineTraits.custom", false]], "data_type (searx.enginelib.traits.enginetraits attribute)": [[30, "searx.enginelib.traits.EngineTraits.data_type", false]], "database (in module searx.engines.mariadb_server)": [[37, "searx.engines.mariadb_server.database", false]], "database (in module searx.engines.mysql_server)": [[37, "searx.engines.mysql_server.database", false]], "database (in module searx.engines.postgresql)": [[37, "searx.engines.postgresql.database", false]], "database (in module searx.engines.sqlite)": [[37, "searx.engines.sqlite.database", false]], "ddg_category (in module searx.engines.duckduckgo_extra)": [[48, "searx.engines.duckduckgo_extra.ddg_category", false]], "default() (searx.botdetection.config.config method)": [[95, "searx.botdetection.config.Config.default", false]], "default() (searx.enginelib.traits.enginetraitsencoder method)": [[30, "searx.enginelib.traits.EngineTraitsEncoder.default", false]], "default_request_params() (in module searx.search.processors.online)": [[105, "searx.search.processors.online.default_request_params", false]], "default_settings_file (in module searx.settings_loader)": [[106, "searx.settings_loader.DEFAULT_SETTINGS_FILE", false]], "description (in module searx.plugins.tor_check)": [[100, "searx.plugins.tor_check.description", false]], "detect_google_captcha() (in module searx.engines.google_scholar)": [[52, "searx.engines.google_scholar.detect_google_captcha", false]], "detect_language() (in module searx.utils)": [[107, "searx.utils.detect_language", false]], "dict_subset() (in module searx.utils)": [[107, "searx.utils.dict_subset", false]], "disabled (searx.enginelib.engine attribute)": [[30, "searx.enginelib.Engine.disabled", false]], "display_error_messages (searx.enginelib.engine attribute)": [[30, "searx.enginelib.Engine.display_error_messages", false]], "display_type (in module searx.engines.wikidata)": [[73, "searx.engines.wikidata.display_type", false]], "display_type (in module searx.engines.wikipedia)": [[73, "searx.engines.wikipedia.display_type", false]], "download_error (in module searx.engines.tineye)": [[77, "searx.engines.tineye.DOWNLOAD_ERROR", false]], "drop_counter() (in module searx.redislib)": [[103, "searx.redislib.drop_counter", false]], "ecma_unescape() (in module searx.utils)": [[107, "searx.utils.ecma_unescape", false]], "enable_http (searx.enginelib.engine attribute)": [[30, "searx.enginelib.Engine.enable_http", false]], "engine (class in searx.enginelib)": [[30, "searx.enginelib.Engine", false]], "engine (searx.enginelib.engine attribute)": [[30, "searx.enginelib.Engine.engine", false]], "engine_shortcuts (in module searx.engines)": [[31, "searx.engines.engine_shortcuts", false]], "engine_traits_file (searx.enginelib.traits.enginetraitsmap attribute)": [[30, "searx.enginelib.traits.EngineTraitsMap.ENGINE_TRAITS_FILE", false]], "engine_type (in module searx.engines.tineye)": [[77, "searx.engines.tineye.engine_type", false]], "engine_type (searx.enginelib.engine attribute)": [[30, "searx.enginelib.Engine.engine_type", false]], "engineprocessor (class in searx.search.processors.abstract)": [[105, "searx.search.processors.abstract.EngineProcessor", false]], "engineref (class in searx.search)": [[104, "searx.search.EngineRef", false]], "enginetraits (class in searx.enginelib.traits)": [[30, "searx.enginelib.traits.EngineTraits", false]], "enginetraitsencoder (class in searx.enginelib.traits)": [[30, "searx.enginelib.traits.EngineTraitsEncoder", false]], "enginetraitsmap (class in searx.enginelib.traits)": [[30, "searx.enginelib.traits.EngineTraitsMap", false]], "eval_xpath() (in module searx.utils)": [[107, "searx.utils.eval_xpath", false]], "eval_xpath_getindex() (in module searx.utils)": [[107, "searx.utils.eval_xpath_getindex", false]], "eval_xpath_list() (in module searx.utils)": [[107, "searx.utils.eval_xpath_list", false]], "extr() (in module searx.utils)": [[107, "searx.utils.extr", false]], "extract() (in module searx.babel_extract)": [[94, "searx.babel_extract.extract", false]], "extract_text() (in module searx.utils)": [[107, "searx.utils.extract_text", false]], "extract_url() (in module searx.utils)": [[107, "searx.utils.extract_url", false]], "family_filter_map (in module searx.engines.dailymotion)": [[46, "searx.engines.dailymotion.family_filter_map", false]], "fetch_traits (searx.enginelib.engine attribute)": [[30, "searx.enginelib.Engine.fetch_traits", false]], "fetch_traits() (in module searx.engines.annas_archive)": [[40, "searx.engines.annas_archive.fetch_traits", false]], "fetch_traits() (in module searx.engines.archlinux)": [[41, "searx.engines.archlinux.fetch_traits", false]], "fetch_traits() (in module searx.engines.bing)": [[42, "searx.engines.bing.fetch_traits", false]], "fetch_traits() (in module searx.engines.bing_news)": [[42, "searx.engines.bing_news.fetch_traits", false]], "fetch_traits() (in module searx.engines.brave)": [[44, "searx.engines.brave.fetch_traits", false]], "fetch_traits() (in module searx.engines.dailymotion)": [[46, "searx.engines.dailymotion.fetch_traits", false]], "fetch_traits() (in module searx.engines.duckduckgo)": [[48, "searx.engines.duckduckgo.fetch_traits", false]], "fetch_traits() (in module searx.engines.google)": [[52, "searx.engines.google.fetch_traits", false]], "fetch_traits() (in module searx.engines.mullvad_leta)": [[58, "searx.engines.mullvad_leta.fetch_traits", false]], "fetch_traits() (in module searx.engines.odysee)": [[60, "searx.engines.odysee.fetch_traits", false]], "fetch_traits() (in module searx.engines.peertube)": [[61, "searx.engines.peertube.fetch_traits", false]], "fetch_traits() (in module searx.engines.radio_browser)": [[65, "searx.engines.radio_browser.fetch_traits", false]], "fetch_traits() (in module searx.engines.startpage)": [[68, "searx.engines.startpage.fetch_traits", false]], "fetch_traits() (in module searx.engines.wikidata)": [[73, "searx.engines.wikidata.fetch_traits", false]], "fetch_traits() (in module searx.engines.yahoo)": [[75, "searx.engines.yahoo.fetch_traits", false]], "fetch_traits() (in module searx.engines.zlibrary)": [[76, "searx.engines.zlibrary.fetch_traits", false]], "fetch_traits() (searx.enginelib.traits.enginetraits class method)": [[30, "searx.enginelib.traits.EngineTraits.fetch_traits", false]], "fetch_wikimedia_traits() (in module searx.engines.wikipedia)": [[73, "searx.engines.wikipedia.fetch_wikimedia_traits", false]], "first_page_num (in module searx.engines.xpath)": [[78, "searx.engines.xpath.first_page_num", false]], "folder (searx.infopage.infopageset attribute)": [[97, "searx.infopage.InfoPageSet.folder", false]], "format_not_supported (in module searx.engines.tineye)": [[77, "searx.engines.tineye.FORMAT_NOT_SUPPORTED", false]], "from_data() (searx.enginelib.traits.enginetraitsmap class method)": [[30, "searx.enginelib.traits.EngineTraitsMap.from_data", false]], "frontend_url (in module searx.engines.piped)": [[62, "searx.engines.piped.frontend_url", false]], "gen_useragent() (in module searx.utils)": [[107, "searx.utils.gen_useragent", false]], "get() (searx.botdetection.config.config method)": [[95, "searx.botdetection.config.Config.get", false]], "get_attribute() (in module searx.engines.torznab)": [[70, "searx.engines.torznab.get_attribute", false]], "get_ctx() (searx.infopage.infopage method)": [[97, "searx.infopage.InfoPage.get_ctx", false]], "get_ddg_lang() (in module searx.engines.duckduckgo)": [[48, "searx.engines.duckduckgo.get_ddg_lang", false]], "get_embeded_stream_url() (in module searx.utils)": [[107, "searx.utils.get_embeded_stream_url", false]], "get_engine_from_settings() (in module searx.utils)": [[107, "searx.utils.get_engine_from_settings", false]], "get_engine_locale() (in module searx.locales)": [[98, "searx.locales.get_engine_locale", false]], "get_google_info() (in module searx.engines.google)": [[52, "searx.engines.google.get_google_info", false]], "get_language() (searx.enginelib.traits.enginetraits method)": [[30, "searx.enginelib.traits.EngineTraits.get_language", false]], "get_locale() (in module searx.locales)": [[98, "searx.locales.get_locale", false]], "get_network() (in module searx.botdetection)": [[95, "searx.botdetection.get_network", false]], "get_official_locales() (in module searx.locales)": [[98, "searx.locales.get_official_locales", false]], "get_page() (searx.infopage.infopageset method)": [[97, "searx.infopage.InfoPageSet.get_page", false]], "get_params() (searx.search.processors.abstract.engineprocessor method)": [[105, "searx.search.processors.abstract.EngineProcessor.get_params", false]], "get_params() (searx.search.processors.online.onlineprocessor method)": [[105, "searx.search.processors.online.OnlineProcessor.get_params", false]], "get_params() (searx.search.processors.online_currency.onlinecurrencyprocessor method)": [[105, "searx.search.processors.online_currency.OnlineCurrencyProcessor.get_params", false]], "get_params() (searx.search.processors.online_dictionary.onlinedictionaryprocessor method)": [[105, "searx.search.processors.online_dictionary.OnlineDictionaryProcessor.get_params", false]], "get_params() (searx.search.processors.online_url_search.onlineurlsearchprocessor method)": [[105, "searx.search.processors.online_url_search.OnlineUrlSearchProcessor.get_params", false]], "get_ping_key() (in module searx.botdetection.link_token)": [[95, "searx.botdetection.link_token.get_ping_key", false]], "get_real_ip() (in module searx.botdetection)": [[95, "searx.botdetection.get_real_ip", false]], "get_region() (searx.enginelib.traits.enginetraits method)": [[30, "searx.enginelib.traits.EngineTraits.get_region", false]], "get_sc_code() (in module searx.engines.startpage)": [[68, "searx.engines.startpage.get_sc_code", false]], "get_thumbnail() (in module searx.engines.wikidata)": [[73, "searx.engines.wikidata.get_thumbnail", false]], "get_token() (in module searx.botdetection.link_token)": [[95, "searx.botdetection.link_token.get_token", false]], "get_torznab_attribute() (in module searx.engines.torznab)": [[70, "searx.engines.torznab.get_torznab_attribute", false]], "get_translation_locales() (in module searx.locales)": [[98, "searx.locales.get_translation_locales", false]], "get_translations() (in module searx.locales)": [[98, "searx.locales.get_translations", false]], "get_user_cfg_folder() (in module searx.settings_loader)": [[106, "searx.settings_loader.get_user_cfg_folder", false]], "get_vqd() (in module searx.engines.duckduckgo)": [[48, "searx.engines.duckduckgo.get_vqd", false]], "get_wiki_params() (in module searx.engines.wikipedia)": [[73, "searx.engines.wikipedia.get_wiki_params", false]], "get_xpath() (in module searx.utils)": [[107, "searx.utils.get_xpath", false]], "get_yaml_cfg() (in module searx.settings_loader)": [[106, "searx.settings_loader.get_yaml_cfg", false]], "goggles (in module searx.engines.brave)": [[44, "searx.engines.brave.Goggles", false]], "google_complete() (in module searx.autocomplete)": [[52, "searx.autocomplete.google_complete", false]], "headers (in module searx.engines.xpath)": [[78, "searx.engines.xpath.headers", false]], "host (in module searx.engines.mariadb_server)": [[37, "searx.engines.mariadb_server.host", false]], "host (in module searx.engines.mysql_server)": [[37, "searx.engines.mysql_server.host", false]], "host (in module searx.engines.postgresql)": [[37, "searx.engines.postgresql.host", false]], "html (searx.infopage.infopage property)": [[97, "searx.infopage.InfoPage.html", false]], "html_to_text() (in module searx.utils)": [[107, "searx.utils.html_to_text", false]], "http_digest_auth_pass (in module searx.engines.yacy)": [[74, "searx.engines.yacy.http_digest_auth_pass", false]], "http_digest_auth_user (in module searx.engines.yacy)": [[74, "searx.engines.yacy.http_digest_auth_user", false]], "humanize_bytes() (in module searx.utils)": [[107, "searx.utils.humanize_bytes", false]], "humanize_number() (in module searx.utils)": [[107, "searx.utils.humanize_number", false]], "iframe_src (in module searx.engines.dailymotion)": [[46, "searx.engines.dailymotion.iframe_src", false]], "inactive (searx.enginelib.engine attribute)": [[30, "searx.enginelib.Engine.inactive", false]], "incr_counter() (in module searx.redislib)": [[103, "searx.redislib.incr_counter", false]], "incr_sliding_window() (in module searx.redislib)": [[103, "searx.redislib.incr_sliding_window", false]], "infopage (class in searx.infopage)": [[97, "searx.infopage.InfoPage", false]], "infopageset (class in searx.infopage)": [[97, "searx.infopage.InfoPageSet", false]], "init() (in module searx.engines.annas_archive)": [[40, "searx.engines.annas_archive.init", false]], "init() (in module searx.engines.demo_offline)": [[27, "searx.engines.demo_offline.init", false]], "init() (in module searx.engines.demo_online)": [[28, "searx.engines.demo_online.init", false]], "init() (in module searx.engines.mrs)": [[57, "searx.engines.mrs.init", false]], "init() (in module searx.engines.torznab)": [[70, "searx.engines.torznab.init", false]], "init() (in module searx.engines.zlibrary)": [[76, "searx.engines.zlibrary.init", false]], "initialize() (in module searx.limiter)": [[13, "searx.limiter.initialize", false]], "int_or_zero() (in module searx.utils)": [[107, "searx.utils.int_or_zero", false]], "is_broken_text() (in module searx.engines.duckduckgo_definitions)": [[48, "searx.engines.duckduckgo_definitions.is_broken_text", false]], "is_installed() (in module searx.limiter)": [[13, "searx.limiter.is_installed", false]], "is_locale_supported() (searx.enginelib.traits.enginetraits method)": [[30, "searx.enginelib.traits.EngineTraits.is_locale_supported", false]], "is_missing_required_attributes() (in module searx.engines)": [[31, "searx.engines.is_missing_required_attributes", false]], "is_suspicious() (in module searx.botdetection.link_token)": [[95, "searx.botdetection.link_token.is_suspicious", false]], "is_valid_lang() (in module searx.utils)": [[107, "searx.utils.is_valid_lang", false]], "is_vpn_connected() (in module searx.engines.mullvad_leta)": [[58, "searx.engines.mullvad_leta.is_vpn_connected", false]], "iter_pages() (searx.infopage.infopageset method)": [[97, "searx.infopage.InfoPageSet.iter_pages", false]], "js_variable_to_python() (in module searx.utils)": [[107, "searx.utils.js_variable_to_python", false]], "lang2domain (in module searx.engines.yahoo)": [[75, "searx.engines.yahoo.lang2domain", false]], "lang_all (in module searx.engines.xpath)": [[78, "searx.engines.xpath.lang_all", false]], "language (searx.enginelib.engine attribute)": [[30, "searx.enginelib.Engine.language", false]], "language_support (searx.enginelib.engine attribute)": [[30, "searx.enginelib.Engine.language_support", false]], "language_tag() (in module searx.locales)": [[98, "searx.locales.language_tag", false]], "languages (searx.enginelib.traits.enginetraits attribute)": [[30, "searx.enginelib.traits.EngineTraits.languages", false]], "lemmy_type (in module searx.engines.lemmy)": [[53, "searx.engines.lemmy.lemmy_type", false]], "limiter_cfg (in module searx.limiter)": [[13, "searx.limiter.LIMITER_CFG", false]], "limiter_cfg_schema (in module searx.limiter)": [[13, "searx.limiter.LIMITER_CFG_SCHEMA", false]], "list_of_wikipedias (in module searx.engines.wikipedia)": [[73, "searx.engines.wikipedia.list_of_wikipedias", false]], "load_engine() (in module searx.engines)": [[31, "searx.engines.load_engine", false]], "load_engines() (in module searx.engines)": [[31, "searx.engines.load_engines", false]], "load_settings() (in module searx.settings_loader)": [[106, "searx.settings_loader.load_settings", false]], "load_yaml() (in module searx.settings_loader)": [[106, "searx.settings_loader.load_yaml", false]], "locale_best_match (in module searx.locales)": [[98, "searx.locales.LOCALE_BEST_MATCH", false]], "locale_default (searx.infopage.infopageset attribute)": [[97, "searx.infopage.InfoPageSet.locale_default", false]], "locale_names (in module searx.locales)": [[98, "searx.locales.LOCALE_NAMES", false]], "locales (searx.infopage.infopageset attribute)": [[97, "searx.infopage.InfoPageSet.locales", false]], "locales_initialize() (in module searx.locales)": [[98, "searx.locales.locales_initialize", false]], "long_max (in module searx.botdetection.ip_limit)": [[95, "searx.botdetection.ip_limit.LONG_MAX", false]], "long_max_suspicious (in module searx.botdetection.ip_limit)": [[95, "searx.botdetection.ip_limit.LONG_MAX_SUSPICIOUS", false]], "long_window (in module searx.botdetection.ip_limit)": [[95, "searx.botdetection.ip_limit.LONG_WINDOW", false]], "lua_script_storage (in module searx.redislib)": [[103, "searx.redislib.LUA_SCRIPT_STORAGE", false]], "lua_script_storage() (in module searx.redislib)": [[103, "searx.redislib.lua_script_storage", false]], "markdown_to_text() (in module searx.utils)": [[107, "searx.utils.markdown_to_text", false]], "match_locale() (in module searx.locales)": [[98, "searx.locales.match_locale", false]], "max_page (in module searx.engines.bing)": [[42, "searx.engines.bing.max_page", false]], "max_page (in module searx.engines.brave)": [[44, "searx.engines.brave.max_page", false]], "max_page (in module searx.engines.qwant)": [[64, "searx.engines.qwant.max_page", false]], "max_page (in module searx.engines.startpage)": [[68, "searx.engines.startpage.max_page", false]], "module": [[13, "module-searx.limiter", false], [27, "module-searx.engines.demo_offline", false], [28, "module-searx.engines.demo_online", false], [30, "module-searx.enginelib", false], [30, "module-searx.enginelib.traits", false], [31, "module-searx.engines", false], [33, "module-searx.engines.mediawiki", false], [34, "module-searx.engines.command", false], [35, "module-searx.engines.mongodb", false], [35, "module-searx.engines.redis_server", false], [36, "module-searx.engines.elasticsearch", false], [36, "module-searx.engines.meilisearch", false], [36, "module-searx.engines.solr", false], [37, "module-searx.engines.mariadb_server", false], [37, "module-searx.engines.mysql_server", false], [37, "module-searx.engines.postgresql", false], [37, "module-searx.engines.sqlite", false], [39, "module-searx.engines.alpinelinux", false], [40, "module-searx.engines.annas_archive", false], [41, "module-searx.engines.archlinux", false], [42, "module-searx.engines.bing", false], [42, "module-searx.engines.bing_images", false], [42, "module-searx.engines.bing_news", false], [42, "module-searx.engines.bing_videos", false], [43, "module-searx.engines.bpb", false], [44, "module-searx.engines.brave", false], [45, "module-searx.engines.bt4g", false], [46, "module-searx.engines.dailymotion", false], [47, "module-searx.engines.discourse", false], [48, "module-searx.engines.duckduckgo", false], [48, "module-searx.engines.duckduckgo_definitions", false], [48, "module-searx.engines.duckduckgo_extra", false], [48, "module-searx.engines.duckduckgo_weather", false], [49, "module-searx.engines.geizhals", false], [50, "module-searx.engines.gitea", false], [51, "module-searx.engines.gitlab", false], [52, "module-searx.engines.google", false], [52, "module-searx.engines.google_images", false], [52, "module-searx.engines.google_news", false], [52, "module-searx.engines.google_scholar", false], [52, "module-searx.engines.google_videos", false], [53, "module-searx.engines.lemmy", false], [54, "module-searx.engines.loc", false], [55, "module-searx.engines.mastodon", false], [56, "module-searx.engines.moviepilot", false], [57, "module-searx.engines.mrs", false], [58, "module-searx.engines.mullvad_leta", false], [59, "module-searx.engines.mwmbl", false], [60, "module-searx.engines.odysee", false], [61, "module-searx.engines.peertube", false], [61, "module-searx.engines.sepiasearch", false], [62, "module-searx.engines.piped", false], [63, "module-searx.engines.presearch", false], [64, "module-searx.engines.qwant", false], [65, "module-searx.engines.radio_browser", false], [66, "module-searx.engines.recoll", false], [67, "module-searx.engines.seekr", false], [68, "module-searx.engines.startpage", false], [69, "module-searx.engines.tagesschau", false], [70, "module-searx.engines.torznab", false], [71, "module-searx.engines.voidlinux", false], [72, "module-searx.engines.wallhaven", false], [73, "module-searx.engines.wikidata", false], [73, "module-searx.engines.wikipedia", false], [74, "module-searx.engines.yacy", false], [75, "module-searx.engines.yahoo", false], [76, "module-searx.engines.zlibrary", false], [77, "module-searx.engines.tineye", false], [78, "module-searx.engines.xpath", false], [94, "module-searx.babel_extract", false], [95, "module-searx.botdetection", false], [95, "module-searx.botdetection.config", false], [95, "module-searx.botdetection.http_accept", false], [95, "module-searx.botdetection.http_accept_encoding", false], [95, "module-searx.botdetection.http_accept_language", false], [95, "module-searx.botdetection.http_connection", false], [95, "module-searx.botdetection.http_user_agent", false], [95, "module-searx.botdetection.ip_limit", false], [95, "module-searx.botdetection.ip_lists", false], [95, "module-searx.botdetection.link_token", false], [96, "module-searx.exceptions", false], [97, "module-searx.infopage", false], [98, "module-searx.locales", false], [98, "module-searx.sxng_locales", false], [99, "module-searx.plugins.hostnames", false], [100, "module-searx.plugins.tor_check", false], [101, "module-searx.plugins.unit_converter", false], [102, "module-searx.redisdb", false], [103, "module-searx.redislib", false], [105, "module-searx.search.processors.abstract", false], [105, "module-searx.search.processors.offline", false], [105, "module-searx.search.processors.online", false], [105, "module-searx.search.processors.online_currency", false], [105, "module-searx.search.processors.online_dictionary", false], [105, "module-searx.search.processors.online_url_search", false], [106, "module-searx.settings_loader", false], [107, "module-searx.utils", false]], "mwmbl() (in module searx.autocomplete)": [[59, "searx.autocomplete.mwmbl", false]], "name (in module searx.plugins.tor_check)": [[100, "searx.plugins.tor_check.name", false]], "name (searx.enginelib.engine attribute)": [[30, "searx.enginelib.Engine.name", false]], "no_result_for_http_status (in module searx.engines.xpath)": [[78, "searx.engines.xpath.no_result_for_http_status", false]], "no_signature_error (in module searx.engines.tineye)": [[77, "searx.engines.tineye.NO_SIGNATURE_ERROR", false]], "normalize_url() (in module searx.utils)": [[107, "searx.utils.normalize_url", false]], "offlineprocessor (class in searx.search.processors.offline)": [[105, "searx.search.processors.offline.OfflineProcessor", false]], "old_redis_url_default_url (in module searx.redisdb)": [[102, "searx.redisdb.OLD_REDIS_URL_DEFAULT_URL", false]], "on_result()": [[82, "on_result", false]], "onlinecurrencyprocessor (class in searx.search.processors.online_currency)": [[105, "searx.search.processors.online_currency.OnlineCurrencyProcessor", false]], "onlinedictionaryprocessor (class in searx.search.processors.online_dictionary)": [[105, "searx.search.processors.online_dictionary.OnlineDictionaryProcessor", false]], "onlineprocessor (class in searx.search.processors.online)": [[105, "searx.search.processors.online.OnlineProcessor", false]], "onlineurlsearchprocessor (class in searx.search.processors.online_url_search)": [[105, "searx.search.processors.online_url_search.OnlineUrlSearchProcessor", false]], "order (in module searx.engines.gitea)": [[50, "searx.engines.gitea.order", false]], "ordered_plugin_list (searx.search.searchwithplugins attribute)": [[104, "searx.search.SearchWithPlugins.ordered_plugin_list", false]], "page_size (in module searx.engines.gitea)": [[50, "searx.engines.gitea.page_size", false]], "page_size (in module searx.engines.xpath)": [[78, "searx.engines.xpath.page_size", false]], "paging (in module searx.engines.bing_news)": [[42, "searx.engines.bing_news.paging", false]], "paging (in module searx.engines.brave)": [[44, "searx.engines.brave.paging", false]], "paging (in module searx.engines.xpath)": [[78, "searx.engines.xpath.paging", false]], "paging (searx.enginelib.engine attribute)": [[30, "searx.enginelib.Engine.paging", false]], "parse_gs_a() (in module searx.engines.google_scholar)": [[52, "searx.engines.google_scholar.parse_gs_a", false]], "parse_tineye_match() (in module searx.engines.tineye)": [[77, "searx.engines.tineye.parse_tineye_match", false]], "parse_url() (in module searx.engines.yahoo)": [[75, "searx.engines.yahoo.parse_url", false]], "parse_web_api() (in module searx.engines.qwant)": [[64, "searx.engines.qwant.parse_web_api", false]], "parse_web_lite() (in module searx.engines.qwant)": [[64, "searx.engines.qwant.parse_web_lite", false]], "pass_ip() (in module searx.botdetection.ip_lists)": [[95, "searx.botdetection.ip_lists.pass_ip", false]], "password (in module searx.engines.mariadb_server)": [[37, "searx.engines.mariadb_server.password", false]], "password (in module searx.engines.mysql_server)": [[37, "searx.engines.mysql_server.password", false]], "password (in module searx.engines.postgresql)": [[37, "searx.engines.postgresql.password", false]], "path() (searx.botdetection.config.config method)": [[95, "searx.botdetection.config.Config.path", false]], "pep 8": [[84, "index-1", false]], "ping() (in module searx.botdetection.link_token)": [[95, "searx.botdetection.link_token.ping", false]], "ping_key (in module searx.botdetection.link_token)": [[95, "searx.botdetection.link_token.PING_KEY", false]], "ping_live_time (in module searx.botdetection.link_token)": [[95, "searx.botdetection.link_token.PING_LIVE_TIME", false]], "piped_filter (in module searx.engines.piped)": [[62, "searx.engines.piped.piped_filter", false]], "port (in module searx.engines.mariadb_server)": [[37, "searx.engines.mariadb_server.port", false]], "port (in module searx.engines.mysql_server)": [[37, "searx.engines.mysql_server.port", false]], "port (in module searx.engines.postgresql)": [[37, "searx.engines.postgresql.port", false]], "post_search()": [[82, "post_search", false]], "pre_request() (in module searx.limiter)": [[13, "searx.limiter.pre_request", false]], "pre_search()": [[82, "pre_search", false]], "preference_section (in module searx.plugins.tor_check)": [[100, "searx.plugins.tor_check.preference_section", false]], "proxies (searx.enginelib.engine attribute)": [[30, "searx.enginelib.Engine.proxies", false]], "purge_by_prefix() (in module searx.redislib)": [[103, "searx.redislib.purge_by_prefix", false]], "pyobj() (searx.botdetection.config.config method)": [[95, "searx.botdetection.config.Config.pyobj", false]], "python enhancement proposals": [[84, "index-1", false]], "query_examples (in module searx.plugins.tor_check)": [[100, "searx.plugins.tor_check.query_examples", false]], "query_keywords (in module searx.plugins.tor_check)": [[100, "searx.plugins.tor_check.query_keywords", false]], "query_str (in module searx.engines.mariadb_server)": [[37, "searx.engines.mariadb_server.query_str", false]], "query_str (in module searx.engines.mysql_server)": [[37, "searx.engines.mysql_server.query_str", false]], "query_str (in module searx.engines.postgresql)": [[37, "searx.engines.postgresql.query_str", false]], "query_str (in module searx.engines.sqlite)": [[37, "searx.engines.sqlite.query_str", false]], "qwant_categ (in module searx.engines.qwant)": [[64, "searx.engines.qwant.qwant_categ", false]], "raw_content (searx.infopage.infopage property)": [[97, "searx.infopage.InfoPage.raw_content", false]], "region (searx.enginelib.engine attribute)": [[30, "searx.enginelib.Engine.region", false]], "region_tag() (in module searx.locales)": [[98, "searx.locales.region_tag", false]], "regions (searx.enginelib.traits.enginetraits attribute)": [[30, "searx.enginelib.traits.EngineTraits.regions", false]], "request (searx.search.searchwithplugins attribute)": [[104, "searx.search.SearchWithPlugins.request", false]], "request() (in module searx.engines.bing)": [[42, "searx.engines.bing.request", false]], "request() (in module searx.engines.bing_images)": [[42, "searx.engines.bing_images.request", false]], "request() (in module searx.engines.bing_news)": [[42, "searx.engines.bing_news.request", false]], "request() (in module searx.engines.bing_videos)": [[42, "searx.engines.bing_videos.request", false]], "request() (in module searx.engines.demo_online)": [[28, "searx.engines.demo_online.request", false]], "request() (in module searx.engines.google)": [[52, "searx.engines.google.request", false]], "request() (in module searx.engines.google_images)": [[52, "searx.engines.google_images.request", false]], "request() (in module searx.engines.google_news)": [[52, "searx.engines.google_news.request", false]], "request() (in module searx.engines.google_scholar)": [[52, "searx.engines.google_scholar.request", false]], "request() (in module searx.engines.google_videos)": [[52, "searx.engines.google_videos.request", false]], "request() (in module searx.engines.peertube)": [[61, "searx.engines.peertube.request", false]], "request() (in module searx.engines.qwant)": [[64, "searx.engines.qwant.request", false]], "request() (in module searx.engines.sepiasearch)": [[61, "searx.engines.sepiasearch.request", false]], "request() (in module searx.engines.startpage)": [[68, "searx.engines.startpage.request", false]], "request() (in module searx.engines.tineye)": [[77, "searx.engines.tineye.request", false]], "request() (in module searx.engines.torznab)": [[70, "searx.engines.torznab.request", false]], "request() (in module searx.engines.wikipedia)": [[73, "searx.engines.wikipedia.request", false]], "request() (in module searx.engines.xpath)": [[78, "searx.engines.xpath.request", false]], "request() (in module searx.engines.yahoo)": [[75, "searx.engines.yahoo.request", false]], "response() (in module searx.engines.bing_images)": [[42, "searx.engines.bing_images.response", false]], "response() (in module searx.engines.bing_news)": [[42, "searx.engines.bing_news.response", false]], "response() (in module searx.engines.bing_videos)": [[42, "searx.engines.bing_videos.response", false]], "response() (in module searx.engines.demo_online)": [[28, "searx.engines.demo_online.response", false]], "response() (in module searx.engines.google)": [[52, "searx.engines.google.response", false]], "response() (in module searx.engines.google_images)": [[52, "searx.engines.google_images.response", false]], "response() (in module searx.engines.google_news)": [[52, "searx.engines.google_news.response", false]], "response() (in module searx.engines.google_scholar)": [[52, "searx.engines.google_scholar.response", false]], "response() (in module searx.engines.google_videos)": [[52, "searx.engines.google_videos.response", false]], "response() (in module searx.engines.mullvad_leta)": [[58, "searx.engines.mullvad_leta.response", false]], "response() (in module searx.engines.tineye)": [[77, "searx.engines.tineye.response", false]], "response() (in module searx.engines.torznab)": [[70, "searx.engines.torznab.response", false]], "response() (in module searx.engines.voidlinux)": [[71, "searx.engines.voidlinux.response", false]], "response() (in module searx.engines.xpath)": [[78, "searx.engines.xpath.response", false]], "response() (in module searx.engines.yahoo)": [[75, "searx.engines.yahoo.response", false]], "rest_v1_summary_url (in module searx.engines.wikipedia)": [[73, "searx.engines.wikipedia.rest_v1_summary_url", false]], "result_container (searx.search.search attribute)": [[104, "searx.search.Search.result_container", false]], "result_container (searx.search.searchwithplugins attribute)": [[104, "searx.search.SearchWithPlugins.result_container", false]], "result_fields (in module searx.engines.dailymotion)": [[46, "searx.engines.dailymotion.result_fields", false]], "results_xpath (in module searx.engines.xpath)": [[78, "searx.engines.xpath.results_xpath", false]], "rfc": [[84, "index-0", false]], "rfc 822": [[84, "index-0", false]], "rtl_locales (in module searx.locales)": [[98, "searx.locales.RTL_LOCALES", false]], "safe_search_map (in module searx.engines.xpath)": [[78, "searx.engines.xpath.safe_search_map", false]], "safe_search_support (in module searx.engines.xpath)": [[78, "searx.engines.xpath.safe_search_support", false]], "safesearch (in module searx.engines.bing)": [[42, "searx.engines.bing.safesearch", false]], "safesearch (searx.enginelib.engine attribute)": [[30, "searx.enginelib.Engine.safesearch", false]], "safesearch_map (in module searx.engines.wallhaven)": [[72, "searx.engines.wallhaven.safesearch_map", false]], "safesearch_params (in module searx.engines.dailymotion)": [[46, "searx.engines.dailymotion.safesearch_params", false]], "save_data() (searx.enginelib.traits.enginetraitsmap method)": [[30, "searx.enginelib.traits.EngineTraitsMap.save_data", false]], "sc_code_cache_sec (in module searx.engines.startpage)": [[68, "searx.engines.startpage.sc_code_cache_sec", false]], "schemaissue": [[95, "searx.botdetection.config.SchemaIssue", false]], "search (class in searx.search)": [[104, "searx.search.Search", false]], "search() (in module searx.engines.demo_offline)": [[27, "searx.engines.demo_offline.search", false]], "search() (searx.search.search method)": [[104, "searx.search.Search.search", false]], "search() (searx.search.searchwithplugins method)": [[104, "searx.search.SearchWithPlugins.search", false]], "search_endpoint (in module searx.engines.discourse)": [[47, "searx.engines.discourse.search_endpoint", false]], "search_form_xpath (in module searx.engines.startpage)": [[68, "searx.engines.startpage.search_form_xpath", false]], "search_language_codes (in module searx.utils)": [[107, "searx.utils.SEARCH_LANGUAGE_CODES", false]], "search_mode (in module searx.engines.yacy)": [[74, "searx.engines.yacy.search_mode", false]], "search_query (searx.search.search attribute)": [[104, "searx.search.Search.search_query", false]], "search_query (searx.search.searchwithplugins attribute)": [[104, "searx.search.SearchWithPlugins.search_query", false]], "search_type (in module searx.engines.mediawiki)": [[33, "searx.engines.mediawiki.search_type", false]], "search_type (in module searx.engines.presearch)": [[63, "searx.engines.presearch.search_type", false]], "search_type (in module searx.engines.yacy)": [[74, "searx.engines.yacy.search_type", false]], "search_url (in module searx.engines.dailymotion)": [[46, "searx.engines.dailymotion.search_url", false]], "search_url (in module searx.engines.xpath)": [[78, "searx.engines.xpath.search_url", false]], "searchquery (class in searx.search)": [[104, "searx.search.SearchQuery", false]], "searchwithplugins (class in searx.search)": [[104, "searx.search.SearchWithPlugins", false]], "searx.babel_extract": [[94, "module-searx.babel_extract", false]], "searx.botdetection": [[95, "module-searx.botdetection", false]], "searx.botdetection.config": [[95, "module-searx.botdetection.config", false]], "searx.botdetection.http_accept": [[95, "module-searx.botdetection.http_accept", false]], "searx.botdetection.http_accept_encoding": [[95, "module-searx.botdetection.http_accept_encoding", false]], "searx.botdetection.http_accept_language": [[95, "module-searx.botdetection.http_accept_language", false]], "searx.botdetection.http_connection": [[95, "module-searx.botdetection.http_connection", false]], "searx.botdetection.http_user_agent": [[95, "module-searx.botdetection.http_user_agent", false]], "searx.botdetection.ip_limit": [[95, "module-searx.botdetection.ip_limit", false]], "searx.botdetection.ip_lists": [[95, "module-searx.botdetection.ip_lists", false]], "searx.botdetection.link_token": [[95, "module-searx.botdetection.link_token", false]], "searx.enginelib": [[30, "module-searx.enginelib", false]], "searx.enginelib.traits": [[30, "module-searx.enginelib.traits", false]], "searx.engines": [[31, "module-searx.engines", false]], "searx.engines.alpinelinux": [[39, "module-searx.engines.alpinelinux", false]], "searx.engines.annas_archive": [[40, "module-searx.engines.annas_archive", false]], "searx.engines.archlinux": [[41, "module-searx.engines.archlinux", false]], "searx.engines.bing": [[42, "module-searx.engines.bing", false]], "searx.engines.bing_images": [[42, "module-searx.engines.bing_images", false]], "searx.engines.bing_news": [[42, "module-searx.engines.bing_news", false]], "searx.engines.bing_videos": [[42, "module-searx.engines.bing_videos", false]], "searx.engines.bpb": [[43, "module-searx.engines.bpb", false]], "searx.engines.brave": [[44, "module-searx.engines.brave", false]], "searx.engines.bt4g": [[45, "module-searx.engines.bt4g", false]], "searx.engines.command": [[34, "module-searx.engines.command", false]], "searx.engines.dailymotion": [[46, "module-searx.engines.dailymotion", false]], "searx.engines.demo_offline": [[27, "module-searx.engines.demo_offline", false]], "searx.engines.demo_online": [[28, "module-searx.engines.demo_online", false]], "searx.engines.discourse": [[47, "module-searx.engines.discourse", false]], "searx.engines.duckduckgo": [[48, "module-searx.engines.duckduckgo", false]], "searx.engines.duckduckgo_definitions": [[48, "module-searx.engines.duckduckgo_definitions", false]], "searx.engines.duckduckgo_extra": [[48, "module-searx.engines.duckduckgo_extra", false]], "searx.engines.duckduckgo_weather": [[48, "module-searx.engines.duckduckgo_weather", false]], "searx.engines.elasticsearch": [[36, "module-searx.engines.elasticsearch", false]], "searx.engines.geizhals": [[49, "module-searx.engines.geizhals", false]], "searx.engines.gitea": [[50, "module-searx.engines.gitea", false]], "searx.engines.gitlab": [[51, "module-searx.engines.gitlab", false]], "searx.engines.google": [[52, "module-searx.engines.google", false]], "searx.engines.google_images": [[52, "module-searx.engines.google_images", false]], "searx.engines.google_news": [[52, "module-searx.engines.google_news", false]], "searx.engines.google_scholar": [[52, "module-searx.engines.google_scholar", false]], "searx.engines.google_videos": [[52, "module-searx.engines.google_videos", false]], "searx.engines.lemmy": [[53, "module-searx.engines.lemmy", false]], "searx.engines.loc": [[54, "module-searx.engines.loc", false]], "searx.engines.mariadb_server": [[37, "module-searx.engines.mariadb_server", false]], "searx.engines.mastodon": [[55, "module-searx.engines.mastodon", false]], "searx.engines.mediawiki": [[33, "module-searx.engines.mediawiki", false]], "searx.engines.meilisearch": [[36, "module-searx.engines.meilisearch", false]], "searx.engines.mongodb": [[35, "module-searx.engines.mongodb", false]], "searx.engines.moviepilot": [[56, "module-searx.engines.moviepilot", false]], "searx.engines.mrs": [[57, "module-searx.engines.mrs", false]], "searx.engines.mullvad_leta": [[58, "module-searx.engines.mullvad_leta", false]], "searx.engines.mwmbl": [[59, "module-searx.engines.mwmbl", false]], "searx.engines.mysql_server": [[37, "module-searx.engines.mysql_server", false]], "searx.engines.odysee": [[60, "module-searx.engines.odysee", false]], "searx.engines.peertube": [[61, "module-searx.engines.peertube", false]], "searx.engines.piped": [[62, "module-searx.engines.piped", false]], "searx.engines.postgresql": [[37, "module-searx.engines.postgresql", false]], "searx.engines.presearch": [[63, "module-searx.engines.presearch", false]], "searx.engines.qwant": [[64, "module-searx.engines.qwant", false]], "searx.engines.radio_browser": [[65, "module-searx.engines.radio_browser", false]], "searx.engines.recoll": [[66, "module-searx.engines.recoll", false]], "searx.engines.redis_server": [[35, "module-searx.engines.redis_server", false]], "searx.engines.seekr": [[67, "module-searx.engines.seekr", false]], "searx.engines.sepiasearch": [[61, "module-searx.engines.sepiasearch", false]], "searx.engines.solr": [[36, "module-searx.engines.solr", false]], "searx.engines.sqlite": [[37, "module-searx.engines.sqlite", false]], "searx.engines.startpage": [[68, "module-searx.engines.startpage", false]], "searx.engines.tagesschau": [[69, "module-searx.engines.tagesschau", false]], "searx.engines.tineye": [[77, "module-searx.engines.tineye", false]], "searx.engines.torznab": [[70, "module-searx.engines.torznab", false]], "searx.engines.voidlinux": [[71, "module-searx.engines.voidlinux", false]], "searx.engines.wallhaven": [[72, "module-searx.engines.wallhaven", false]], "searx.engines.wikidata": [[73, "module-searx.engines.wikidata", false]], "searx.engines.wikipedia": [[73, "module-searx.engines.wikipedia", false]], "searx.engines.xpath": [[78, "module-searx.engines.xpath", false]], "searx.engines.yacy": [[74, "module-searx.engines.yacy", false]], "searx.engines.yahoo": [[75, "module-searx.engines.yahoo", false]], "searx.engines.zlibrary": [[76, "module-searx.engines.zlibrary", false]], "searx.exceptions": [[96, "module-searx.exceptions", false]], "searx.infopage": [[97, "module-searx.infopage", false]], "searx.limiter": [[13, "module-searx.limiter", false]], "searx.locales": [[98, "module-searx.locales", false]], "searx.plugins.hostnames": [[99, "module-searx.plugins.hostnames", false]], "searx.plugins.tor_check": [[100, "module-searx.plugins.tor_check", false]], "searx.plugins.unit_converter": [[101, "module-searx.plugins.unit_converter", false]], "searx.redisdb": [[102, "module-searx.redisdb", false]], "searx.redislib": [[103, "module-searx.redislib", false]], "searx.search.processors.abstract": [[105, "module-searx.search.processors.abstract", false]], "searx.search.processors.offline": [[105, "module-searx.search.processors.offline", false]], "searx.search.processors.online": [[105, "module-searx.search.processors.online", false]], "searx.search.processors.online_currency": [[105, "module-searx.search.processors.online_currency", false]], "searx.search.processors.online_dictionary": [[105, "module-searx.search.processors.online_dictionary", false]], "searx.search.processors.online_url_search": [[105, "module-searx.search.processors.online_url_search", false]], "searx.settings_loader": [[106, "module-searx.settings_loader", false]], "searx.sxng_locales": [[98, "module-searx.sxng_locales", false]], "searx.utils": [[107, "module-searx.utils", false]], "searx_useragent() (in module searx.utils)": [[107, "searx.utils.searx_useragent", false]], "searxengineaccessdeniedexception": [[96, "searx.exceptions.SearxEngineAccessDeniedException", false]], "searxengineapiexception": [[96, "searx.exceptions.SearxEngineAPIException", false]], "searxenginecaptchaexception": [[96, "searx.exceptions.SearxEngineCaptchaException", false]], "searxengineexception": [[96, "searx.exceptions.SearxEngineException", false]], "searxengineresponseexception": [[96, "searx.exceptions.SearxEngineResponseException", false]], "searxenginetoomanyrequestsexception": [[96, "searx.exceptions.SearxEngineTooManyRequestsException", false]], "searxenginexpathexception": [[96, "searx.exceptions.SearxEngineXPathException", false]], "searxexception": [[96, "searx.exceptions.SearxException", false]], "searxng_org (in module searx.botdetection.ip_lists)": [[95, "searx.botdetection.ip_lists.SEARXNG_ORG", false]], "searxparameterexception": [[96, "searx.exceptions.SearxParameterException", false]], "searxsettingsexception": [[96, "searx.exceptions.SearxSettingsException", false]], "searxxpathsyntaxexception": [[96, "searx.exceptions.SearxXPathSyntaxException", false]], "secret_hash() (in module searx.redislib)": [[103, "searx.redislib.secret_hash", false]], "seekr_category (in module searx.engines.seekr)": [[67, "searx.engines.seekr.seekr_category", false]], "send_accept_language_header (in module searx.engines.duckduckgo)": [[48, "searx.engines.duckduckgo.send_accept_language_header", false]], "send_accept_language_header (in module searx.engines.startpage)": [[68, "searx.engines.startpage.send_accept_language_header", false]], "send_accept_language_header (in module searx.engines.wikipedia)": [[73, "searx.engines.wikipedia.send_accept_language_header", false]], "send_accept_language_header (searx.enginelib.engine attribute)": [[30, "searx.enginelib.Engine.send_accept_language_header", false]], "set() (searx.botdetection.config.config method)": [[95, "searx.botdetection.config.Config.set", false]], "set_traits() (searx.enginelib.traits.enginetraits method)": [[30, "searx.enginelib.traits.EngineTraits.set_traits", false]], "set_traits() (searx.enginelib.traits.enginetraitsmap method)": [[30, "searx.enginelib.traits.EngineTraitsMap.set_traits", false]], "shortcut (searx.enginelib.engine attribute)": [[30, "searx.enginelib.Engine.shortcut", false]], "show_avatar (in module searx.engines.discourse)": [[47, "searx.engines.discourse.show_avatar", false]], "soft_max_redirects (in module searx.engines.xpath)": [[78, "searx.engines.xpath.soft_max_redirects", false]], "sort (in module searx.engines.gitea)": [[50, "searx.engines.gitea.sort", false]], "sqlite_cursor() (in module searx.engines.sqlite)": [[37, "searx.engines.sqlite.sqlite_cursor", false]], "srenablerewrites (in module searx.engines.mediawiki)": [[33, "searx.engines.mediawiki.srenablerewrites", false]], "srprop (in module searx.engines.mediawiki)": [[33, "searx.engines.mediawiki.srprop", false]], "srsort (in module searx.engines.mediawiki)": [[33, "searx.engines.mediawiki.srsort", false]], "startpage_categ (in module searx.engines.startpage)": [[68, "searx.engines.startpage.startpage_categ", false]], "station_filters (in module searx.engines.radio_browser)": [[65, "searx.engines.radio_browser.station_filters", false]], "suggestion_xpath (in module searx.engines.xpath)": [[78, "searx.engines.xpath.suggestion_xpath", false]], "suspend_time_setting (searx.exceptions.searxengineaccessdeniedexception attribute)": [[96, "searx.exceptions.SearxEngineAccessDeniedException.SUSPEND_TIME_SETTING", false]], "suspend_time_setting (searx.exceptions.searxenginecaptchaexception attribute)": [[96, "searx.exceptions.SearxEngineCaptchaException.SUSPEND_TIME_SETTING", false]], "suspend_time_setting (searx.exceptions.searxenginetoomanyrequestsexception attribute)": [[96, "searx.exceptions.SearxEngineTooManyRequestsException.SUSPEND_TIME_SETTING", false]], "suspendedstatus (class in searx.search.processors.abstract)": [[105, "searx.search.processors.abstract.SuspendedStatus", false]], "suspicious_ip_max (in module searx.botdetection.ip_limit)": [[95, "searx.botdetection.ip_limit.SUSPICIOUS_IP_MAX", false]], "suspicious_ip_window (in module searx.botdetection.ip_limit)": [[95, "searx.botdetection.ip_limit.SUSPICIOUS_IP_WINDOW", false]], "sxng_locales (in module searx.sxng_locales)": [[98, "searx.sxng_locales.sxng_locales", false]], "symbol_to_si() (in module searx.plugins.unit_converter)": [[101, "searx.plugins.unit_converter.symbol_to_si", false]], "thumbnail_xpath (in module searx.engines.xpath)": [[78, "searx.engines.xpath.thumbnail_xpath", false]], "time_map (in module searx.engines.bing_news)": [[42, "searx.engines.bing_news.time_map", false]], "time_range_args() (in module searx.engines.google_scholar)": [[52, "searx.engines.google_scholar.time_range_args", false]], "time_range_map (in module searx.engines.xpath)": [[78, "searx.engines.xpath.time_range_map", false]], "time_range_support (in module searx.engines.brave)": [[44, "searx.engines.brave.time_range_support", false]], "time_range_support (in module searx.engines.xpath)": [[78, "searx.engines.xpath.time_range_support", false]], "time_range_support (searx.enginelib.engine attribute)": [[30, "searx.enginelib.Engine.time_range_support", false]], "time_range_url (in module searx.engines.xpath)": [[78, "searx.engines.xpath.time_range_url", false]], "timeout (searx.enginelib.engine attribute)": [[30, "searx.enginelib.Engine.timeout", false]], "timestamp_format (in module searx.engines.mediawiki)": [[33, "searx.engines.mediawiki.timestamp_format", false]], "title (searx.infopage.infopage property)": [[97, "searx.infopage.InfoPage.title", false]], "title_xpath (in module searx.engines.xpath)": [[78, "searx.engines.xpath.title_xpath", false]], "to_string() (in module searx.utils)": [[107, "searx.utils.to_string", false]], "toc (searx.infopage.infopageset attribute)": [[97, "searx.infopage.InfoPageSet.toc", false]], "token_key (in module searx.botdetection.link_token)": [[95, "searx.botdetection.link_token.TOKEN_KEY", false]], "token_live_time (in module searx.botdetection.link_token)": [[95, "searx.botdetection.link_token.TOKEN_LIVE_TIME", false]], "tokens (searx.enginelib.engine attribute)": [[30, "searx.enginelib.Engine.tokens", false]], "too_many_requests() (in module searx.botdetection)": [[95, "searx.botdetection.too_many_requests", false]], "traits (searx.enginelib.engine attribute)": [[30, "searx.enginelib.Engine.traits", false]], "ui_async (in module searx.engines.google)": [[52, "searx.engines.google.UI_ASYNC", false]], "update() (searx.botdetection.config.config method)": [[95, "searx.botdetection.config.Config.update", false]], "url_xpath (in module searx.engines.xpath)": [[78, "searx.engines.xpath.url_xpath", false]], "use_source_url (in module searx.engines.tagesschau)": [[69, "searx.engines.tagesschau.use_source_url", false]], "user_agent (in module searx.botdetection.http_user_agent)": [[95, "searx.botdetection.http_user_agent.USER_AGENT", false]], "username (in module searx.engines.mariadb_server)": [[37, "searx.engines.mariadb_server.username", false]], "username (in module searx.engines.mysql_server)": [[37, "searx.engines.mysql_server.username", false]], "username (in module searx.engines.postgresql)": [[37, "searx.engines.postgresql.username", false]], "using_tor_proxy (searx.enginelib.engine attribute)": [[30, "searx.enginelib.Engine.using_tor_proxy", false]], "using_tor_proxy() (in module searx.engines)": [[31, "searx.engines.using_tor_proxy", false]], "validate() (searx.botdetection.config.config method)": [[95, "searx.botdetection.config.Config.validate", false]], "video_response() (in module searx.engines.peertube)": [[61, "searx.engines.peertube.video_response", false]], "void_arch (in module searx.engines.voidlinux)": [[71, "searx.engines.voidlinux.void_arch", false]], "web_lite_url (in module searx.engines.qwant)": [[64, "searx.engines.qwant.web_lite_url", false]], "wiki_lc_locale_variants (in module searx.engines.wikipedia)": [[73, "searx.engines.wikipedia.wiki_lc_locale_variants", false]], "wikipedia_article_depth (in module searx.engines.wikipedia)": [[73, "searx.engines.wikipedia.wikipedia_article_depth", false]], "zlib_ext (in module searx.engines.zlibrary)": [[76, "searx.engines.zlibrary.zlib_ext", false]], "zlib_year_from (in module searx.engines.zlibrary)": [[76, "searx.engines.zlibrary.zlib_year_from", false]], "zlib_year_to (in module searx.engines.zlibrary)": [[76, "searx.engines.zlibrary.zlib_year_to", false]]}, "objects": {"": [[82, 0, 1, "", "on_result"], [82, 0, 1, "", "post_search"], [82, 0, 1, "", "pre_search"]], "searx": [[94, 1, 0, "-", "babel_extract"], [95, 1, 0, "-", "botdetection"], [30, 1, 0, "-", "enginelib"], [31, 1, 0, "-", "engines"], [96, 1, 0, "-", "exceptions"], [97, 1, 0, "-", "infopage"], [13, 1, 0, "-", "limiter"], [98, 1, 0, "-", "locales"], [102, 1, 0, "-", "redisdb"], [103, 1, 0, "-", "redislib"], [106, 1, 0, "-", "settings_loader"], [98, 1, 0, "-", "sxng_locales"], [107, 1, 0, "-", "utils"]], "searx.autocomplete": [[52, 0, 1, "", "google_complete"], [59, 0, 1, "", "mwmbl"]], "searx.babel_extract": [[94, 0, 1, "", "extract"]], "searx.botdetection": [[95, 1, 0, "-", "config"], [95, 0, 1, "", "get_network"], [95, 0, 1, "", "get_real_ip"], [95, 1, 0, "-", "http_accept"], [95, 1, 0, "-", "http_accept_encoding"], [95, 1, 0, "-", "http_accept_language"], [95, 1, 0, "-", "http_connection"], [95, 1, 0, "-", "http_user_agent"], [95, 1, 0, "-", "ip_limit"], [95, 1, 0, "-", "ip_lists"], [95, 1, 0, "-", "link_token"], [95, 0, 1, "", "too_many_requests"]], "searx.botdetection.config": [[95, 2, 1, "", "Config"], [95, 4, 1, "", "SchemaIssue"]], "searx.botdetection.config.Config": [[95, 3, 1, "", "default"], [95, 3, 1, "", "get"], [95, 3, 1, "", "path"], [95, 3, 1, "", "pyobj"], [95, 3, 1, "", "set"], [95, 3, 1, "", "update"], [95, 3, 1, "", "validate"]], "searx.botdetection.http_user_agent": [[95, 5, 1, "", "USER_AGENT"]], "searx.botdetection.ip_limit": [[95, 5, 1, "", "API_MAX"], [95, 5, 1, "", "API_WINDOW"], [95, 5, 1, "", "BURST_MAX"], [95, 5, 1, "", "BURST_MAX_SUSPICIOUS"], [95, 5, 1, "", "BURST_WINDOW"], [95, 5, 1, "", "LONG_MAX"], [95, 5, 1, "", "LONG_MAX_SUSPICIOUS"], [95, 5, 1, "", "LONG_WINDOW"], [95, 5, 1, "", "SUSPICIOUS_IP_MAX"], [95, 5, 1, "", "SUSPICIOUS_IP_WINDOW"]], "searx.botdetection.ip_lists": [[95, 5, 1, "", "SEARXNG_ORG"], [95, 0, 1, "", "block_ip"], [95, 0, 1, "", "pass_ip"]], "searx.botdetection.link_token": [[95, 5, 1, "", "PING_KEY"], [95, 5, 1, "", "PING_LIVE_TIME"], [95, 5, 1, "", "TOKEN_KEY"], [95, 5, 1, "", "TOKEN_LIVE_TIME"], [95, 0, 1, "", "get_ping_key"], [95, 0, 1, "", "get_token"], [95, 0, 1, "", "is_suspicious"], [95, 0, 1, "", "ping"]], "searx.enginelib": [[30, 2, 1, "", "Engine"], [30, 1, 0, "-", "traits"]], "searx.enginelib.Engine": [[30, 6, 1, "", "about"], [30, 6, 1, "", "categories"], [30, 6, 1, "", "disabled"], [30, 6, 1, "", "display_error_messages"], [30, 6, 1, "", "enable_http"], [30, 6, 1, "", "engine"], [30, 6, 1, "", "engine_type"], [30, 6, 1, "", "fetch_traits"], [30, 6, 1, "", "inactive"], [30, 6, 1, "", "language"], [30, 6, 1, "", "language_support"], [30, 6, 1, "", "name"], [30, 6, 1, "", "paging"], [30, 6, 1, "", "proxies"], [30, 6, 1, "", "region"], [30, 6, 1, "", "safesearch"], [30, 6, 1, "", "send_accept_language_header"], [30, 6, 1, "", "shortcut"], [30, 6, 1, "", "time_range_support"], [30, 6, 1, "", "timeout"], [30, 6, 1, "", "tokens"], [30, 6, 1, "", "traits"], [30, 6, 1, "", "using_tor_proxy"]], "searx.enginelib.traits": [[30, 2, 1, "", "EngineTraits"], [30, 2, 1, "", "EngineTraitsEncoder"], [30, 2, 1, "", "EngineTraitsMap"]], "searx.enginelib.traits.EngineTraits": [[30, 6, 1, "", "all_locale"], [30, 3, 1, "", "copy"], [30, 6, 1, "", "custom"], [30, 6, 1, "", "data_type"], [30, 3, 1, "", "fetch_traits"], [30, 3, 1, "", "get_language"], [30, 3, 1, "", "get_region"], [30, 3, 1, "", "is_locale_supported"], [30, 6, 1, "", "languages"], [30, 6, 1, "", "regions"], [30, 3, 1, "", "set_traits"]], "searx.enginelib.traits.EngineTraitsEncoder": [[30, 3, 1, "", "default"]], "searx.enginelib.traits.EngineTraitsMap": [[30, 6, 1, "", "ENGINE_TRAITS_FILE"], [30, 3, 1, "", "from_data"], [30, 3, 1, "", "save_data"], [30, 3, 1, "", "set_traits"]], "searx.engines": [[39, 1, 0, "-", "alpinelinux"], [40, 1, 0, "-", "annas_archive"], [41, 1, 0, "-", "archlinux"], [42, 1, 0, "-", "bing"], [42, 1, 0, "-", "bing_images"], [42, 1, 0, "-", "bing_news"], [42, 1, 0, "-", "bing_videos"], [43, 1, 0, "-", "bpb"], [44, 1, 0, "-", "brave"], [45, 1, 0, "-", "bt4g"], [34, 1, 0, "-", "command"], [46, 1, 0, "-", "dailymotion"], [27, 1, 0, "-", "demo_offline"], [28, 1, 0, "-", "demo_online"], [47, 1, 0, "-", "discourse"], [48, 1, 0, "-", "duckduckgo"], [48, 1, 0, "-", "duckduckgo_definitions"], [48, 1, 0, "-", "duckduckgo_extra"], [48, 1, 0, "-", "duckduckgo_weather"], [36, 1, 0, "-", "elasticsearch"], [31, 5, 1, "", "engine_shortcuts"], [49, 1, 0, "-", "geizhals"], [50, 1, 0, "-", "gitea"], [51, 1, 0, "-", "gitlab"], [52, 1, 0, "-", "google"], [52, 1, 0, "-", "google_images"], [52, 1, 0, "-", "google_news"], [52, 1, 0, "-", "google_scholar"], [52, 1, 0, "-", "google_videos"], [31, 0, 1, "", "is_missing_required_attributes"], [53, 1, 0, "-", "lemmy"], [31, 0, 1, "", "load_engine"], [31, 0, 1, "", "load_engines"], [54, 1, 0, "-", "loc"], [37, 1, 0, "-", "mariadb_server"], [55, 1, 0, "-", "mastodon"], [33, 1, 0, "-", "mediawiki"], [36, 1, 0, "-", "meilisearch"], [35, 1, 0, "-", "mongodb"], [56, 1, 0, "-", "moviepilot"], [57, 1, 0, "-", "mrs"], [58, 1, 0, "-", "mullvad_leta"], [59, 1, 0, "-", "mwmbl"], [37, 1, 0, "-", "mysql_server"], [60, 1, 0, "-", "odysee"], [61, 1, 0, "-", "peertube"], [62, 1, 0, "-", "piped"], [37, 1, 0, "-", "postgresql"], [63, 1, 0, "-", "presearch"], [64, 1, 0, "-", "qwant"], [65, 1, 0, "-", "radio_browser"], [66, 1, 0, "-", "recoll"], [35, 1, 0, "-", "redis_server"], [67, 1, 0, "-", "seekr"], [61, 1, 0, "-", "sepiasearch"], [36, 1, 0, "-", "solr"], [37, 1, 0, "-", "sqlite"], [68, 1, 0, "-", "startpage"], [69, 1, 0, "-", "tagesschau"], [77, 1, 0, "-", "tineye"], [70, 1, 0, "-", "torznab"], [31, 0, 1, "", "using_tor_proxy"], [71, 1, 0, "-", "voidlinux"], [72, 1, 0, "-", "wallhaven"], [73, 1, 0, "-", "wikidata"], [73, 1, 0, "-", "wikipedia"], [78, 1, 0, "-", "xpath"], [74, 1, 0, "-", "yacy"], [75, 1, 0, "-", "yahoo"], [76, 1, 0, "-", "zlibrary"]], "searx.engines.alpinelinux": [[39, 5, 1, "", "ARCH_RE"], [39, 5, 1, "", "alpine_arch"]], "searx.engines.annas_archive": [[40, 5, 1, "", "aa_content"], [40, 5, 1, "", "aa_ext"], [40, 5, 1, "", "aa_sort"], [40, 0, 1, "", "fetch_traits"], [40, 0, 1, "", "init"]], "searx.engines.archlinux": [[41, 0, 1, "", "fetch_traits"]], "searx.engines.bing": [[42, 5, 1, "", "base_url"], [42, 0, 1, "", "fetch_traits"], [42, 5, 1, "", "max_page"], [42, 0, 1, "", "request"], [42, 5, 1, "", "safesearch"]], "searx.engines.bing_images": [[42, 5, 1, "", "base_url"], [42, 0, 1, "", "request"], [42, 0, 1, "", "response"]], "searx.engines.bing_news": [[42, 5, 1, "", "base_url"], [42, 0, 1, "", "fetch_traits"], [42, 5, 1, "", "paging"], [42, 0, 1, "", "request"], [42, 0, 1, "", "response"], [42, 5, 1, "", "time_map"]], "searx.engines.bing_videos": [[42, 5, 1, "", "base_url"], [42, 0, 1, "", "request"], [42, 0, 1, "", "response"]], "searx.engines.brave": [[44, 6, 1, "", "Goggles"], [44, 5, 1, "", "brave_spellcheck"], [44, 0, 1, "", "fetch_traits"], [44, 5, 1, "", "max_page"], [44, 5, 1, "", "paging"], [44, 5, 1, "", "time_range_support"]], "searx.engines.bt4g": [[45, 5, 1, "", "bt4g_category"], [45, 5, 1, "", "bt4g_order_by"]], "searx.engines.command": [[34, 0, 1, "", "check_parsing_options"]], "searx.engines.dailymotion": [[46, 5, 1, "", "family_filter_map"], [46, 0, 1, "", "fetch_traits"], [46, 5, 1, "", "iframe_src"], [46, 5, 1, "", "result_fields"], [46, 5, 1, "", "safesearch_params"], [46, 5, 1, "", "search_url"]], "searx.engines.demo_offline": [[27, 0, 1, "", "init"], [27, 0, 1, "", "search"]], "searx.engines.demo_online": [[28, 0, 1, "", "init"], [28, 0, 1, "", "request"], [28, 0, 1, "", "response"]], "searx.engines.discourse": [[47, 5, 1, "", "api_key"], [47, 5, 1, "", "api_order"], [47, 5, 1, "", "api_username"], [47, 5, 1, "", "base_url"], [47, 5, 1, "", "search_endpoint"], [47, 5, 1, "", "show_avatar"]], "searx.engines.duckduckgo": [[48, 0, 1, "", "cache_vqd"], [48, 0, 1, "", "fetch_traits"], [48, 0, 1, "", "get_ddg_lang"], [48, 0, 1, "", "get_vqd"], [48, 5, 1, "", "send_accept_language_header"]], "searx.engines.duckduckgo_definitions": [[48, 0, 1, "", "area_to_str"], [48, 0, 1, "", "is_broken_text"]], "searx.engines.duckduckgo_extra": [[48, 5, 1, "", "ddg_category"]], "searx.engines.gitea": [[50, 5, 1, "", "base_url"], [50, 5, 1, "", "order"], [50, 5, 1, "", "page_size"], [50, 5, 1, "", "sort"]], "searx.engines.gitlab": [[51, 5, 1, "", "api_path"], [51, 5, 1, "", "base_url"]], "searx.engines.google": [[52, 5, 1, "", "UI_ASYNC"], [52, 0, 1, "", "fetch_traits"], [52, 0, 1, "", "get_google_info"], [52, 0, 1, "", "request"], [52, 0, 1, "", "response"]], "searx.engines.google_images": [[52, 0, 1, "", "request"], [52, 0, 1, "", "response"]], "searx.engines.google_news": [[52, 5, 1, "", "ceid_list"], [52, 0, 1, "", "request"], [52, 0, 1, "", "response"]], "searx.engines.google_scholar": [[52, 0, 1, "", "detect_google_captcha"], [52, 0, 1, "", "parse_gs_a"], [52, 0, 1, "", "request"], [52, 0, 1, "", "response"], [52, 0, 1, "", "time_range_args"]], "searx.engines.google_videos": [[52, 0, 1, "", "request"], [52, 0, 1, "", "response"]], "searx.engines.lemmy": [[53, 5, 1, "", "base_url"], [53, 5, 1, "", "lemmy_type"]], "searx.engines.mariadb_server": [[37, 5, 1, "", "database"], [37, 5, 1, "", "host"], [37, 5, 1, "", "password"], [37, 5, 1, "", "port"], [37, 5, 1, "", "query_str"], [37, 5, 1, "", "username"]], "searx.engines.mediawiki": [[33, 5, 1, "", "api_path"], [33, 5, 1, "", "base_url"], [33, 5, 1, "", "search_type"], [33, 5, 1, "", "srenablerewrites"], [33, 5, 1, "", "srprop"], [33, 5, 1, "", "srsort"], [33, 5, 1, "", "timestamp_format"]], "searx.engines.mrs": [[57, 0, 1, "", "init"]], "searx.engines.mullvad_leta": [[58, 0, 1, "", "assign_headers"], [58, 0, 1, "", "fetch_traits"], [58, 0, 1, "", "is_vpn_connected"], [58, 0, 1, "", "response"]], "searx.engines.mysql_server": [[37, 5, 1, "", "database"], [37, 5, 1, "", "host"], [37, 5, 1, "", "password"], [37, 5, 1, "", "port"], [37, 5, 1, "", "query_str"], [37, 5, 1, "", "username"]], "searx.engines.odysee": [[60, 0, 1, "", "fetch_traits"]], "searx.engines.peertube": [[61, 5, 1, "", "base_url"], [61, 0, 1, "", "fetch_traits"], [61, 0, 1, "", "request"], [61, 0, 1, "", "video_response"]], "searx.engines.piped": [[62, 5, 1, "", "backend_url"], [62, 5, 1, "", "frontend_url"], [62, 5, 1, "", "piped_filter"]], "searx.engines.postgresql": [[37, 5, 1, "", "database"], [37, 5, 1, "", "host"], [37, 5, 1, "", "password"], [37, 5, 1, "", "port"], [37, 5, 1, "", "query_str"], [37, 5, 1, "", "username"]], "searx.engines.presearch": [[63, 5, 1, "", "search_type"]], "searx.engines.qwant": [[64, 5, 1, "", "api_url"], [64, 5, 1, "", "max_page"], [64, 0, 1, "", "parse_web_api"], [64, 0, 1, "", "parse_web_lite"], [64, 5, 1, "", "qwant_categ"], [64, 0, 1, "", "request"], [64, 5, 1, "", "web_lite_url"]], "searx.engines.radio_browser": [[65, 0, 1, "", "fetch_traits"], [65, 5, 1, "", "station_filters"]], "searx.engines.seekr": [[67, 5, 1, "", "api_key"], [67, 5, 1, "", "seekr_category"]], "searx.engines.sepiasearch": [[61, 0, 1, "", "request"]], "searx.engines.sqlite": [[37, 5, 1, "", "database"], [37, 5, 1, "", "query_str"], [37, 0, 1, "", "sqlite_cursor"]], "searx.engines.startpage": [[68, 0, 1, "", "fetch_traits"], [68, 0, 1, "", "get_sc_code"], [68, 5, 1, "", "max_page"], [68, 0, 1, "", "request"], [68, 5, 1, "", "sc_code_cache_sec"], [68, 5, 1, "", "search_form_xpath"], [68, 5, 1, "", "send_accept_language_header"], [68, 5, 1, "", "startpage_categ"]], "searx.engines.tagesschau": [[69, 5, 1, "", "use_source_url"]], "searx.engines.tineye": [[77, 5, 1, "", "DOWNLOAD_ERROR"], [77, 5, 1, "", "FORMAT_NOT_SUPPORTED"], [77, 5, 1, "", "NO_SIGNATURE_ERROR"], [77, 5, 1, "", "engine_type"], [77, 0, 1, "", "parse_tineye_match"], [77, 0, 1, "", "request"], [77, 0, 1, "", "response"]], "searx.engines.torznab": [[70, 0, 1, "", "build_result"], [70, 0, 1, "", "get_attribute"], [70, 0, 1, "", "get_torznab_attribute"], [70, 0, 1, "", "init"], [70, 0, 1, "", "request"], [70, 0, 1, "", "response"]], "searx.engines.voidlinux": [[71, 5, 1, "", "ARCH_RE"], [71, 0, 1, "", "response"], [71, 5, 1, "", "void_arch"]], "searx.engines.wallhaven": [[72, 5, 1, "", "api_key"], [72, 5, 1, "", "safesearch_map"]], "searx.engines.wikidata": [[73, 5, 1, "", "display_type"], [73, 0, 1, "", "fetch_traits"], [73, 0, 1, "", "get_thumbnail"]], "searx.engines.wikipedia": [[73, 5, 1, "", "display_type"], [73, 0, 1, "", "fetch_wikimedia_traits"], [73, 0, 1, "", "get_wiki_params"], [73, 5, 1, "", "list_of_wikipedias"], [73, 0, 1, "", "request"], [73, 5, 1, "", "rest_v1_summary_url"], [73, 5, 1, "", "send_accept_language_header"], [73, 5, 1, "", "wiki_lc_locale_variants"], [73, 5, 1, "", "wikipedia_article_depth"]], "searx.engines.xpath": [[78, 5, 1, "", "content_xpath"], [78, 5, 1, "", "cookies"], [78, 5, 1, "", "first_page_num"], [78, 5, 1, "", "headers"], [78, 5, 1, "", "lang_all"], [78, 5, 1, "", "no_result_for_http_status"], [78, 5, 1, "", "page_size"], [78, 5, 1, "", "paging"], [78, 0, 1, "", "request"], [78, 0, 1, "", "response"], [78, 5, 1, "", "results_xpath"], [78, 5, 1, "", "safe_search_map"], [78, 5, 1, "", "safe_search_support"], [78, 5, 1, "", "search_url"], [78, 5, 1, "", "soft_max_redirects"], [78, 5, 1, "", "suggestion_xpath"], [78, 5, 1, "", "thumbnail_xpath"], [78, 5, 1, "", "time_range_map"], [78, 5, 1, "", "time_range_support"], [78, 5, 1, "", "time_range_url"], [78, 5, 1, "", "title_xpath"], [78, 5, 1, "", "url_xpath"]], "searx.engines.yacy": [[74, 5, 1, "", "base_url"], [74, 5, 1, "", "http_digest_auth_pass"], [74, 5, 1, "", "http_digest_auth_user"], [74, 5, 1, "", "search_mode"], [74, 5, 1, "", "search_type"]], "searx.engines.yahoo": [[75, 0, 1, "", "fetch_traits"], [75, 5, 1, "", "lang2domain"], [75, 0, 1, "", "parse_url"], [75, 0, 1, "", "request"], [75, 0, 1, "", "response"]], "searx.engines.zlibrary": [[76, 0, 1, "", "fetch_traits"], [76, 0, 1, "", "init"], [76, 5, 1, "", "zlib_ext"], [76, 5, 1, "", "zlib_year_from"], [76, 5, 1, "", "zlib_year_to"]], "searx.exceptions": [[96, 4, 1, "", "SearxEngineAPIException"], [96, 4, 1, "", "SearxEngineAccessDeniedException"], [96, 4, 1, "", "SearxEngineCaptchaException"], [96, 4, 1, "", "SearxEngineException"], [96, 4, 1, "", "SearxEngineResponseException"], [96, 4, 1, "", "SearxEngineTooManyRequestsException"], [96, 4, 1, "", "SearxEngineXPathException"], [96, 4, 1, "", "SearxException"], [96, 4, 1, "", "SearxParameterException"], [96, 4, 1, "", "SearxSettingsException"], [96, 4, 1, "", "SearxXPathSyntaxException"]], "searx.exceptions.SearxEngineAccessDeniedException": [[96, 6, 1, "", "SUSPEND_TIME_SETTING"]], "searx.exceptions.SearxEngineCaptchaException": [[96, 6, 1, "", "SUSPEND_TIME_SETTING"]], "searx.exceptions.SearxEngineTooManyRequestsException": [[96, 6, 1, "", "SUSPEND_TIME_SETTING"]], "searx.infopage": [[97, 2, 1, "", "InfoPage"], [97, 2, 1, "", "InfoPageSet"]], "searx.infopage.InfoPage": [[97, 7, 1, "", "content"], [97, 3, 1, "", "get_ctx"], [97, 7, 1, "", "html"], [97, 7, 1, "", "raw_content"], [97, 7, 1, "", "title"]], "searx.infopage.InfoPageSet": [[97, 6, 1, "", "folder"], [97, 3, 1, "", "get_page"], [97, 3, 1, "", "iter_pages"], [97, 6, 1, "", "locale_default"], [97, 6, 1, "", "locales"], [97, 6, 1, "", "toc"]], "searx.limiter": [[13, 5, 1, "", "LIMITER_CFG"], [13, 5, 1, "", "LIMITER_CFG_SCHEMA"], [13, 0, 1, "", "initialize"], [13, 0, 1, "", "is_installed"], [13, 0, 1, "", "pre_request"]], "searx.locales": [[98, 5, 1, "", "ADDITIONAL_TRANSLATIONS"], [98, 5, 1, "", "LOCALE_BEST_MATCH"], [98, 5, 1, "", "LOCALE_NAMES"], [98, 5, 1, "", "RTL_LOCALES"], [98, 0, 1, "", "build_engine_locales"], [98, 0, 1, "", "get_engine_locale"], [98, 0, 1, "", "get_locale"], [98, 0, 1, "", "get_official_locales"], [98, 0, 1, "", "get_translation_locales"], [98, 0, 1, "", "get_translations"], [98, 0, 1, "", "language_tag"], [98, 0, 1, "", "locales_initialize"], [98, 0, 1, "", "match_locale"], [98, 0, 1, "", "region_tag"]], "searx.plugins": [[99, 1, 0, "-", "hostnames"], [100, 1, 0, "-", "tor_check"], [101, 1, 0, "-", "unit_converter"]], "searx.plugins.tor_check": [[100, 5, 1, "", "description"], [100, 5, 1, "", "name"], [100, 5, 1, "", "preference_section"], [100, 5, 1, "", "query_examples"], [100, 5, 1, "", "query_keywords"]], "searx.plugins.unit_converter": [[101, 5, 1, "", "ADDITIONAL_UNITS"], [101, 5, 1, "", "ALIAS_SYMBOLS"], [101, 0, 1, "", "symbol_to_si"]], "searx.redisdb": [[102, 5, 1, "", "OLD_REDIS_URL_DEFAULT_URL"]], "searx.redislib": [[103, 5, 1, "", "LUA_SCRIPT_STORAGE"], [103, 0, 1, "", "drop_counter"], [103, 0, 1, "", "incr_counter"], [103, 0, 1, "", "incr_sliding_window"], [103, 0, 1, "", "lua_script_storage"], [103, 0, 1, "", "purge_by_prefix"], [103, 0, 1, "", "secret_hash"]], "searx.search": [[104, 2, 1, "", "EngineRef"], [104, 2, 1, "", "Search"], [104, 2, 1, "", "SearchQuery"], [104, 2, 1, "", "SearchWithPlugins"]], "searx.search.Search": [[104, 6, 1, "", "result_container"], [104, 3, 1, "", "search"], [104, 6, 1, "", "search_query"]], "searx.search.SearchWithPlugins": [[104, 6, 1, "", "ordered_plugin_list"], [104, 6, 1, "", "request"], [104, 6, 1, "", "result_container"], [104, 3, 1, "", "search"], [104, 6, 1, "", "search_query"]], "searx.search.processors": [[105, 1, 0, "-", "abstract"], [105, 1, 0, "-", "offline"], [105, 1, 0, "-", "online"], [105, 1, 0, "-", "online_currency"], [105, 1, 0, "-", "online_dictionary"], [105, 1, 0, "-", "online_url_search"]], "searx.search.processors.abstract": [[105, 2, 1, "", "EngineProcessor"], [105, 2, 1, "", "SuspendedStatus"]], "searx.search.processors.abstract.EngineProcessor": [[105, 3, 1, "", "get_params"]], "searx.search.processors.offline": [[105, 2, 1, "", "OfflineProcessor"]], "searx.search.processors.online": [[105, 2, 1, "", "OnlineProcessor"], [105, 0, 1, "", "default_request_params"]], "searx.search.processors.online.OnlineProcessor": [[105, 3, 1, "", "get_params"]], "searx.search.processors.online_currency": [[105, 2, 1, "", "OnlineCurrencyProcessor"]], "searx.search.processors.online_currency.OnlineCurrencyProcessor": [[105, 3, 1, "", "get_params"]], "searx.search.processors.online_dictionary": [[105, 2, 1, "", "OnlineDictionaryProcessor"]], "searx.search.processors.online_dictionary.OnlineDictionaryProcessor": [[105, 3, 1, "", "get_params"]], "searx.search.processors.online_url_search": [[105, 2, 1, "", "OnlineUrlSearchProcessor"]], "searx.search.processors.online_url_search.OnlineUrlSearchProcessor": [[105, 3, 1, "", "get_params"]], "searx.settings_loader": [[106, 5, 1, "", "DEFAULT_SETTINGS_FILE"], [106, 0, 1, "", "get_user_cfg_folder"], [106, 0, 1, "", "get_yaml_cfg"], [106, 0, 1, "", "load_settings"], [106, 0, 1, "", "load_yaml"]], "searx.sxng_locales": [[98, 5, 1, "", "sxng_locales"]], "searx.utils": [[107, 5, 1, "", "SEARCH_LANGUAGE_CODES"], [107, 0, 1, "", "convert_str_to_int"], [107, 0, 1, "", "detect_language"], [107, 0, 1, "", "dict_subset"], [107, 0, 1, "", "ecma_unescape"], [107, 0, 1, "", "eval_xpath"], [107, 0, 1, "", "eval_xpath_getindex"], [107, 0, 1, "", "eval_xpath_list"], [107, 0, 1, "", "extr"], [107, 0, 1, "", "extract_text"], [107, 0, 1, "", "extract_url"], [107, 0, 1, "", "gen_useragent"], [107, 0, 1, "", "get_embeded_stream_url"], [107, 0, 1, "", "get_engine_from_settings"], [107, 0, 1, "", "get_xpath"], [107, 0, 1, "", "html_to_text"], [107, 0, 1, "", "humanize_bytes"], [107, 0, 1, "", "humanize_number"], [107, 0, 1, "", "int_or_zero"], [107, 0, 1, "", "is_valid_lang"], [107, 0, 1, "", "js_variable_to_python"], [107, 0, 1, "", "markdown_to_text"], [107, 0, 1, "", "normalize_url"], [107, 0, 1, "", "searx_useragent"], [107, 0, 1, "", "to_string"]]}, "objnames": {"0": ["py", "function", "Python function"], "1": ["py", "module", "Python module"], "2": ["py", "class", "Python class"], "3": ["py", "method", "Python method"], "4": ["py", "exception", "Python exception"], "5": ["py", "data", "Python data"], "6": ["py", "attribute", "Python attribute"], "7": ["py", "property", "Python property"]}, "objtypes": {"0": "py:function", "1": "py:module", "2": "py:class", "3": "py:method", "4": "py:exception", "5": "py:data", "6": "py:attribute", "7": "py:property"}, "terms": {"": [3, 4, 5, 7, 10, 18, 24, 25, 26, 29, 30, 32, 35, 37, 38, 44, 45, 46, 48, 52, 55, 56, 60, 61, 62, 63, 64, 67, 68, 73, 76, 78, 79, 80, 81, 83, 84, 90, 91, 92, 93, 94, 95, 100, 103, 107, 108, 113, 114], "0": [0, 1, 2, 6, 7, 8, 10, 11, 13, 15, 18, 20, 21, 22, 23, 25, 26, 29, 35, 37, 46, 56, 68, 72, 77, 78, 80, 81, 84, 85, 86, 95, 102, 103, 104, 107, 109, 112, 113, 114], "00": [11, 113], "000": 6, "01": 11, "018": 29, "04": [81, 111, 113], "04f8": 95, "07848": 29, "0pointer": 11, "0xa9": 84, "1": [0, 1, 3, 6, 7, 8, 10, 11, 13, 18, 20, 21, 22, 23, 33, 35, 37, 46, 68, 72, 78, 80, 81, 84, 85, 86, 95, 96, 98, 101, 103, 104, 105, 107, 109, 113, 114], "10": [6, 10, 13, 18, 20, 29, 36, 44, 50, 68, 84, 95, 109], "100": [10, 18, 20, 72, 77, 91, 108, 109], "100m": 101, "100mi": 101, "1024": [29, 107], "1024b": 107, "1038": 29, "1080": [18, 29], "11": [10, 85, 113], "110": 72, "111": 72, "12": [11, 81, 85], "120": [10, 22, 26], "123": 111, "126": [10, 20], "127": [0, 6, 8, 10, 23, 35, 37, 80, 114], "128": 11, "1296000": [10, 22], "13": [7, 11, 81, 113], "1332": 25, "1337x": 109, "135": 84, "14": [3, 81], "140": [80, 113], "1476": 29, "15": [95, 101, 109, 113], "150": [52, 95, 113], "158": 95, "1595": 25, "15px": 84, "16": [6, 10, 13, 46, 68, 81, 95], "160": 113, "1609": 101, "167": 95, "168": [6, 13, 20, 78, 95], "1691": 20, "170": 113, "1744": 80, "178": 114, "18": 68, "180": 84, "184": [13, 95], "186": 11, "19": [81, 113], "192": [6, 13, 20, 95], "1920": 29, "1991": 42, "1c1c": 95, "1h": 48, "1kb": 107, "1m": 101, "1mi": 101, "1x": 109, "2": [2, 10, 11, 20, 22, 29, 46, 65, 68, 72, 77, 78, 81, 83, 84, 85, 86, 95, 103, 107, 109, 111], "20": [10, 35, 48, 68, 81, 95, 107, 113], "200": [10, 42, 81, 91], "2000": 84, "200331": 113, "2005": 68, "2010": 76, "2013": 11, "2014": 11, "2020": 76, "2020er": 56, "2021": [52, 91], "2022": [52, 67], "2023": 81, "2025": 113, "2027": 113, "209": [7, 109], "2099": 11, "2122": 84, "216": [13, 80, 95], "22": [81, 113], "22fb": 67, "23": 81, "235": 95, "24": [78, 111], "2425uwsgi": 11, "25": 84, "251": 95, "2554": 73, "257": [13, 95], "2592000": 95, "262": 107, "27017": 35, "273": 101, "2923": 113, "296": 113, "2a01": 95, "2af9": 80, "2f998": 7, "2f998d725993": 7, "3": [7, 10, 18, 37, 62, 81, 84, 85, 95, 103, 107, 109, 113], "30": [20, 68, 78, 109], "300": 29, "3000": 10, "302": 81, "308": 6, "308mb": 7, "32": 13, "3306": 37, "33691240": 73, "34": [13, 95], "344": 101, "3463": 99, "35": 113, "3552": 99, "3600": [10, 22, 95], "365": 78, "3660": 96, "370": 84, "39": 81, "3aen": 81, "3eff": 80, "3xx": 81, "4": [10, 11, 29, 42, 81, 84, 95, 103, 109], "400": [18, 84], "402": [10, 22], "403": [10, 18, 22], "404": 18, "40px": 84, "419": 52, "42": [107, 113], "4217": 29, "429": [10, 18, 22, 95], "43": 11, "44": 11, "443": 81, "456": 25, "4687": 29, "471efef6c73558e391c3adb35f4": 81, "47712402": 113, "48": 13, "49586c016434": 7, "5": [7, 10, 18, 20, 22, 37, 64, 68, 84, 95, 103, 109], "50": [77, 84], "500": 84, "50593": 26, "52": 113, "525": 84, "5432": 37, "548": 111, "555b": 80, "585": 84, "599": 18, "6": [81, 84, 85, 103, 107, 109], "60": 91, "600": 95, "604800": [10, 22], "60a2": 20, "61mb": 7, "6379": [21, 35], "639": [33, 68, 78, 107], "64": [95, 103], "666": 11, "68": 10, "6cea6eb6def9e14a18bf32f8a3": 81, "6dbb9cc54074": 7, "7": [7, 10, 42, 78, 81, 109], "70": 91, "700": 84, "7000": 46, "7048": 113, "70px": 84, "720": 78, "752": 11, "755": 23, "7700": 36, "7851230": 113, "8": [6, 11, 44, 81, 84, 85, 113], "80": 8, "8000": 26, "8080": [0, 7, 10, 18, 20, 80, 113], "8192": 11, "822": 84, "833067": 11, "85": 109, "86400": [10, 11, 22, 96], "8760": 78, "8888": [6, 8, 10, 23, 80, 114], "8983": 36, "8ed5c729": 61, "8fbf8ab": 81, "8fc2": 95, "8k": 8, "9": [42, 44, 81, 85, 109], "92": 11, "9200": 36, "93": [11, 13, 95], "9780201896831": 29, "99": 48, "993": 11, "9c823800": 7, "9g": 109, "9gag": 109, "A": [7, 13, 17, 18, 20, 21, 25, 26, 29, 30, 34, 42, 48, 52, 56, 61, 65, 73, 82, 84, 94, 97, 98, 99, 100, 101, 102, 103, 105, 107, 113], "AND": [95, 99], "AS": 37, "AT": 52, "And": [6, 80, 84, 95], "As": [11, 13, 15, 18, 25, 48, 68, 92, 95, 113], "At": [10, 36, 37, 52, 59, 71, 84, 113], "BE": [10, 22, 30, 52, 98], "BY": 37, "Be": [6, 11, 18, 70], "But": [18, 36, 82, 113], "By": [11, 18, 20, 23, 35, 37, 46, 48, 53, 56, 63, 65, 66, 74, 95, 96, 98, 106, 107, 112, 113], "For": [3, 6, 8, 9, 10, 11, 13, 18, 22, 26, 29, 30, 33, 35, 37, 40, 45, 48, 52, 56, 62, 64, 65, 68, 71, 73, 76, 80, 81, 84, 86, 90, 92, 95, 98, 108, 113], "IN": 52, "IT": [10, 22, 52], "If": [0, 3, 5, 6, 7, 8, 9, 10, 11, 15, 16, 17, 18, 20, 24, 25, 26, 28, 30, 31, 33, 34, 35, 36, 37, 38, 42, 47, 48, 50, 52, 53, 58, 63, 72, 75, 78, 80, 81, 82, 83, 84, 85, 91, 92, 95, 98, 99, 101, 103, 106, 107, 108, 112, 113], "In": [0, 6, 7, 8, 9, 10, 11, 13, 15, 17, 18, 20, 21, 25, 26, 27, 28, 29, 30, 32, 33, 35, 44, 52, 62, 63, 68, 74, 79, 82, 84, 85, 87, 95, 99, 106, 109, 111, 112, 113, 114], "It": [7, 15, 18, 26, 29, 30, 36, 37, 45, 48, 56, 70, 76, 84, 86, 100, 107, 108, 113], "Its": 71, "NO": [52, 68], "Not": [48, 72, 73, 84, 92, 105], "OR": 37, "On": [6, 7, 17, 20, 42, 80], "One": [11, 33, 64, 74], "Or": [18, 84], "Suche": 41, "That": [55, 84], "The": [0, 1, 2, 3, 4, 5, 7, 9, 10, 11, 13, 15, 18, 20, 22, 23, 24, 25, 27, 28, 30, 32, 33, 34, 35, 36, 37, 38, 40, 41, 42, 44, 45, 46, 48, 49, 50, 51, 52, 53, 57, 58, 62, 63, 64, 65, 67, 68, 69, 70, 73, 74, 76, 77, 78, 81, 82, 84, 85, 86, 90, 92, 94, 95, 96, 98, 99, 100, 101, 103, 106, 107, 108, 109, 112, 113, 114], "Then": 21, "There": [6, 8, 11, 26, 42, 46, 83, 84, 90, 107, 113], "These": [29, 84], "To": [3, 6, 7, 9, 10, 11, 13, 18, 21, 25, 26, 27, 28, 29, 30, 35, 37, 38, 40, 42, 44, 46, 47, 48, 49, 52, 68, 73, 78, 80, 81, 83, 84, 85, 90, 92, 95, 98, 108, 111, 113, 114], "With": [0, 6, 7, 15, 34, 37, 40, 45, 76, 80, 81, 84, 85, 113], "_": [31, 84], "__": 84, "__name__": 84, "_anchor": 84, "_chapter": 84, "_doc": 84, "_dot": 84, "_fmt": 52, "_info_pag": 97, "_lang": 59, "_non_overwritten_glob": 29, "_notsetclass": 107, "_rest": 84, "_section": 84, "_sphinx": 84, "_subsect": 84, "_svg": 84, "a1": 81, "a2disconf": 6, "a2dismod": 6, "a2dissit": 6, "a2enconf": 6, "a2enmod": 6, "a2ensit": 6, "a446dea1b": 81, "aa": 109, "aa_cont": 40, "aa_ext": 40, "aa_sort": 40, "aaa": 40, "aarch64": [39, 71], "abbrevi": [76, 111], "abcd": 107, "abl": [3, 13, 23, 26, 40, 45, 76, 84, 111], "abonti": 95, "about": [2, 10, 18, 25, 26, 30, 43, 44, 51, 72, 80, 81, 83, 91, 110, 113], "abov": [0, 6, 10, 15, 25, 26, 35, 36, 37, 48, 68, 80, 84, 85, 86, 99, 106, 113], "absenc": 84, "absolut": 107, "abstract": [29, 93], "abus": 92, "academ": 76, "accept": [10, 18, 30, 38, 48, 52, 63, 68, 73, 95, 111, 113], "access": [6, 9, 10, 11, 12, 13, 18, 21, 22, 34, 35, 36, 37, 38, 40, 41, 52, 66, 76, 80, 84, 92, 95, 96], "access_log": 8, "accord": [7, 11, 15, 33, 98], "account": [9, 10, 20, 21, 25, 55, 80], "accusam": 84, "achiev": 66, "across": [18, 30], "act": 0, "action": [1, 11, 33], "actionfilm": 56, "activ": [2, 6, 10, 13, 17, 18, 23, 26, 30, 31, 44, 45, 80, 82, 85, 86, 95, 111, 114], "actual": [15, 33, 42, 68, 69], "ad": [11, 17, 18, 21, 30, 36, 38, 48, 59, 68, 83, 84, 90, 92, 94, 95, 98, 99, 108], "adapt": 29, "add": [6, 7, 8, 9, 10, 11, 18, 20, 26, 27, 28, 35, 36, 37, 47, 48, 72, 73, 77, 81, 82, 84, 85, 93, 95, 104, 107, 108], "add_domain": 52, "addgrp": [21, 81], "addit": [3, 6, 11, 17, 18, 20, 23, 30, 35, 37, 38, 40, 45, 47, 49, 50, 52, 53, 64, 67, 69, 74, 76, 81, 84, 90, 94, 95, 98, 101, 109], "addition": [56, 68, 91], "additional_transl": [93, 98], "additional_unit": [93, 101], "address": [10, 12, 13, 18, 19, 20, 23, 29, 41, 73, 92, 100], "adipisici": 84, "adjust": [26, 42, 81], "admin": [10, 18, 38, 80, 84], "administr": [10, 18, 20, 34, 36, 38, 86, 91, 92, 112], "admonit": 79, "adopt": 26, "adorn": 84, "advanc": [10, 20, 38, 65], "advantag": 84, "advertis": 92, "ae": 52, "aef": 11, "af": 107, "af2cae6": 84, "af77ec3": 10, "affect": [24, 25], "after": [10, 22, 56, 73, 81, 82, 84, 107, 113], "ag": [42, 46], "again": [42, 85], "against": [7, 10], "agent": [10, 12, 13, 20, 29, 95, 107, 111], "aggreg": [91, 92, 108], "ago": 7, "agpl": 113, "ah": 48, "ahmia": 10, "ahmia_blacklist": 86, "ahrefsbot": 95, "aim": [36, 43, 84, 93], "aka": [44, 63, 73, 97, 98], "al": [1, 18, 44, 73, 107, 109], "alia": [6, 8, 101], "alias": 101, "alias_symbol": [93, 101], "align": 84, "aliquid": 84, "aliquyam": 84, "aliv": [10, 20], "all": [1, 6, 7, 9, 10, 11, 13, 15, 17, 18, 20, 22, 25, 26, 28, 29, 30, 33, 35, 36, 37, 38, 44, 45, 48, 52, 56, 62, 65, 72, 73, 74, 78, 80, 81, 82, 83, 84, 85, 86, 90, 95, 97, 98, 100, 103, 104, 105, 106, 107, 112, 113, 114], "all_local": [30, 48], "alloc": 0, "allow": [6, 10, 18, 19, 20, 23, 30, 34, 44, 52, 56, 70, 71, 84], "allow_emb": 46, "allow_nan": 30, "allow_non": 107, "allow_redirect": 29, "allowoverrid": 6, "along": 37, "alp": 109, "alpha": 50, "alpin": [7, 32, 109], "alpine_arch": 39, "alpinelinux": [39, 109], "alreadi": [26, 63, 80, 81, 85, 90, 99, 107], "also": [3, 6, 7, 10, 11, 13, 20, 25, 26, 31, 35, 38, 40, 42, 48, 58, 71, 77, 80, 83, 84, 92, 98, 99, 107, 108, 109, 111], "alt": 84, "alter": [26, 44], "altern": [9, 15, 18, 24, 36, 55, 62, 64, 81, 83, 84, 99, 113], "altogeth": 19, "alwai": [7, 8, 20, 25, 26, 29, 42, 45, 52, 92, 113], "am": 107, "ambigu": 101, "amd64": 81, "amet": 84, "among": [26, 92], "amount": [29, 45, 48, 55, 103], "amsmath": 84, "an": [5, 10, 13, 15, 17, 18, 20, 21, 24, 26, 29, 30, 31, 32, 34, 35, 36, 37, 38, 40, 42, 45, 46, 47, 48, 52, 55, 58, 59, 62, 64, 68, 69, 70, 72, 73, 74, 77, 78, 80, 84, 86, 90, 91, 92, 95, 96, 98, 99, 104, 107, 108, 111], "anaconda": 109, "analysi": [3, 13], "anan": 40, "ancel": 84, "anchor": 79, "android": 52, "ani": [5, 6, 8, 9, 20, 26, 37, 44, 45, 48, 53, 56, 63, 67, 70, 73, 75, 81, 84, 85, 86, 95, 97, 98, 107], "anna": [32, 109], "annaarchivist": 40, "annas_arch": [40, 109], "annoi": 84, "anonym": [19, 40, 91, 92, 103, 108], "anoth": [11, 18, 29, 33, 42, 80, 84, 101, 113], "answer": [4, 20, 80, 84, 91, 92], "anymor": [6, 7, 72], "anyon": 91, "anyth": [38, 92, 108], "anywai": 84, "ap": 109, "apach": [2, 4, 9, 11, 13, 25, 91, 113, 114], "apache2": 6, "apache2ctl": 6, "api": [4, 15, 18, 28, 29, 30, 32, 33, 41, 42, 45, 46, 47, 51, 53, 54, 55, 56, 61, 62, 64, 65, 66, 67, 70, 72, 73, 74, 77, 79, 90, 91, 95], "api2u": 69, "api_kei": [18, 29, 47, 67, 70, 72], "api_max": 95, "api_ord": 47, "api_path": [33, 51], "api_url": 64, "api_usernam": 47, "api_window": 95, "apikei": [18, 90], "apiyacysearch": 74, "apk": 109, "apkm": 109, "apkmirror": 109, "apm": 109, "app": [8, 11, 13, 45, 52, 58, 73, 74, 80, 81, 84, 95, 97, 114], "appear": 84, "append": [6, 56], "appl": [106, 109], "apple_app_stor": 109, "apple_map": 109, "appli": [23, 26, 52, 65, 107, 113], "applic": [0, 11, 23, 70, 80, 84, 96, 106, 109], "appreci": 108, "approach": 11, "approv": 72, "approxim": 98, "apr": 113, "april": 113, "apt": [3, 6, 7, 8, 10, 84, 85], "aq": 7, "ar": [1, 3, 7, 9, 10, 11, 13, 15, 17, 18, 20, 23, 24, 25, 26, 30, 32, 34, 35, 36, 37, 38, 40, 42, 44, 46, 47, 48, 50, 51, 52, 53, 54, 56, 62, 63, 64, 65, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 80, 81, 82, 83, 84, 85, 86, 90, 91, 93, 94, 95, 98, 99, 101, 103, 106, 107, 109, 111, 113], "ar_a": 46, "ar_aa": 46, "ar_eg": 46, "ar_sa": 46, "arab": 44, "arbitrari": [10, 34, 35], "arc": 109, "arch": [1, 3, 6, 8, 10, 11, 15, 18, 32, 84, 109], "arch_r": [39, 71], "architectur": [4, 9, 39, 62, 71, 91, 114], "archiv": [10, 24, 32, 81, 95, 109], "archivist": 40, "archlinux": [11, 18, 41, 109, 113], "archlinuxcn": 41, "ard": 69, "area": [42, 44, 48, 77], "area_to_str": 48, "arg": [52, 107], "argument": [11, 12, 26, 33, 40, 41, 52, 65, 68, 76, 84, 95, 98, 103, 113], "armhf": 39, "armv6l": 71, "armv7": 39, "armv7l": 71, "arrai": 29, "arrang": 99, "arrow": 84, "art": [28, 84], "artic": [28, 109], "articl": [7, 29, 40, 73, 76, 78, 79, 80, 97, 103], "arx": 109, "arxiv": 109, "arz": 107, "as_ylo": 52, "asc": [36, 49, 50], "ascend": [36, 49], "asciimoo": 10, "ascrib": 84, "asdf": 79, "ask": [33, 109], "ask_yn": 113, "askubuntu": 109, "aspect": [26, 80], "assembl": [27, 42, 52, 61, 68, 73], "assert": 26, "assign": [13, 18, 29, 58, 84, 98, 109], "assign_head": 58, "assum": [10, 84], "assumpt": 98, "assur": 91, "ast": 107, "asterisk": 84, "async": [42, 52], "asyncv2": 42, "attach": 82, "attempt": 98, "attend": 80, "attent": [83, 84], "attribut": [31, 35, 37, 38, 70, 77, 84], "attribute_nam": 70, "au": [52, 65], "audienc": [46, 84], "audio": [45, 74, 109], "auth_plugin": 37, "auth_token": 36, "authent": [36, 37, 70], "author": [26, 29, 52, 84], "auto": [10, 24, 63, 80, 84, 113], "autobuild": [26, 81], "autocomplet": [1, 2, 7, 10, 22, 86], "autocomplete_min": 10, "autodetect": 10, "autodoc": 84, "autoindex": 6, "autoindex_modul": 6, "autom": 91, "automat": [7, 10, 11, 24, 73, 84, 110], "av": 107, "avail": [6, 7, 8, 10, 11, 12, 13, 19, 22, 34, 38, 44, 54, 55, 61, 69, 73, 81, 86, 92], "avatar": 47, "averag": 111, "avg": 111, "avoid": [9, 12, 13, 20, 34, 68, 90], "awar": [6, 11, 70, 84], "az": 107, "az1143": 114, "azb": 107, "b": [84, 85, 102, 107], "ba": 107, "babel": [3, 10, 30, 44, 52, 65, 68, 81, 90, 94, 98], "babel_extract": 94, "back": [7, 80, 83, 103], "backend": [10, 22, 33, 62], "backend_url": 62, "backlink": [77, 84], "backquot": 84, "backslash": 84, "backup": 80, "bag": 107, "baiduspid": 95, "ban": [10, 22, 70, 92], "ban_time_on_fail": [10, 22], "bandcamp": 109, "bandwidth": [7, 10, 25], "bang": [18, 30, 84, 109, 110], "bar": [4, 12, 84, 102, 107, 108], "base": [3, 7, 10, 12, 13, 23, 29, 33, 34, 35, 36, 39, 48, 50, 51, 52, 61, 62, 66, 67, 71, 73, 78, 80, 86, 95, 96, 105, 107, 108, 113], "base64": 10, "base_url": [2, 7, 10, 18, 23, 29, 33, 36, 42, 47, 50, 51, 53, 55, 57, 61, 66, 70, 74, 107], "baseprofil": 84, "bash": [7, 10, 35, 37, 38, 80, 81, 82, 84, 85, 113, 114], "bashrc": 85, "basic": [10, 12, 37, 44, 77, 79, 108, 113], "batch": 112, "baz": 84, "bb": [1, 109], "bc": 109, "bcd": 107, "bcl": 107, "bd": 52, "becaus": [18, 26, 29, 45, 92], "becom": [84, 111], "been": [11, 25, 26, 42, 80, 90, 91, 99, 103, 113], "befor": [9, 10, 11, 20, 25, 26, 35, 37, 38, 80, 81, 82, 83, 84, 92, 95, 113], "before_request": 13, "began": 76, "begin": 107, "beginn": 8, "behavior": [13, 84, 111], "behaviour": [11, 26, 82], "behind": [13, 23, 62, 108], "being": [23, 24, 56, 91, 92, 111], "belgiqu": 98, "belgium": 30, "believ": 108, "belong": [77, 84, 109], "below": [0, 9, 10, 11, 18, 20, 26, 29, 34, 35, 37, 82, 84, 95, 107], "besid": [48, 54, 92], "best": [3, 30, 48, 56, 81, 84, 92, 98], "beta": 40, "better": [3, 6, 7, 8, 10, 29, 33, 42, 92, 107, 108], "between": [12, 18, 29, 73, 84, 98, 107], "bg": [52, 75, 107], "bh": 107, "bi": [18, 109], "big": [84, 103], "bigger": 20, "bii": 109, "bil": 109, "bildung": 43, "bilibili": 109, "billion": 77, "bin": [3, 7, 10, 11, 81, 109, 113], "binari": [10, 32, 37, 39, 81], "bind": [7, 23, 37], "bind_address": [0, 7, 10, 15, 23], "bing": [15, 32, 84, 109], "bing_imag": [42, 109], "bing_new": [42, 109], "bing_video": [42, 109], "bingbot": 95, "bit": [13, 72, 84, 113], "bitbucket": [1, 78, 109], "bitlybot": 95, "biv": 109, "black": [24, 81, 84], "black_opt": 81, "black_target": 81, "blacklist": 10, "blank": [10, 22, 24, 84], "blexbot": 95, "block": [0, 10, 13, 20, 23, 41, 48, 79, 95, 96, 103, 113], "block_ip": [13, 95], "blog": [11, 80, 84], "bmp": 77, "bn": [52, 107], "bo": 107, "bodi": [10, 26, 84], "boilerpl": 10, "bokm\u00e5l": 68, "bold": 84, "boldfac": 84, "book": [29, 40, 76], "book_com": 40, "book_fict": 40, "book_nonfict": 40, "book_unknown": 40, "bookfind": 76, "bool": [29, 30, 33, 52, 58, 82, 95, 98, 104, 107], "boolean": [29, 33, 82, 84], "born": 26, "bot": [7, 10, 13, 23, 25, 44, 48, 68, 91, 93], "botdetect": [13, 23, 95], "both": [11, 26, 63, 73, 86, 92, 95, 107], "bottom": [10, 24], "boundingbox": 29, "box": [2, 9, 25, 73, 79, 80, 82, 91, 113], "bpb": [32, 109], "bpy": 107, "br": [44, 52, 98, 107, 109], "br_br": 68, "branch": [11, 25, 26, 81, 85, 90], "brand": [4, 10, 14, 26, 80, 81], "brave": [32, 109], "brave_categori": 44, "brave_spellcheck": 44, "break": [26, 84], "brimg": 109, "bring": [84, 98], "brnew": 109, "broken": [48, 84], "brows": 56, "browser": [0, 7, 10, 19, 22, 24, 26, 48, 73, 80, 81, 92, 95, 107, 108, 109, 111, 113], "brvid": 109, "bsd": 35, "bt": [45, 109], "bt4g": [32, 109], "bt4g_categori": 45, "bt4g_order_bi": 45, "bt4gv": 45, "btdigg": 109, "buffer": [11, 25], "bug": [11, 81, 91], "bugfix": 11, "bugreport": [11, 26], "build": [2, 4, 5, 10, 18, 21, 28, 30, 46, 52, 68, 70, 75, 77, 78, 79, 80, 83, 85, 98, 101, 113, 114], "build_engine_local": [93, 98], "build_result": 70, "builder": 84, "buildhost": [4, 80, 81, 83, 91, 112, 114], "built": [7, 26, 29, 71, 74], "builtin": [4, 82, 91], "builtwith": 47, "bullet": 103, "bump": 81, "bunddev": 69, "bundesstel": 69, "bundeszentral": 43, "bundl": 10, "burst": 95, "burst_max": 95, "burst_max_suspici": 95, "burst_window": 95, "busi": 35, "bust": [7, 10, 11, 24, 25], "busybox": 39, "button": 10, "bw": 52, "bxr": 107, "bypass": 13, "byte": [29, 77, 107], "bz2": 37, "c": [10, 11, 52, 75, 80, 81, 82, 84, 101, 107], "c3tv": 109, "ca": [10, 20, 30, 44, 52, 98, 107], "ca_e": 98, "cach": [7, 10, 11, 24, 25, 48, 68, 97, 103, 107], "cache_url": [10, 24], "cache_vqd": 48, "caching_sha2_password": 37, "caddi": [7, 9, 109], "calcul": [10, 12, 73], "call": [17, 18, 30, 48, 52, 77, 80, 81, 83, 84, 95, 103, 104, 107, 109, 113], "callabl": [30, 101], "callback": 82, "can": [0, 1, 2, 3, 6, 7, 8, 9, 10, 11, 13, 15, 17, 18, 20, 21, 24, 25, 26, 29, 30, 32, 33, 34, 35, 36, 37, 38, 42, 44, 45, 46, 48, 49, 52, 53, 55, 63, 64, 66, 68, 69, 71, 72, 73, 77, 80, 81, 82, 83, 84, 85, 91, 92, 94, 95, 98, 99, 101, 102, 103, 106, 107, 109, 110, 111, 113, 114], "canada": 98, "cancel": 84, "cannot": [3, 48, 52, 84, 92, 95, 108, 111], "capabl": [26, 36], "captcha": [4, 10, 13, 22, 52, 68, 91, 92, 96], "caption": 84, "cardin": 26, "care": [18, 34, 68, 70, 84, 90, 108, 113], "carv": 18, "case": [9, 10, 18, 20, 22, 25, 36, 52, 62, 68, 73, 74, 78, 80, 92, 106, 107, 114], "cat": [11, 113], "catcher": 84, "categori": [1, 10, 17, 18, 24, 29, 30, 37, 42, 44, 45, 47, 48, 56, 63, 67, 70, 74, 84, 86, 104, 109, 110], "categories_as_tab": [4, 14, 18, 84, 109], "categorysnippet": 33, "caus": [10, 92], "caution": 84, "caveat": 84, "cb": 109, "cbk": 107, "cc": [95, 109], "ccc": 109, "ccc_media": 109, "cd": [7, 9, 10, 80, 81, 85], "cdn": 3, "ce": 107, "ceb": 107, "ceid": [52, 81], "ceid_list": 52, "cell": 84, "center": [10, 24], "center_align": [10, 24], "cer": [10, 20], "cert": [10, 20], "certain": 56, "certif": [10, 20], "cf_searxengineaccessdeni": [10, 22], "cf_searxenginecaptcha": [10, 22], "cfai": 109, "cfg": [94, 95], "cfg_schema": 95, "cgi": 11, "ch": [52, 55, 98], "chain": [81, 83, 111, 113], "chang": [10, 11, 13, 15, 16, 20, 23, 25, 26, 45, 80, 81, 82, 83, 84, 85, 108], "changeabl": 13, "changem": 36, "channel": 0, "chapter": [26, 84, 85, 114], "char": 34, "charact": [10, 26, 34, 52, 73, 84], "chat": 108, "chdir": [11, 80], "cheat": 7, "check": [0, 3, 4, 7, 12, 13, 21, 26, 29, 34, 40, 44, 58, 76, 81, 90, 91, 93, 95, 98, 107, 113, 114], "check_circular": 30, "check_parsing_opt": 34, "checker": 79, "checkout": 81, "checkput": 81, "chicago": 28, "chines": [42, 44, 73], "chmod": [11, 113], "choic": [5, 44, 84, 92, 107, 112], "chompj": 107, "choos": [5, 26, 44, 83], "chosen": 55, "chown": 10, "chrome": 108, "chromium": 108, "chronolog": 84, "ci": [81, 87, 91], "citi": 29, "ckb": 107, "cl": [52, 109], "class": [13, 30, 77, 78, 93, 95, 97, 104], "classic": 73, "classif": 107, "classifi": [13, 84], "classmethod": 30, "clean": [7, 79, 85], "clear": [44, 92], "client": [13, 53, 61, 80, 90, 95, 102, 103], "client_token": 95, "clita": 84, "clone": [7, 9, 10, 80, 81, 83, 85, 90, 114], "close": [10, 27, 28, 77, 95], "cloudflar": [10, 22], "cloudflareai": 109, "cmd": [35, 37, 38, 80, 81, 82, 112, 113, 114], "cn": [52, 73, 98, 107], "cn_cn": 68, "co": [52, 107], "coalesc": 37, "code": [6, 10, 11, 18, 22, 24, 25, 29, 30, 33, 42, 46, 48, 52, 60, 61, 68, 71, 73, 78, 79, 80, 81, 83, 86, 91, 92, 96, 103, 107, 108, 109, 113], "codeberg": [90, 109], "coffe": 113, "col": 84, "collabor": [50, 51, 73], "colleagu": 18, "collect": [3, 35, 36, 45, 68, 71, 77, 103], "colon": 84, "color": 107, "colspan": 84, "column": 84, "com": [0, 2, 7, 9, 10, 16, 18, 24, 29, 30, 32, 42, 45, 46, 47, 48, 50, 51, 52, 58, 64, 67, 73, 74, 75, 77, 80, 81, 82, 83, 84, 85, 86, 99, 107, 109, 113, 114], "combin": [6, 52, 103], "come": [8, 18, 26, 65, 91, 92, 95, 108, 111, 113], "comfort": [81, 83, 84], "comma": [18, 34, 86], "command": [0, 3, 4, 6, 10, 11, 21, 25, 26, 32, 38, 80, 81, 84, 90, 91, 103], "comment": [10, 25, 29, 35, 36, 37, 38, 53, 81, 84, 109], "comment_tag": 94, "commentari": 69, "commit": [10, 25, 61, 80, 81, 83, 90], "commodi": 84, "common": [11, 40, 44, 49, 52, 68, 73, 76, 81, 91, 92], "commonli": 84, "commonmark": 97, "commun": [6, 8, 10, 11, 20, 23, 37, 38, 44, 53, 85, 91, 108, 109], "compact": 84, "compani": [36, 92], "compar": [6, 7, 11, 13, 17, 49, 52, 68, 73, 80, 101, 111, 113], "comparison": 36, "compat": [10, 20, 95], "compil": [39, 71, 81, 83, 85, 107], "complet": [11, 25, 26, 32, 52, 62, 80, 81, 85, 86, 106, 113, 114], "complex": 37, "compliant": 7, "compon": [6, 62, 82, 95], "compos": [52, 73], "compress": [52, 107], "compromis": [92, 108], "comput": [81, 92], "con": 84, "concat": 107, "concept": [18, 32, 59], "concern": [26, 34, 108], "concert": 37, "conclus": 91, "concret": 84, "concurr": 10, "conda": 109, "condit": [84, 105, 107], "conf": [3, 6, 8, 11, 84, 114], "config": [1, 10, 11, 18, 25, 29, 38, 80, 84, 90, 93, 106, 112], "configur": [4, 6, 7, 8, 11, 15, 18, 20, 30, 31, 32, 36, 38, 44, 47, 63, 80, 84, 86, 90, 91, 92, 94, 95, 106, 107, 110], "conflict": 113, "confnam": 11, "confus": [48, 84], "congress": [32, 109], "connect": [0, 2, 8, 10, 11, 13, 20, 21, 25, 37, 38, 58, 80, 91, 95, 102], "connector": 37, "consciou": 108, "consectetur": 84, "consent": 52, "consequ": [20, 26], "consequat": 84, "consetetur": 84, "consid": [25, 30, 58, 68], "consider": 11, "consist": [62, 80], "constantli": 77, "construct": [29, 84], "contact": [10, 19, 20, 108], "contact_url": [10, 19], "contain": [4, 5, 10, 11, 12, 24, 31, 34, 38, 46, 48, 56, 63, 69, 79, 84, 90, 91, 95, 96, 99, 104, 106, 108, 112, 113], "content": [10, 23, 29, 36, 37, 40, 46, 55, 63, 66, 69, 70, 73, 78, 90, 92, 97], "content_xpath": 78, "context": [37, 46, 82, 84, 97, 113], "continu": [52, 82, 84], "contrari": 39, "contribut": [54, 79, 81, 83, 91, 108], "contributor": 84, "control": [6, 11, 81, 92], "conveni": [81, 103], "convent": 26, "convers": 73, "convert": [12, 29, 73, 84, 91, 93, 107, 111], "convert_str_to_int": [93, 107], "cooki": [29, 42, 48, 63, 68, 78, 91, 92], "cool": 48, "copi": [7, 10, 13, 29, 30, 84, 90, 113], "copyright": 84, "core": [3, 11, 30, 52, 62, 68, 98], "coreutil": 85, "corner": 26, "correct": [2, 10, 13, 23, 33], "correctli": [13, 34, 52, 95], "correspond": [6, 11, 98], "could": [10, 11, 29, 48, 77, 84, 103], "count": [11, 29, 45, 73, 84, 95], "counter": 103, "counterpart": [81, 90], "countri": [29, 42, 52, 65, 98], "countrycod": 65, "cours": 84, "cover": 81, "coverag": 81, "cp": 10, "cpan": 109, "cpp": 109, "cpprefer": 109, "cpu": 11, "cr": [52, 109], "crate": 109, "crawl": 77, "crawl_dat": 77, "crawler": 84, "creat": [4, 6, 7, 8, 9, 11, 23, 30, 31, 34, 37, 40, 44, 46, 50, 72, 80, 81, 84, 86, 90, 101, 103, 113], "create_timestamp_asc": 33, "create_timestamp_desc": 33, "created_tim": 46, "creation": [3, 84], "credibl": 67, "criteria": 50, "cross": 84, "crossref": 109, "crowdview": 109, "cruis": 56, "cryptographi": 23, "cspan": 84, "css": [12, 81, 83, 95], "csv": [10, 22, 86], "csv_tabl": 84, "ctan": 84, "ctrl": [10, 80], "ctx": 82, "cu": 52, "cup": 113, "curl": [0, 10, 13, 85], "curli": 109, "currenc": [29, 93, 109], "currency_convert": 109, "current": [10, 18, 24, 26, 29, 30, 52, 69, 81, 95, 103], "cursor": 37, "custom": [10, 20, 26, 30, 36, 41, 44, 65, 73, 84, 90, 91, 93, 106, 111], "custom_query_json": 36, "customiz": 1, "customlog": 6, "cv": [107, 109], "cy": 107, "cycl": 80, "cz": [52, 109], "d": [0, 6, 7, 8, 11, 48, 107, 113], "d41586": 29, "da": [75, 107, 109], "daemon": 11, "dai": [11, 29, 42, 52, 78, 86, 96], "daili": 80, "dailymot": [32, 107, 109], "danger": 84, "danhper": 85, "dao": 109, "dark": [10, 24], "darmarit": 10, "dash": 7, "data": [4, 29, 30, 34, 35, 36, 37, 42, 45, 48, 52, 58, 68, 69, 81, 84, 89, 92, 93, 95, 107, 108], "data_typ": 30, "databas": [2, 10, 13, 21, 23, 25, 32, 37, 38, 56, 84, 103], "dataclass": 30, "date": [1, 29, 77], "datetim": [29, 84], "db": [2, 7, 10, 11, 13, 21, 25, 35, 37, 80, 91, 93, 95, 103], "dbpedia": [10, 22, 86], "dc": 109, "ddd": 109, "ddg": [48, 109, 111], "ddg_categori": 48, "ddi": [48, 109], "ddn": 109, "ddv": 109, "de": [1, 10, 11, 18, 22, 24, 33, 37, 41, 44, 52, 56, 65, 78, 98, 107, 109, 114], "de_facto": 98, "deactiv": [10, 19], "deafult": 107, "deal": [18, 44, 107], "debian": [3, 7, 8, 10, 84, 85], "debug": [2, 4, 9, 10, 19, 80, 81], "dec": 11, "decentr": [60, 108], "decim": [29, 107], "declar": 31, "decod": 52, "decoupl": 90, "decreas": [10, 24], "dedic": [11, 80, 84], "deep": 95, "deeper": [81, 84], "deezer": 109, "def": [29, 82, 84, 95, 97, 107], "default": [6, 7, 8, 10, 11, 13, 15, 18, 19, 20, 22, 24, 26, 30, 31, 33, 34, 35, 37, 38, 40, 44, 45, 46, 48, 50, 51, 53, 58, 63, 65, 68, 70, 71, 74, 82, 84, 86, 92, 95, 96, 97, 98, 102, 103, 105, 106, 107, 109, 110, 112, 113], "default_http_head": [10, 23], "default_lang": [10, 18, 22], "default_local": [1, 10, 24], "default_on": 82, "default_request_param": 105, "default_settings_fil": [93, 106], "default_them": [1, 10, 24], "defin": [7, 13, 15, 18, 20, 24, 30, 35, 37, 48, 82, 84, 85, 95, 113], "definit": [52, 109], "deflat": 95, "dejavu": 3, "del": 103, "delet": [18, 30, 81, 86, 103, 113], "delimit": [34, 84], "demo": [18, 32, 38, 103], "demo_offlin": [27, 38], "demo_onlin": 28, "demon": 10, "demonstr": [37, 82], "deni": [6, 10, 11, 22, 96], "depend": [4, 6, 8, 12, 13, 25, 29, 41, 68, 80, 81, 84, 85, 86], "deploi": [7, 23, 24, 81, 84], "deprec": [25, 95], "depth": [73, 84], "desc": [37, 49, 50], "descend": 49, "describ": [6, 9, 11, 15, 18, 30, 34, 35, 36, 37, 80, 81, 84, 107, 114], "descript": [12, 21, 26, 29, 37, 38, 42, 46, 52, 68, 82, 84, 93, 98, 100, 107], "deserv": 26, "design": [10, 36, 39, 62, 84], "desir": [29, 73], "desktop": [0, 24, 66, 80], "detach": 7, "detail": [6, 10, 11, 18, 19, 29, 30, 37, 52, 77, 84], "detect": [10, 13, 22, 24, 48, 91, 93, 107], "detect_google_captcha": 52, "detect_languag": [93, 107], "determin": [0, 13, 30, 32, 48, 95, 98, 107], "detriment": 10, "deutsch": 1, "deutschland": 56, "dev": [3, 6, 8, 10, 74, 81, 84, 85, 109], "devel": [3, 10], "develop": [4, 10, 14, 26, 33, 44, 81, 84, 87, 91, 107, 108, 112, 113], "deviantart": 109, "devop": [2, 9, 25, 80, 91, 113], "devpkg": 81, "dfrac": 84, "dh": 109, "dhivehi": 98, "dialog": 52, "diam": 84, "dict": [29, 30, 31, 34, 52, 58, 70, 77, 82, 95, 98, 104, 106, 107], "dict_subset": [93, 107], "dictionari": [18, 30, 52, 93, 95, 98, 103, 107], "dictzon": 109, "did": [6, 95], "didn": 10, "diff": 84, "differ": [6, 11, 12, 18, 20, 26, 29, 42, 44, 52, 53, 64, 68, 73, 78, 80, 84, 106, 108, 111, 113], "digest": [12, 74, 111], "digit": [44, 65, 98, 108], "digraph": 84, "diq": 107, "dir": 10, "direct": [6, 8, 79, 83, 84, 98], "directli": [19, 23, 70, 71, 81, 90, 111, 113], "directori": [6, 7, 11, 20, 34, 97, 109], "dirmngr": 85, "dirti": 7, "disabl": [4, 10, 11, 15, 17, 18, 19, 20, 22, 24, 27, 28, 30, 37, 44, 74, 80, 82, 84, 86, 109, 113], "disabled_engin": 86, "disabled_plugin": 86, "disadvantag": 84, "discours": [32, 109], "discov": 56, "discoveri": [18, 34, 35, 36, 37], "discrep": 107, "discuss": [91, 109], "displai": [3, 7, 10, 12, 17, 18, 19, 29, 30, 35, 37, 68, 69, 73, 84, 109], "display_error_messag": [18, 29, 30], "display_typ": 73, "displaystyl": 84, "dispos": 112, "disrespect": 26, "dist": [26, 81], "distinguish": [84, 98], "distribut": [6, 7, 8, 11, 18, 20, 39, 74, 80, 84, 107], "distributor": 4, "distro": 80, "dive": 92, "divid": [80, 101], "dl_prefix": 66, "dm": 109, "dnf": [3, 6, 8, 10, 84], "do": [0, 3, 5, 6, 8, 9, 11, 12, 18, 26, 27, 28, 35, 36, 37, 44, 61, 64, 68, 77, 80, 81, 83, 84, 92, 98, 107, 110, 113], "doc": [4, 6, 10, 11, 16, 18, 30, 37, 45, 79, 80, 84, 107, 108, 113], "docker": [4, 5, 9, 39, 58, 80, 81, 91, 109], "docker_hub": 109, "dockerfil": 7, "dockerhub": 7, "docs_url": [10, 16], "doctest": 84, "doctre": 84, "document": [3, 6, 16, 18, 30, 32, 33, 35, 36, 37, 48, 52, 53, 66, 69, 81, 84, 91, 93, 97, 108, 113], "documented_modul": 84, "documentroot": 6, "docutil": 84, "doe": [6, 9, 10, 11, 18, 25, 29, 30, 37, 38, 40, 41, 42, 44, 45, 48, 52, 59, 62, 66, 67, 68, 73, 77, 80, 84, 86, 91, 103, 105, 106, 107, 110, 113], "doesn": [15, 23, 24, 31, 37, 45, 55, 56, 63, 82, 107, 108], "doi": [10, 12, 29], "dolor": 84, "dom": [52, 58], "domain": [66, 75, 77, 84], "domin": 26, "don": [6, 7, 10, 13, 15, 21, 24, 25, 26, 29, 78, 83, 84, 91, 98, 113], "donat": [10, 19], "donate_url": 10, "donation_url": [10, 19], "done": [25, 52, 80, 81, 84, 85, 90, 95, 107, 113], "dontlog": 6, "dot": [3, 81], "doubl": 84, "down": [48, 63, 98], "download": [9, 10, 23, 29, 37, 66, 74, 77, 80, 81, 84, 85], "download_error": 77, "dpy": 109, "dr": [48, 80], "drag": 77, "draw": 54, "driven": [37, 62, 67, 91, 108], "driver": 81, "drop": [7, 28, 77, 83, 95, 103, 113], "drop_count": [93, 103], "dry": 7, "dsb": 107, "dt": 33, "dty": 107, "duckduckgo": [2, 10, 15, 22, 32, 86, 109, 111], "duckduckgo_definit": [48, 109], "duckduckgo_extra": [48, 109], "due": [77, 103], "dummi": 18, "duo": 84, "duplic": [46, 108], "durat": [29, 37, 46, 103], "dure": [37, 52, 57], "duref": 84, "dv": [98, 107], "dvisvgm": 3, "dynam": [0, 13], "dz": 109, "e": [7, 10, 13, 17, 26, 29, 36, 37, 44, 48, 52, 68, 69, 76, 80, 81, 83, 84, 85, 92, 95, 97, 98, 101, 106, 107, 109, 111, 113, 114], "e121": 80, "e5a2": 20, "ea": 84, "each": [10, 11, 15, 20, 25, 29, 30, 34, 36, 38, 68, 73, 78, 80, 82, 84, 85, 86, 90, 101, 103, 107, 113], "easi": [7, 80, 91], "easier": 26, "easiest": 34, "easili": [13, 26, 58], "echo": [10, 85, 113], "ecma": 107, "ecma_unescap": [93, 107], "ecosi": 74, "ecosystem": 84, "ecretvalu": 15, "edg": 108, "edit": [11, 26, 73, 80, 81, 84, 92], "editor": 29, "edu": 28, "ee1f": 20, "effect": [9, 11, 26, 84], "effici": [62, 107], "eg": 52, "egnine_lang": 30, "egnine_region": 30, "eirmod": 84, "either": [35, 107, 108], "el": [52, 75, 107], "elast": 36, "element": [34, 68, 70, 84, 107], "elementbas": 107, "elit": 84, "elitr": 84, "els": [84, 90, 113], "emac": 84, "email": [10, 20], "emb": [4, 46, 62, 84, 107], "embed": [1, 7, 84], "eml": 107, "emoji": 98, "emperor": 11, "emphasi": 84, "empti": [6, 15, 37, 40, 48, 52, 58, 66, 78, 84, 98, 107, 113], "en": [1, 10, 11, 18, 19, 20, 22, 24, 29, 33, 44, 52, 58, 68, 73, 75, 78, 81, 84, 97, 98, 107, 109], "en_au": 48, "en_ca": 48, "en_en": 46, "en_gb": [46, 48, 68], "en_u": [18, 29, 46, 48], "enabl": [1, 4, 6, 7, 8, 10, 11, 15, 18, 19, 20, 23, 24, 26, 29, 30, 33, 34, 36, 37, 58, 73, 81, 84, 86, 99, 100, 101, 109], "enable_http": [18, 29, 30, 35, 36], "enable_http2": [10, 18, 20], "enable_metr": [10, 19], "enabled_engin": 86, "enabled_engine_count": 84, "enabled_plugin": [10, 86, 99, 100, 101], "encapsul": 80, "enclos": 84, "encod": [10, 11, 30, 52, 68, 84, 95], "encompass": 68, "encount": 108, "encourag": 84, "encrypt": 91, "encyclopedia": 73, "encyclosearch": 109, "end": [40, 59, 76, 83, 84, 107, 113], "endfor": 84, "endif": 84, "endpoint": [33, 47, 54, 70, 86], "enforc": 92, "eng_lang": 48, "eng_region": 48, "eng_trait": [48, 52, 73], "engin": [0, 1, 4, 10, 13, 14, 15, 17, 20, 22, 26, 36, 39, 40, 41, 45, 46, 47, 50, 51, 53, 57, 58, 60, 62, 64, 65, 69, 70, 71, 72, 73, 74, 76, 77, 79, 82, 84, 86, 91, 92, 93, 96, 98, 104, 105, 110], "engine_categori": 105, "engine_data": [31, 104], "engine_default_arg": 31, "engine_list": 31, "engine_local": 98, "engine_nam": 105, "engine_set": [27, 28, 34, 38, 40, 57, 70, 76], "engine_shortcut": [31, 32], "engine_trait": [30, 40, 41, 42, 44, 46, 48, 52, 58, 60, 61, 65, 68, 73, 75, 76, 81], "engine_traits_fil": 30, "engine_typ": [30, 32, 77, 84], "enginelib": [30, 52], "engineprocessor": 105, "engineref": [93, 104], "engineref_list": 104, "enginetrait": [30, 40, 41, 42, 44, 46, 48, 52, 58, 60, 61, 65, 68, 73, 75, 76], "enginetraitsencod": 30, "enginetraitsmap": 30, "english": [1, 18, 22, 48, 98, 107], "english_nam": 98, "enim": 84, "enough": [25, 107], "ensur": [2, 10, 26], "ensure_ascii": 30, "enter": [10, 80], "entir": [6, 10, 103], "entiti": 48, "entri": [7, 10, 27, 28, 79, 84], "entrypoint": 7, "enum": 34, "env": [6, 11, 79, 80, 83, 113], "environ": [7, 10, 15, 26, 35, 37, 38, 79, 80, 83, 85, 91, 98, 106, 113, 114], "environmenterror": 106, "eo": [1, 84, 107], "eof": 113, "eol": 113, "eoss": 113, "epub": [40, 76], "equal": 101, "equat": [3, 79], "equival": 107, "erat": 84, "error": [10, 11, 13, 18, 19, 20, 22, 25, 29, 30, 33, 34, 38, 58, 72, 77, 78, 84, 95, 96, 107], "error_log": 8, "es_ar": 48, "escap": 84, "espa\u00f1ol": 107, "especi": 84, "esperanto": 1, "essenti": [3, 10, 13, 81, 85, 106], "est": 84, "establish": 10, "et": [52, 75, 84, 107], "etc": [2, 6, 7, 8, 10, 11, 13, 15, 25, 26, 44, 80, 99, 104, 106, 113, 114], "eth0": [80, 113], "etre": 107, "eu": [74, 107], "eval_xpath": [93, 107], "eval_xpath_getindex": [93, 107], "eval_xpath_list": [93, 107], "evalu": [7, 48, 67, 73, 84, 95, 101, 107, 113], "even": [11, 18, 21, 52, 80, 113], "event": 11, "ever": 113, "everi": [18, 25, 26, 29, 58, 68, 80, 90, 92, 93, 113], "everyon": [91, 92, 108], "everyth": [10, 84, 92], "ex": 84, "exabot": 95, "exact": 35, "exact_match_onli": 35, "exactli": [11, 84], "exampl": [0, 1, 2, 6, 10, 11, 13, 14, 15, 20, 21, 22, 23, 25, 26, 27, 28, 29, 30, 38, 40, 42, 45, 48, 52, 56, 73, 76, 79, 80, 86, 95, 98, 99, 100, 101, 107, 111, 112, 113], "excel": 5, "except": [6, 15, 26, 29, 30, 84, 91, 93, 95, 107], "exec": 7, "execstart": 11, "execut": [0, 18, 30, 34, 81, 83, 94, 113], "exercis": 80, "exercit": 84, "exist": [5, 7, 10, 15, 18, 22, 25, 26, 30, 37, 52, 68, 80, 81, 85, 95, 103, 106, 107, 113], "exit": [7, 10, 12, 98, 100], "expand": 84, "expect": [10, 18, 26, 34, 106], "experienc": 80, "expert": 91, "expir": [11, 25, 95, 103], "explain": [6, 8, 26], "explanatori": [113, 114], "explicit": [46, 84], "export": [7, 10, 66, 80, 113], "expos": [18, 35, 36, 37], "expres": 71, "express": [12, 34, 39, 95, 96, 99], "ext": 3, "extend": [26, 33, 38, 44, 82, 84], "extens": [3, 11, 40, 84], "extent": 25, "extern": [10, 29, 38, 79, 84, 86, 92, 99, 110], "external_bang": 104, "extr": [93, 107], "extra": [3, 6, 10, 20], "extra_proxy_timeout": [10, 20], "extract": [3, 58, 73, 93, 94, 107], "extract_text": [93, 107], "extract_url": [93, 107], "extractor": [90, 91, 93], "extrem": 48, "ey": [80, 84], "f": [7, 80, 84, 101, 107, 113], "f3": 107, "fa": [98, 107], "face": 84, "facebook": [55, 63, 99, 107], "facet": 36, "fact": 13, "facto": [44, 98], "factor": 101, "factori": 30, "fail": [11, 31, 80, 81, 83], "fake": 95, "fallback": [85, 98], "fallback_to_default": 97, "fals": [1, 2, 10, 13, 15, 16, 18, 19, 20, 23, 24, 27, 28, 30, 35, 37, 44, 46, 47, 58, 63, 69, 70, 78, 82, 84, 86, 95, 97, 98, 107], "famili": 46, "familiar": [11, 81], "family_filt": 46, "family_filter_map": 46, "fanci": 26, "faq": 84, "far": 48, "farsid": 95, "fashion": 20, "fast": 37, "fasttext": 107, "favorit": [26, 47, 81], "fd": 109, "fd00": 6, "fd42": 80, "fdroid": 109, "fdsize": 11, "fe5b": 80, "fe80": [6, 10, 13, 20, 95], "featur": [10, 11, 18, 23, 25, 26, 48, 57, 62, 67, 84, 92, 109, 111], "feder": [53, 55], "fedora": [3, 6, 8, 10, 11, 84, 113], "fedora35": 113, "fedoraproject": 113, "feed": 45, "feedback": [26, 84], "feedfetch": 95, "feel": [82, 84, 111], "fetch": [28, 30, 40, 41, 42, 44, 46, 48, 52, 56, 58, 60, 61, 65, 68, 73, 75, 76, 100, 114], "fetch_trait": [30, 40, 41, 42, 44, 46, 48, 52, 58, 60, 61, 65, 68, 73, 75, 76, 98], "fetch_wikimedia_trait": 73, "few": [18, 25, 26, 29, 46, 111], "fewer": 45, "fi": [107, 113], "field": [30, 40, 41, 44, 46, 68, 73, 95, 101], "fieldnam": 84, "figur": 79, "fil_ph": 68, "file": [3, 6, 7, 8, 10, 11, 13, 14, 15, 17, 18, 20, 24, 25, 26, 30, 34, 37, 40, 45, 58, 66, 70, 76, 77, 80, 81, 90, 94, 97, 98, 99, 106, 110, 113], "file_nam": 106, "filenam": [37, 96], "fileobj": 94, "files": [29, 77], "filesystem": 66, "fill": 84, "film": [37, 56], "filmlist": 37, "filter": [1, 10, 22, 27, 28, 40, 46, 48, 56, 62, 65, 68, 76, 78, 81, 86, 95, 107, 111], "filter_link_loc": 13, "filtron": 25, "final": 63, "find": [2, 7, 10, 13, 18, 21, 25, 26, 34, 35, 36, 48, 49, 55, 77, 98, 108, 111, 113], "findthatmem": 109, "fine": [9, 10, 33, 51], "finish": [83, 113], "firefox": [0, 3, 10, 81, 108], "first": [5, 6, 21, 25, 35, 38, 42, 52, 63, 73, 78, 80, 81, 83, 84, 92, 95, 98, 101, 107, 111, 113], "first_page_num": 78, "fit": [11, 18, 30, 36, 48, 52, 62, 67, 73, 82, 95, 98], "five": 98, "fix": [25, 26, 44], "fka": 73, "fl": 109, "flag": [7, 44, 98], "flask": [13, 82, 84, 97, 104], "flask_babel": 98, "flaskfix": [6, 8], "fledg": 18, "flexibl": [34, 84], "flickr": 109, "flickr_noapi": 109, "float": [29, 30, 101, 104, 107], "fname": 97, "fnd": 34, "focu": 59, "folder": [6, 8, 9, 11, 25, 29, 30, 80, 81, 84, 87, 97, 98, 99, 106, 112, 113], "follow": [6, 7, 8, 9, 10, 11, 15, 21, 23, 26, 27, 28, 29, 31, 33, 34, 35, 36, 37, 40, 45, 49, 50, 51, 53, 56, 57, 58, 64, 66, 67, 70, 74, 76, 81, 84, 95, 101, 113], "followsymlink": 6, "font": 3, "fontsrecommend": 3, "foo": [29, 30, 102, 103], "food": 44, "fooh": 44, "footer": [10, 26], "forbid": 55, "forc": 11, "force_timeout": [80, 112, 113], "forget": [7, 10, 21, 24, 25, 26, 113], "fork": [9, 26, 37, 80, 91, 107, 108], "form": [1, 10, 19, 29, 40, 48, 68, 76, 84, 92], "format": [10, 22, 33, 38, 52, 69, 77, 79, 83, 84, 86, 95, 107], "format_not_support": 77, "formerli": 76, "forum": 32, "forward": [0, 6, 8, 13, 54, 92, 95, 113], "found": [3, 11, 32, 38, 75, 77, 81, 106, 107], "foundat": [18, 34, 35, 36, 37, 82], "fqn": 95, "fr": [10, 18, 22, 24, 30, 33, 44, 52, 78, 98, 107, 109, 111], "fr_be": 98, "fr_ca": 98, "fr_ch": 98, "fr_fr": 98, "fraction": 84, "fralef": 113, "framework": 30, "fran\u00e7ai": 98, "free": [26, 29, 40, 59, 74, 82, 91, 108, 109], "freedom": 108, "freeli": 52, "freer": 108, "french": [30, 98], "frequent": 73, "fresh": 6, "fridai": 90, "friend": [18, 92], "friendli": 62, "frinkiac": 109, "frk": 109, "from": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 18, 20, 22, 25, 26, 27, 28, 29, 30, 31, 33, 36, 37, 38, 40, 41, 42, 44, 45, 46, 48, 52, 53, 54, 58, 59, 60, 61, 63, 64, 65, 68, 69, 70, 71, 73, 75, 76, 77, 78, 80, 81, 82, 83, 84, 85, 86, 90, 91, 92, 93, 94, 95, 97, 98, 99, 100, 101, 102, 103, 104, 106, 107, 108, 111, 113, 114], "from_data": 30, "from_lang": 29, "from_nam": 29, "from_si": 101, "from_url": 21, "fromstr": 107, "front": [59, 84], "frontend": 62, "frontend_url": 62, "frozenset": 107, "frr": 107, "fsd": 109, "fsk": 56, "ftm": 109, "ftp": 29, "full": [15, 18, 29, 36, 52, 66, 84, 95], "fulli": 57, "function": [28, 29, 30, 31, 38, 48, 52, 68, 73, 82, 84, 91, 93, 94, 95, 98, 101, 103, 106, 113], "fund": [18, 34, 35, 36, 37], "further": [30, 72, 78, 99, 107, 108], "furthermor": [29, 35, 36, 86, 92], "fv": 114, "fy": 107, "f\u00fcr": [43, 69], "g": [7, 10, 13, 17, 26, 29, 36, 37, 44, 45, 48, 52, 69, 76, 80, 81, 83, 84, 92, 95, 97, 98, 101, 106, 111, 113, 114], "ga": 107, "gain": 92, "gawk": 85, "gb": [44, 52], "gb_gb": 68, "gd": [3, 107], "ge": 109, "gecko": 81, "geckodriv": 81, "geizhal": 32, "gen": 109, "gen_userag": [93, 107], "gener": [1, 2, 4, 6, 7, 10, 11, 14, 17, 18, 26, 30, 32, 33, 37, 44, 63, 68, 71, 74, 76, 78, 92, 95, 98, 101, 107, 108, 110, 111], "genesi": [76, 109], "geniu": 109, "genr": 56, "gentlemen": 79, "gentoo": 109, "geojson": 29, "german": [1, 18, 43, 49, 56, 65], "gesg2kvx": 73, "get": [3, 4, 6, 8, 9, 10, 11, 13, 21, 25, 26, 27, 28, 29, 36, 38, 42, 44, 46, 48, 52, 63, 68, 70, 73, 79, 80, 81, 83, 84, 86, 91, 95, 96, 97, 101, 102, 103, 107, 108, 111, 113, 114], "get_attribut": 70, "get_ctx": 97, "get_ddg_lang": 48, "get_embeded_stream_url": [93, 107], "get_engine_from_set": [93, 107], "get_engine_local": [30, 93, 98, 107], "get_engines_stat": 84, "get_google_info": 52, "get_languag": 30, "get_language_nam": 98, "get_local": [93, 98], "get_network": [93, 95], "get_official_languag": 98, "get_official_local": [93, 98], "get_pag": 97, "get_param": 105, "get_ping_kei": 95, "get_real_ip": [93, 95], "get_region": 30, "get_sc_cod": 68, "get_set": 114, "get_territory_nam": 98, "get_thumbnail": 73, "get_token": 95, "get_torznab_attribut": 70, "get_transl": [93, 98], "get_translation_local": [93, 98], "get_user_cfg_fold": [93, 106], "get_valu": 97, "get_vqd": 48, "get_wiki_param": 73, "get_xpath": [93, 107], "get_yaml_cfg": [93, 106], "gh": [26, 52, 90, 109], "gid": 11, "gif": 77, "gil": 11, "git": [3, 7, 9, 10, 15, 22, 26, 29, 30, 32, 66, 80, 81, 82, 83, 84, 85, 87, 89, 90, 94, 98, 106, 112, 113, 114], "git_branch": [80, 114], "git_url": [80, 114], "gitea": [32, 109], "github": [7, 9, 10, 16, 58, 74, 80, 81, 82, 83, 84, 85, 86, 90, 109, 113, 114], "gitlab": [32, 109], "gitmoji": 26, "give": [6, 8, 11, 81, 92, 108, 111], "given": [21, 32, 84, 95, 99, 101, 103, 107], "gl": [51, 52, 81, 107, 109], "glob": 11, "global": [18, 20, 29, 46, 74, 85, 98, 103], "global_ip": 113, "globe": 98, "gluetun": 58, "glyph": 84, "gn": [51, 107], "gnome": 51, "gnu": 81, "go": [18, 35, 38, 42, 48, 52, 79, 83, 84, 92, 95, 109], "goal": 30, "goe": 81, "goi": [1, 109], "golang": [81, 85], "gom": 107, "gon": 109, "goo": 109, "good": [8, 80, 98, 107], "googl": [1, 10, 15, 18, 22, 30, 32, 81, 86, 99, 108, 109], "google_complet": 52, "google_domain": 52, "google_imag": [52, 109], "google_new": [52, 81, 109], "google_plai": 109, "google_scholar": [52, 109], "google_video": [52, 109], "googlebot": 95, "googleimageproxi": 95, "googleusercont": [10, 24], "gosl": 56, "gov": 109, "government": 43, "gpa": 109, "gpg": 85, "gpm": 109, "gr": 52, "grandma": 72, "grant": [6, 11], "granular": 81, "graphviz": 3, "great": 36, "green": [52, 82], "grep": [11, 80, 81, 85, 113], "group": [7, 11, 18, 21, 81, 84, 92, 101], "group_bang": 84, "group_engines_in_tab": 84, "grow": [5, 25], "grumpi": 84, "gsw": 73, "gu": 107, "gubergren": 84, "guess": [48, 68], "guest": 80, "guid": [8, 36, 84], "guidanc": [6, 8], "guidelin": [18, 83], "guilabel": 84, "gv": 107, "gz": [6, 11], "gzip": [11, 95], "h": [3, 6, 7, 8, 9, 10, 11, 21, 25, 33, 34, 80, 84, 112, 113, 114], "ha": [11, 13, 15, 18, 25, 26, 29, 34, 38, 40, 42, 45, 50, 51, 52, 53, 57, 62, 64, 65, 67, 70, 74, 76, 80, 84, 85, 90, 91, 92, 96, 97, 98, 99, 101, 103, 107, 113], "habr": 109, "habrahabr": 109, "hack": [26, 83], "hackabl": 79, "hackernew": 109, "had": [11, 48], "han": [52, 98], "handi": 113, "handl": [18, 30, 35, 52, 80, 84, 92, 105, 107, 113], "hant": [52, 98], "happen": 95, "happi": [26, 83], "hard": [13, 29, 84], "hardcod": 13, "harmon": [42, 107], "hash": [10, 12, 95, 103, 111], "hash_plugin": 86, "hashtag": 109, "hat": 84, "have": [0, 5, 6, 7, 8, 9, 10, 11, 18, 25, 26, 29, 33, 35, 36, 37, 38, 42, 44, 56, 58, 63, 68, 71, 73, 80, 81, 83, 84, 85, 92, 95, 98, 108, 113], "hbar": 84, "he": [52, 75, 84, 98, 107], "head": [10, 81], "header": [13, 18, 23, 29, 30, 48, 52, 58, 63, 68, 73, 78, 84, 93], "headers_modul": 6, "headlesschrom": 95, "headlin": 107, "heard": 84, "height": [77, 84], "held": 67, "hello": 11, "help": [7, 21, 26, 52, 58, 71, 79, 85, 91, 108, 112], "helper": 84, "henc": 56, "here": [3, 11, 17, 20, 25, 26, 29, 30, 36, 37, 42, 47, 72, 73, 78, 80, 81, 83, 84, 113], "herein": 2, "hesit": [83, 91], "heterogen": 80, "hex": [10, 109], "hi": [52, 107], "hidden": [1, 18, 92], "hierarchi": 66, "hif": 107, "high_prior": 99, "higher": [73, 81, 99], "highest": 101, "hint": [2, 11, 30, 80, 84], "histori": [10, 43], "hit": [10, 63, 73, 101], "hk": [52, 73, 75, 98], "hl": [52, 81], "hn": 109, "ho": 109, "hole": 109, "holland": 111, "home": [10, 13, 30, 68, 80, 81, 85, 90, 106], "homepag": 29, "hong": 98, "hoogl": 109, "hook": 82, "host": [0, 3, 6, 7, 8, 10, 11, 16, 26, 35, 37, 51, 57, 60, 80, 91, 99, 113], "hostabl": 55, "hostnam": [10, 12, 37, 91, 93, 113], "hostnames_plugin": 86, "hotkei": [10, 24], "hour": [42, 78, 96], "hous": 29, "house_numb": 29, "housekeep": 7, "hovercard": 73, "how": [4, 5, 6, 7, 8, 9, 11, 15, 18, 37, 48, 73, 77, 79, 80, 81, 83, 84, 91, 110], "howev": [29, 52, 55, 86], "hr": [69, 75, 107], "href": [48, 78, 95], "hsb": 107, "ht": 107, "html": [1, 3, 6, 10, 11, 18, 22, 26, 29, 30, 37, 45, 48, 52, 64, 68, 73, 80, 81, 84, 95, 97, 107], "html_math_render": 3, "html_str": 107, "html_to_text": [93, 107], "html_url": 29, "htmlelement": [58, 107], "http": [0, 1, 2, 3, 4, 7, 9, 10, 11, 13, 16, 18, 20, 22, 23, 24, 25, 26, 29, 30, 33, 36, 37, 38, 42, 46, 47, 48, 50, 51, 52, 53, 56, 57, 58, 61, 62, 64, 66, 68, 73, 74, 77, 78, 80, 81, 82, 83, 84, 85, 90, 93, 100, 107, 113, 114], "http2": [10, 20], "http_connect": 8, "http_digest_auth_pass": 74, "http_digest_auth_us": 74, "http_host": 8, "http_protocol_vers": 10, "http_x_forwarded_for": 8, "http_x_real_ip": 8, "http_x_scheme": 8, "http_x_script_nam": 8, "httpclient": 95, "httpd": 6, "httpx": [10, 20, 70, 84], "hu": [52, 107], "hub": 109, "huge": [70, 84], "human": [29, 107], "humanize_byt": [93, 107], "humanize_numb": [93, 107], "hy": 107, "i": [0, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 52, 53, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 80, 81, 82, 83, 84, 85, 86, 90, 91, 93, 94, 95, 96, 98, 99, 100, 101, 103, 105, 106, 107, 110, 111, 113, 114], "i18n": [90, 91, 93], "i18n_origin": 97, "i686": 71, "ia": [107, 109], "iana": 68, "icon": 109, "id": [7, 10, 29, 46, 50, 52, 63, 68, 70, 81, 101, 107], "idea": 59, "ident": [42, 61, 68, 71, 113], "identif": 107, "identifi": [45, 48, 56, 77, 113], "ie": [52, 81, 107], "iframe_src": 46, "ignor": [11, 13, 27, 46, 48, 52, 95, 98], "il": 52, "illustr": 5, "ilo": 107, "imag": [1, 3, 4, 9, 10, 17, 23, 25, 28, 39, 44, 63, 64, 67, 73, 74, 77, 79, 80, 81, 86, 110, 111, 113], "image_proxi": [2, 10, 23, 86], "image_url": 77, "imagemagick": [3, 84], "imagin": 34, "imdb": 56, "img": [52, 109], "img_format": 29, "img_src": [29, 73], "imgmath": 3, "imgmath_font_s": 3, "imgmath_image_format": 3, "imgmath_latex": 3, "imgur": 109, "immedi": [10, 24, 103], "implement": [4, 9, 11, 18, 25, 26, 27, 28, 29, 30, 41, 42, 52, 54, 56, 58, 59, 68, 73, 77, 79, 81, 82, 83, 91, 93, 94, 95, 102, 103, 106, 107, 113], "impli": 18, "import": [84, 97, 98, 102], "imposs": 96, "improp": 64, "improv": [91, 108], "ina": 109, "inact": [18, 30], "inbound": [2, 10, 23], "incl": 81, "includ": [6, 7, 8, 9, 17, 18, 34, 37, 70, 73, 80, 81, 84, 98, 106, 107, 113], "includeopt": 6, "inclus": 111, "incom": [6, 95], "incoming_links_asc": 33, "incoming_links_desc": 33, "inconsist": 95, "incr": 103, "incr_count": [93, 103], "incr_sliding_window": [93, 103], "increas": 25, "increment": 103, "indent": [30, 84, 113], "independ": [53, 68], "index": [6, 35, 36, 44, 59, 61, 66, 77, 107], "indic": [36, 73, 77], "individu": [36, 106], "infinit": 103, "infinite_scrol": [10, 24, 62, 67], "infinitescrollajax": 42, "influenc": 49, "info": [10, 19, 20, 73, 80, 81, 91, 93, 113], "info_fold": 97, "info_msg": 113, "infobox": 73, "infopag": [93, 97], "infopageset": [93, 97], "inform": [10, 12, 18, 20, 22, 26, 29, 70, 80, 81, 91, 97, 99, 100, 104, 108, 113], "infrastructur": [2, 11, 25], "inherit": [84, 104], "ini": [6, 7, 8, 11, 25, 80, 114], "init": [11, 27, 28, 38, 40, 57, 70, 76, 80, 98, 113], "initgroup": 11, "initi": [4, 10, 11, 13, 15, 18, 27, 28, 30, 31, 34, 35, 36, 37, 57, 70, 80, 84, 98, 102, 103, 113], "inlin": 79, "inod": 113, "input": [1, 18, 68, 84], "insecur": 10, "insert": [84, 113], "insid": [10, 34, 80, 96, 113], "insight": 92, "inspect": [4, 9, 80, 114], "inspir": [103, 108], "instagram": 107, "instal": [2, 3, 4, 6, 7, 8, 11, 13, 21, 26, 35, 36, 37, 38, 58, 71, 79, 80, 82, 83, 84, 85, 91, 106, 112], "instanc": [0, 1, 2, 5, 6, 7, 8, 10, 11, 13, 18, 21, 23, 24, 25, 30, 33, 34, 35, 36, 37, 38, 50, 52, 53, 55, 61, 62, 63, 65, 70, 74, 77, 80, 81, 82, 86, 91, 97, 103, 108, 113, 114], "instance_nam": [1, 2, 7, 10, 19], "instant": 81, "instanti": [30, 103], "instead": [11, 18, 24, 36, 42, 55, 78, 84, 103], "institut": [28, 43], "instruct": [58, 84, 108], "int": [29, 50, 84, 96, 103, 104, 107], "int_or_zero": [93, 107], "integr": [34, 36, 81, 90, 91], "intend": [7, 30, 46], "intent": [13, 26, 113], "intention": 63, "interact": [7, 10, 112, 113], "intercept": 95, "interest": [6, 7, 8, 76], "interfac": [6, 10, 17, 18, 20, 22, 24, 52, 53, 66], "interfer": 26, "intermedi": 81, "intern": [30, 33, 52, 56, 98, 107], "internet": [10, 24, 38, 47, 80, 91, 108], "internet_archive_scholar": 109, "internetarchivescholar": 109, "interpret": [11, 52, 81, 84], "intersect": 98, "intersphinx_map": 84, "interv": 42, "introduc": [38, 73, 79, 84, 113], "introduct": 81, "intuit": 84, "inv": 84, "invalid": [13, 95], "inventori": 84, "investig": 95, "invidi": [99, 109], "invidunt": 84, "io": [11, 35, 81, 84, 107, 109], "ip": [4, 6, 8, 12, 13, 20, 48, 68, 80, 91, 92, 93, 100, 113], "ip_limit": 13, "ip_list": 13, "ipecho": 0, "ipf": 40, "ipsum": [84, 111], "iptabl": 113, "ipv4": [13, 18, 20, 95, 113], "ipv4_prefix": 13, "ipv4address": 95, "ipv4network": 95, "ipv6": [13, 18, 20, 80, 95, 113], "ipv6_prefix": 13, "ipv6address": 95, "ipv6network": 95, "ir": 98, "is_broken_text": 48, "is_created_for_kid": 46, "is_instal": [4, 13], "is_locale_support": 30, "is_missing_required_attribut": [31, 32], "is_suspici": 95, "is_valid_lang": [93, 107], "is_vpn_connect": 58, "isbn": 29, "isn": 72, "iso": [18, 24, 29, 33, 68, 78, 107], "isol": [10, 80, 81], "issn": 29, "issu": [0, 10, 11, 16, 18, 29, 80, 95, 108, 113], "issue_url": [10, 16], "ital": [29, 84], "item": [7, 28, 29, 30, 37, 56, 70, 77, 78, 84, 93, 101, 103], "iter": [30, 97], "iter_pag": 97, "its": [26, 27, 28, 31, 33, 35, 44, 48, 52, 73, 76, 77, 84, 85, 86, 92, 107, 108, 113], "itself": [11, 13, 26, 42, 66], "iv": 109, "j": [12, 48, 53, 79, 83], "ja": [44, 52, 75, 107, 109], "jackett": 70, "jahr": 56, "jahrzehnt": 56, "jahrzent": 56, "jakarta": 95, "jame": 95, "java": 95, "javafx": 95, "javascript": [83, 107], "jbo": 107, "jersei": 95, "jinja": [84, 97], "jinja2": 81, "jinja_context": 84, "job": [90, 112], "join": [91, 107, 108], "joinpeertub": 61, "jon": 10, "journal": [29, 40, 52, 76], "jp": [44, 52], "jpeg": 77, "js_variabl": 107, "js_variable_to_python": [93, 107], "json": [10, 22, 27, 30, 33, 35, 36, 47, 52, 56, 58, 61, 62, 64, 69, 77, 81, 86, 98, 107], "json_engin": 109, "jsonencod": 30, "jspb": 52, "jump": [9, 10, 80, 81, 111], "just": [0, 1, 13, 25, 27, 28, 35, 36, 37, 42, 50, 64, 80, 81, 83, 84, 92, 108, 113], "just_match": 33, "justo": 84, "jv": 107, "k": 11, "ka": 107, "kasd": 84, "kavin": 62, "kbd": 84, "kc": 109, "ke": 52, "keep": [6, 8, 10, 15, 20, 80, 81, 82, 111], "keep_onli": 15, "keepalive_expiri": [18, 20], "kei": [7, 10, 18, 29, 30, 34, 35, 37, 47, 52, 67, 70, 72, 90, 95, 98, 103], "kelvin": 101, "kernel": [39, 71], "keyerror": 95, "keyword": [35, 37, 94, 100, 111], "kickass": 109, "kid": 46, "kind": [6, 44, 68, 84, 92], "kiss_": 84, "kk": 107, "kl": 48, "km": 107, "kn": 107, "know": [6, 11, 18, 68, 80, 84, 90, 92], "knowledg": 84, "known": [11, 13, 73, 81, 95, 98, 101, 108], "ko": [52, 75, 107, 109], "kong": 98, "kr": 52, "krc": 107, "ku": 107, "kv": 107, "kw": 107, "ky": 107, "l": [7, 21, 34, 48, 80, 81, 84, 101, 109, 113], "l19": 80, "la": [21, 84, 107, 113], "label": [84, 107], "labor": 84, "labori": 84, "lack": 26, "lambda": 101, "land": 56, "lang": [1, 11, 75, 78, 81, 104, 107], "lang2domain": 75, "lang_al": 78, "lang_en": [52, 81], "lang_zh": 52, "languag": [1, 10, 11, 18, 22, 24, 29, 30, 33, 40, 41, 42, 46, 48, 52, 58, 59, 60, 61, 65, 73, 75, 76, 78, 81, 84, 86, 95, 97, 98, 104, 107, 110], "language_support": [30, 84], "language_tag": [93, 98], "languageconvert": 73, "larg": [11, 55, 113, 114], "largest": 40, "last": [11, 29, 42, 52, 81, 83, 84], "last_edit_asc": 33, "last_edit_desc": 33, "lat": 29, "later": [36, 113], "latest": [7, 10, 11, 20, 29, 47, 81, 85], "latest_top": 47, "latex": 3, "latexextra": 3, "latexmk": 3, "latitud": 29, "latn": 68, "latter": [62, 73, 74, 84], "launch": 113, "layout": [24, 35, 37], "lazi": 11, "lb": [52, 107], "lc": 73, "lc_all": 11, "ld": 80, "lead": [13, 29, 48], "leak": [34, 70], "learn": 84, "least": [42, 48, 52, 68, 80, 95, 107], "leav": [10, 22, 113], "leco": 109, "lecom": 109, "leech": 29, "leecher": [29, 45], "left": [24, 25, 84, 98], "legal_nam": 10, "legal_url": 10, "lemmi": [32, 109], "lemmy_typ": 53, "length": [26, 29, 84], "lepo": 109, "less": [6, 8, 36, 45, 61, 81, 84, 92, 95], "let": [80, 84, 92], "leta": 32, "letter": 68, "leu": 109, "level": [0, 26, 77, 84, 95], "lez": 107, "lg": 109, "li": [107, 113], "lib": [11, 76, 109], "lib_r": 109, "libbz2": 85, "libffi": [3, 10, 85], "liblzma": 85, "libncursesw5": 85, "libr": 59, "librari": [32, 37, 40, 79, 91, 93, 107, 109], "libreadlin": 85, "libretransl": 109, "librsvg": 3, "librsvg2": 3, "libsqlite3": 85, "libssl": [3, 10, 85], "libwww": 95, "libxml2": [3, 10, 85], "libxmlsec1": 85, "libxslt": [3, 10], "licens": [29, 35, 113], "license_nam": 29, "license_url": 29, "life": 81, "light": [10, 24], "like": [3, 6, 7, 10, 12, 18, 20, 24, 26, 29, 35, 36, 37, 42, 44, 45, 47, 48, 50, 55, 65, 72, 81, 83, 84, 99, 100, 107], "like_hotkei": 86, "limit": [2, 4, 6, 7, 8, 10, 11, 18, 20, 23, 25, 29, 34, 35, 36, 37, 38, 44, 52, 72, 73, 78, 84, 91, 93, 103], "limiter_cfg": [4, 13], "limiter_cfg_schema": [4, 13], "line": [4, 6, 8, 26, 32, 38, 81, 90, 113], "lingva": 109, "link": [2, 10, 11, 13, 16, 19, 23, 24, 29, 42, 45, 48, 52, 62, 63, 70, 73, 74, 77, 78, 79, 80, 95, 108], "link_nam": 29, "link_src": 113, "link_token": [13, 23], "linkdexbot": 95, "linkloc": [13, 95], "lint": [4, 81], "linux": [1, 3, 6, 7, 8, 10, 11, 15, 18, 32, 58, 79, 84, 91, 109, 113], "linuxcontain": 113, "linuxcontainers_org_nam": 113, "linuxdoc": 84, "list": [6, 7, 13, 17, 18, 22, 25, 27, 28, 29, 30, 32, 33, 34, 37, 38, 42, 44, 45, 46, 48, 52, 56, 61, 62, 63, 65, 68, 70, 73, 74, 77, 78, 79, 81, 85, 86, 91, 93, 97, 98, 99, 100, 101, 104, 107, 108, 111], "list_of_wikipedia": 73, "listen": [0, 6, 8, 11, 33, 113], "lite": 64, "liter": [30, 79, 95], "literalinclud": 84, "littl": 59, "live": [80, 83, 84, 103, 113], "live_them": [81, 83], "livespac": 109, "livetim": 95, "ll": 95, "lmo": 107, "ln": [6, 8, 11, 80], "lo": [107, 109], "load": [6, 10, 11, 15, 20, 24, 27, 30, 31, 96, 98, 99, 106, 107, 113], "load_engin": [30, 31, 32], "load_set": [93, 106], "load_user_set": 106, "load_yaml": [93, 106], "loader": [30, 32, 79, 91, 93], "loadmodul": 6, "lobst": 109, "loc": 109, "local": [0, 1, 2, 6, 7, 8, 10, 11, 13, 18, 20, 21, 23, 24, 25, 27, 29, 30, 32, 44, 46, 48, 52, 66, 68, 73, 74, 80, 81, 82, 84, 91, 92, 93, 97, 102, 106, 107, 109, 113, 114], "local_address": 18, "local_imag": 113, "locale_best_match": [93, 98], "locale_default": 97, "locale_nam": [73, 93, 98], "locale_tag": 98, "locale_tag_list": 98, "locales_initi": [93, 98], "localhost": [0, 6, 7, 8, 21, 36], "localtest": 114, "locat": [2, 6, 8, 10, 11, 14, 23, 29, 41, 66, 68, 73, 84, 90, 97, 99, 106], "lock": [10, 107], "log": [4, 7, 11, 13, 19, 64, 80, 92, 95, 108, 114], "log_msg": 95, "logger": [11, 95], "logic": 26, "login": [0, 9, 10, 21, 80], "logout": 21, "lokal": 13, "lomig": 74, "lon": 29, "long": [30, 48, 92], "long_max": 95, "long_max_suspici": 95, "long_window": 95, "longer": [25, 42, 48, 81, 95, 113], "longhand": 33, "longitud": 29, "look": [6, 10, 11, 27, 28, 35, 42, 54, 81, 83, 85, 99, 101], "loop": [84, 103], "lorem": [84, 111], "loremlorem": 84, "lot": [42, 65, 80, 103], "love": 83, "low": 44, "low_prior": 99, "lower": [10, 22, 99, 103], "lower_prior": 99, "lowercas": 31, "lowest": [49, 101], "lr": [52, 81, 109], "lrc": 107, "lrwxrwxrwx": 80, "lsb": 11, "lt": [52, 81, 107, 109, 113], "lua": 103, "lua_script_storag": [93, 103], "lucen": 36, "lucki": 111, "luizm": 85, "lunch": 59, "lv": [52, 107, 109], "lxc": [80, 91, 112], "lxc_host_prefix": 113, "lxc_repo_root": 113, "lxc_set_suite_env": 113, "lxc_suit": [80, 113], "lxc_suite_info": 113, "lxc_suite_instal": 113, "lxc_suite_install_info": 113, "lxc_suite_nam": 113, "lxd": [80, 112], "lxml": [3, 10, 107], "m": [10, 33, 52, 84, 107], "ma": 52, "machin": [0, 92], "macrolanguag": 68, "made": [0, 20, 42, 80], "magazin": [29, 40], "magna": 84, "magnet": [45, 70], "magnetlink": 29, "mah": 109, "mai": [10, 11, 20, 48, 69, 70, 77, 80, 84, 85, 92, 95, 107, 108, 113], "mailto": [10, 19], "mainli": [52, 98], "mainlin": 8, "maintain": [2, 7, 10, 11, 13, 25, 29, 40, 45, 58, 76, 80, 84, 87, 91, 112], "mainten": [4, 9, 80, 91, 114], "major": 11, "make": [3, 7, 18, 26, 30, 32, 48, 52, 58, 78, 79, 80, 83, 84, 85, 90, 92, 95, 110, 113], "makefil": [26, 79, 80, 83, 91, 113], "man": [84, 109], "manag": [21, 26, 37, 79, 80, 83, 91, 98, 106, 114], "mandatori": [50, 51, 52, 57], "mani": [7, 10, 22, 37, 39, 53, 63, 95, 96], "manipul": 113, "mankier": 109, "manli": 52, "manual": [10, 18, 25, 30, 81, 84], "map": [1, 11, 17, 30, 31, 34, 41, 44, 48, 52, 68, 73, 75, 78, 84, 98, 99, 107, 110, 111], "margin": 42, "mariadb_serv": 37, "mark": [10, 84], "markdown": [97, 107], "markdown_str": 107, "markdown_to_text": [93, 107], "market": 42, "marku": 113, "markup": [79, 97], "mass": 26, "master": [11, 25, 26, 80, 84, 90, 114], "mastodon": [32, 109], "match": [35, 36, 39, 71, 77, 95, 98, 99, 101, 105], "match_json": 77, "match_local": [93, 98], "materi": 109, "material_icon": 109, "math": [3, 79], "mathemat": [12, 84], "mathrm": 84, "matrix": [32, 108], "matter": [29, 80, 92], "mau": 109, "max": [10, 22, 29, 44, 68, 103], "max_ban_time_on_fail": [10, 22], "max_connect": [18, 20], "max_keepalive_connect": [18, 20], "max_pag": [10, 42, 44, 64, 68], "max_redirect": [20, 29], "max_request_timeout": [10, 20], "maxim": 26, "maximum": [10, 20, 26, 29, 42, 44, 50, 64, 68, 78, 95], "mayb": 34, "mb": 29, "mc": [84, 109], "md": [10, 19, 35], "md5": 111, "mdn": 109, "me": [36, 44, 74, 84, 113], "mean": [10, 11, 22, 38, 42, 80, 84, 92, 103], "meaning": [26, 83, 84], "meant": [7, 22, 84], "measur": [73, 101], "media": [1, 17, 47, 55, 69, 109], "mediathekview": 37, "mediathekviewweb": 109, "mediawiki": [32, 41, 109], "medium": 29, "member": [21, 95, 98], "membership": 7, "memori": [23, 35, 68], "mention": [68, 111], "menu": 44, "menuselect": 84, "merg": [11, 15, 25, 71, 80, 90], "mess": 68, "messag": [18, 19, 26, 29, 30, 58, 77, 83, 84, 90, 91, 93, 95, 96], "met": 81, "meta": [58, 63, 73, 84], "metacpan": 109, "metadata": [45, 84], "metasearch": [10, 29, 40, 91, 108], "method": [1, 5, 10, 11, 13, 25, 29, 36, 47, 62, 67, 84, 94, 97, 107], "metr": 101, "metric": 19, "mg": 107, "mhr": 107, "mi": [101, 109], "microsoft": 108, "middl": 91, "might": [6, 7, 8, 11, 18, 26, 36, 48, 72, 78, 80, 84, 86, 92, 113], "migrat": [4, 5], "mile": 101, "million": 36, "mimetyp": 95, "min": [24, 29, 107], "min_len": 107, "mind": 111, "minim": [10, 73, 81, 83, 84], "minimun": 10, "minu": [52, 103], "minut": [7, 95], "mirror": [76, 109], "misbehav": 26, "misinform": 43, "miss": [11, 38, 84, 95, 96], "mistletoepag": 97, "mitmproxi": [10, 20], "mix": [80, 108], "mixcloud": 109, "mj12bot": 95, "mjk": 109, "mjkimg": 109, "mjknew": 109, "mk": 107, "mkdir": [6, 7, 8, 10], "ml": [52, 53, 107], "mn": 107, "mo": [73, 90], "mod": 84, "mod_autoindex": 6, "mod_head": 6, "mod_proxi": 6, "mod_proxy_http": 6, "mod_proxy_uwsgi": 6, "mod_setenvif": 6, "mod_ssl": 6, "mod_uwsgi": 6, "mode": [4, 6, 10, 37, 74, 84, 113], "model": [98, 107], "moder": [10, 22, 29, 78], "modif": 80, "modifi": [7, 10, 11, 18, 55, 58, 81, 83, 84, 98, 111], "modul": [11, 27, 28, 30, 31, 73, 82, 84, 94, 96, 109], "modular": 30, "moduletyp": [30, 31], "mojeek": 109, "moment": [36, 37, 59], "monet": 92, "monitor": [11, 13, 80, 90], "monkei": 98, "mono": 3, "monolith": 71, "month": [1, 29, 42, 52, 78, 86], "more": [10, 11, 18, 19, 20, 26, 29, 30, 37, 44, 46, 52, 54, 59, 61, 64, 65, 68, 70, 81, 84, 86, 91, 92, 95, 103, 107, 108, 111, 113], "morecol": 84, "moreov": 108, "morerow": 84, "morti": [10, 25], "morty_kei": 7, "morty_url": 7, "most": [3, 6, 18, 22, 30, 36, 37, 40, 44, 48, 49, 63, 68, 76, 80, 81, 92, 107, 114], "mostli": [11, 39, 73, 84], "motiv": [13, 79], "mount": [7, 66], "mount_prefix": 66, "move": [25, 26, 30, 84, 103], "movi": [37, 45, 56, 109], "moviepilot": 32, "mozhi": 109, "mozilla": [95, 107], "mp": 56, "mr": [32, 52, 107], "mrj": 107, "msg": [94, 95], "msnbot": 95, "mt": 107, "much": [26, 84], "mullvad": 32, "mullvad_leta": 58, "multi": 11, "multilingu": 14, "multipl": [10, 18, 20, 24, 29, 30, 73, 81, 84, 92, 109], "multipli": 101, "multithread": 11, "multius": 10, "music": [17, 62, 110], "music_song": 62, "musl": [39, 71], "must": [11, 13, 19, 20, 26, 29, 31, 34, 35, 37, 48, 57, 63, 66, 82, 84, 99, 107, 108], "mutablemap": 107, "mv": 80, "mvw": 109, "mwl": 107, "mwm": 109, "mwmbl": [10, 22, 32, 86, 109], "mx": 52, "my": [7, 18, 27, 28, 36, 48, 52, 73, 80, 84, 107, 110], "my_arg": 84, "my_column": 37, "my_databas": 37, "my_funct": 84, "my_other_arg": 84, "my_tabl": 37, "myinstanc": 106, "mymemori": 109, "mymongo": 35, "myredi": 35, "mysql_serv": 37, "mysxng": 106, "myv": 107, "mz": 109, "mzn": 107, "n": [0, 34, 80, 113], "na": 52, "nah": 107, "name": [1, 6, 8, 10, 11, 12, 15, 18, 24, 25, 27, 28, 30, 31, 34, 35, 36, 37, 38, 40, 44, 45, 47, 50, 51, 53, 57, 62, 63, 64, 65, 67, 68, 74, 76, 78, 79, 80, 82, 93, 95, 96, 97, 98, 99, 100, 101, 103, 104, 106, 107, 108, 109, 111, 113], "namespac": [29, 30, 31, 99], "nap": 107, "narrow": [63, 98], "naver": 109, "navig": 108, "nb": [68, 107], "nd": 107, "ndr": 69, "ne": 107, "nearmatch": 33, "necessari": [18, 25, 37], "need": [6, 7, 8, 9, 10, 11, 13, 18, 21, 23, 24, 25, 26, 28, 33, 35, 37, 38, 42, 46, 47, 48, 52, 63, 68, 73, 78, 80, 81, 82, 83, 84, 85, 86, 90, 91, 92, 95, 98, 111, 113], "neither": [91, 107], "net": [0, 58, 73, 74], "netflix": 56, "netloc": 73, "netvib": 95, "network": [0, 10, 13, 18, 20, 62, 64, 74, 95, 113], "never": [11, 30, 80, 108], "new": [6, 7, 8, 9, 10, 11, 17, 18, 24, 25, 30, 37, 44, 50, 63, 64, 67, 68, 69, 81, 85, 86, 95, 103, 107, 110], "new_issue_url": 10, "newest": 40, "next": [10, 24, 62, 67, 84], "nextpag": [62, 67], "ng": 52, "nginx": [2, 4, 9, 13, 25, 80, 91, 112, 113, 114], "nightmar": 84, "nil": 113, "nisi": 84, "nl": [52, 98, 107], "nlnet": [18, 34, 35, 36, 37], "nn": 107, "no_no": 68, "no_result_for_http_statu": 78, "no_signature_error": 77, "noconfirm": [3, 10], "node": [12, 79, 83, 100, 107], "nodej": 85, "nofollow": [10, 23], "noindex": [10, 23], "non": [40, 59], "none": [6, 10, 22, 27, 29, 30, 31, 33, 36, 38, 40, 47, 52, 64, 65, 70, 76, 78, 81, 82, 84, 95, 96, 97, 98, 103, 104, 105, 106, 107], "nonumi": 84, "noopen": [10, 23], "nor": [91, 107], "normal": [29, 56, 84, 107], "normalize_url": [93, 107], "norwegian": 68, "nosniff": [10, 23], "nosql": [32, 38], "nostrud": 84, "notat": [10, 29, 44], "note": [10, 14, 26, 36, 65, 80, 81, 86, 111], "noth": [10, 90, 107], "notic": 80, "now": [0, 6, 8, 10, 25, 36, 80, 81, 82, 83, 107], "npm": [81, 109], "nsfw": [42, 72], "nt": 109, "null": [6, 8, 20], "nullif": 37, "num": [52, 107], "number": [7, 10, 11, 13, 20, 23, 29, 37, 50, 52, 62, 67, 68, 70, 77, 78, 84, 86, 103, 105, 107, 113], "number_of_result": 29, "number_str": 107, "numer": [36, 84], "numref": 84, "nvm": 83, "nvr": 109, "nw": 84, "nyaa": 109, "nz": 52, "o": [30, 84, 85, 107, 114], "oad": 109, "oap": 109, "oauth": 55, "obj": [73, 84, 107], "object": [29, 30, 44, 58, 77, 82, 84, 95, 98, 103, 107], "objets_globaux": 107, "observ": 56, "obtain": 18, "oc": [98, 107], "occitan": 98, "oct": 11, "od": 109, "odyse": [32, 109], "oe": [52, 81], "off": [6, 8, 10, 22, 26, 72, 113], "offer": [11, 42, 45, 47, 48, 52, 66, 69, 78, 108], "offic": 42, "offici": [41, 53, 55, 56, 62, 77, 98], "official_api_document": [18, 30], "officiat": 44, "offlin": [18, 29, 34, 84, 93], "offlineprocessor": 105, "offload": 11, "offset": [37, 44, 78], "often": [29, 30, 48, 63, 80, 84, 112], "ok": [10, 25, 81], "okhttp": 95, "old": [6, 7, 25, 80, 83], "old_redis_url_default_url": [93, 102], "oldest": 40, "omit": 38, "on_result": 82, "onc": [3, 10, 25, 80, 81, 103, 107, 113], "one": [6, 8, 10, 11, 15, 17, 18, 20, 26, 30, 31, 37, 52, 53, 56, 67, 68, 71, 73, 80, 81, 82, 84, 91, 94, 95, 98, 101, 107, 113], "ones": [29, 36], "onli": [3, 7, 9, 10, 11, 13, 15, 18, 24, 26, 29, 30, 34, 37, 42, 44, 45, 46, 48, 53, 63, 70, 73, 76, 77, 78, 81, 82, 83, 84, 90, 95, 98, 99, 103, 107, 108, 113], "onlin": [40, 56, 84, 91, 93], "online_curr": [32, 105, 109], "online_dictionari": [32, 105, 109], "online_url_search": [32, 77, 105, 109], "onlinecurrencyprocessor": 105, "onlinedictionaryprocessor": 105, "onlineprocessor": 105, "onlineurlsearchprocessor": 105, "only_search_languag": 107, "only_show_green_result": [10, 82], "open": [0, 6, 7, 10, 12, 24, 26, 35, 37, 47, 52, 55, 69, 80, 81, 84, 86, 91, 92, 108, 113], "open_access_doi_rewrit": 86, "openairedataset": 109, "openairepubl": 109, "openapi": 69, "openli": 44, "openrc": 39, "openrepo": 109, "opensearch": 108, "openssl": [3, 10, 20], "openstreetmap": [1, 109], "openvers": 109, "oper": [39, 58, 71, 74, 84, 92, 113], "opportun": 25, "optim": 98, "option": [6, 7, 10, 11, 13, 15, 18, 23, 26, 30, 34, 35, 37, 40, 45, 48, 50, 51, 68, 73, 76, 80, 81, 84, 86, 91, 92, 94, 107], "opv": 109, "order": [6, 10, 20, 26, 33, 35, 36, 37, 45, 47, 49, 50, 84, 95], "ordered_plugin_list": 104, "org": [0, 1, 3, 10, 11, 12, 13, 16, 20, 23, 24, 29, 33, 37, 41, 48, 51, 61, 66, 73, 78, 84, 90, 95, 99, 100, 107, 108, 113], "org_bot": 95, "organ": [13, 95], "orient": 6, "origin": [4, 13, 18, 25, 27, 30, 35, 37, 52, 68, 76, 77, 80, 84, 90], "orphan": 90, "os_str": 107, "osm": [1, 29, 109], "other": [7, 9, 13, 17, 18, 20, 26, 29, 33, 39, 40, 42, 45, 52, 55, 68, 73, 76, 81, 84, 92, 99, 106, 107, 108], "otherwis": [22, 29, 31, 58, 83, 108, 113], "our": [2, 5, 7, 9, 26, 80, 81, 83, 84, 93, 112, 113], "out": [7, 26, 27, 28, 35, 36, 37, 46, 48, 65, 81, 82, 84, 85], "outdat": 42, "outgo": [4, 10, 14, 18], "output": [3, 18, 81, 84, 86, 113, 114], "outsid": [80, 85], "outstand": 84, "over": [0, 13, 25, 46, 67, 68, 77, 80, 84, 91, 97, 98, 99, 113], "overlai": 77, "overlin": 84, "overlook": 80, "overrid": [10, 15, 20], "overview": [7, 18, 32, 78, 79, 81, 86, 109], "overwrit": [7, 13, 18], "overwritten": [2, 10, 20, 29], "own": [6, 7, 9, 10, 16, 19, 26, 35, 37, 38, 44, 52, 72, 80, 81, 91, 110, 111], "owner": [11, 108, 113], "p": [6, 7, 8, 10, 11, 64, 78, 107, 109, 113], "p2p": 74, "pa": 107, "pack": 109, "packag": [3, 4, 7, 11, 30, 32, 35, 37, 38, 80, 81, 84, 94, 113, 114], "package_nam": 29, "packagist": 109, "pacman": [3, 6, 8, 10, 84], "paddl": 47, "page": [6, 8, 10, 15, 17, 18, 19, 20, 24, 26, 29, 30, 36, 37, 42, 44, 45, 50, 52, 62, 63, 64, 67, 68, 73, 78, 84, 86, 90, 92, 97, 105, 108, 109, 111], "page_class": 97, "page_s": [50, 78], "pagenam": 97, "pageno": [29, 78, 86, 104], "pagenumb": 29, "pagin": 55, "pai": 83, "pair": 52, "palletsproject": 84, "pam": 107, "pap": 98, "papiamento": 98, "paragraph": 73, "param": [28, 29, 38, 42, 48, 52, 61, 64, 68, 70, 73, 75, 77, 78, 84, 105], "paramet": [22, 30, 31, 37, 38, 46, 52, 78, 79, 82, 96, 97, 98, 103, 104, 105, 107], "parent": 84, "pari": [48, 111], "pars": [28, 30, 33, 34, 45, 48, 52, 61, 64, 70, 75, 77, 96, 98, 100], "parse_gs_a": 52, "parse_regex": 34, "parse_tineye_match": 77, "parse_url": 75, "parse_web_api": 64, "parse_web_lit": 64, "parsed_url": 82, "parser": 97, "parser_r": 105, "parsererror": 107, "part": [13, 18, 66, 84, 95, 113], "parti": [92, 108], "partial": [35, 84, 93, 103], "particular": 52, "pass": [6, 13, 26, 27, 48, 52, 86, 95, 98, 107], "pass_ip": [13, 95], "pass_searxng_org": 13, "passlist": [13, 95], "password": [18, 21, 35, 36, 37, 74], "past": 1, "patch": [26, 84, 85, 98], "path": [6, 10, 15, 20, 21, 25, 33, 34, 47, 51, 56, 80, 81, 84, 85, 95, 106, 107, 108, 113], "pathlib": 95, "pattern": [33, 99], "payload": 36, "paywal": 12, "pb": 52, "pc": 52, "pd": 109, "pdb": 109, "pdbe": 109, "pdf": [3, 29, 40, 76], "pdf_url": 29, "pe": 52, "peer": [61, 74], "peertub": [32, 109], "peopl": [44, 72, 92, 108], "pep": 84, "pep517": [10, 81], "pep8": [26, 81], "per": [11, 26, 29, 50, 84], "perfect": 80, "perform": [10, 11, 13, 24, 29, 33, 38, 77, 85, 103, 111], "perl": 95, "permiss": 11, "persist": 30, "person": [56, 108, 111], "petalbot": 95, "pfl": 107, "pgo": 109, "ph": [52, 109], "photo": 54, "photon": 109, "php": 33, "phrase": 84, "pi": 109, "pictur": 42, "pid": 11, "piec": 84, "pin": 109, "ping": 95, "ping_kei": 95, "ping_live_tim": 95, "pinterest": 109, "pip": [3, 10, 35, 37, 38, 81, 82], "pipe": [32, 109], "piped_filt": 62, "pipedapi": 62, "piratebai": 109, "pitfal": 4, "pixel": [29, 77], "pixrai": 95, "pk": 52, "pkg": 109, "pkg_go_dev": 109, "pl": [52, 98, 107], "pl_pl": 98, "place": [6, 8, 11, 26, 29, 30, 35, 37, 63, 84, 90, 92], "plai": [62, 67, 109], "plain": [0, 73], "plaintext": 84, "plan": 7, "platform": [50, 51, 55, 60, 108], "pleas": [25, 26, 36, 37, 81, 83, 84, 86, 111], "plenti": 26, "plugin": [1, 3, 4, 10, 11, 26, 37, 79, 84, 85, 86, 91, 93, 104], "plugin1": 10, "plugin2": 10, "pm": 107, "pnb": 107, "png": [29, 77], "po": 90, "pocket": [6, 8], "point": [7, 8, 10, 11, 77, 79, 80, 83, 84, 92, 95, 106], "pointer": 84, "polici": [10, 19, 23, 113], "polit": [42, 43], "poltisch": 43, "polygon": 84, "pool": [10, 18, 20], "pool_connect": [10, 18, 20], "pool_maxs": [10, 18, 20], "popular": [29, 36, 37, 67, 84], "popup": 73, "port": [0, 7, 10, 23, 26, 29, 30, 35, 37, 113], "portal": 69, "posix": 7, "posixpath": [13, 30, 106], "possibl": [7, 15, 18, 29, 34, 40, 42, 50, 52, 73, 78, 80, 84, 86], "post": [1, 10, 26, 47, 48, 53, 55, 68, 80, 82, 86, 95, 109], "post_search": 82, "postcod": 29, "pot": 90, "pov": 84, "power": [34, 36, 37, 84], "ppc64le": 39, "ppd": 109, "ppdm": [62, 109], "pr": [25, 26, 73, 81, 83, 84, 90, 99], "pr1071": 46, "practic": 26, "pre_request": [4, 13], "pre_search": 82, "preasearch": 63, "prebuild": 81, "precis": 107, "prefer": [5, 6, 8, 9, 10, 17, 18, 19, 42, 48, 52, 84, 86, 92, 97, 100, 111], "preference_sect": [93, 100], "prefix": [10, 13, 18, 24, 52, 95, 103, 111], "preinstal": 80, "prepar": 113, "prerequ": 37, "prerequisit": [13, 80, 84], "presarch": 63, "presearch": [32, 109], "present": [18, 38], "preserv": [26, 84], "press": 80, "pretti": 18, "preview": [29, 73], "previous": 81, "price": 49, "primari": 68, "prime": 79, "primer": [79, 91], "principl": [74, 84], "print": [54, 58], "priorit": [12, 67], "prioriti": [13, 98, 99], "privaci": [6, 7, 8, 10, 11, 19, 24, 62, 74, 79, 84, 91, 95, 108, 111], "privacypolicy_url": [10, 19], "privat": [13, 14, 30, 34, 35, 36, 37, 47, 67, 70, 91, 95], "pro": 84, "probabl": 107, "probe": [13, 93], "problem": [6, 8, 10, 108, 113], "proc": 11, "procedur": [9, 25, 113], "process": [3, 7, 11, 18, 38, 80, 81], "processor": [30, 32, 38, 77, 84, 91, 93], "produc": 84, "product": [19, 49, 79, 83], "profession": 91, "profil": [10, 81, 91, 92, 106, 108], "profit": [40, 59], "prog": 52, "program": [35, 69, 81], "project": [11, 29, 51, 76, 80, 81, 84, 85, 91, 108], "prompt": [80, 81, 112], "proof": [59, 103], "proper": 92, "properti": [30, 33, 52, 97, 107], "property_nam": 70, "protect": [7, 10, 13, 25, 26, 48, 91, 111], "protobuf": 52, "protocol": [0, 7, 20, 107], "provid": [18, 26, 29, 33, 34, 36, 40, 41, 43, 45, 53, 56, 58, 70, 71, 84, 108], "prowlarr": 70, "proxi": [0, 2, 6, 7, 10, 18, 20, 23, 25, 29, 30, 62, 80, 86, 92, 95, 112, 113], "proxif": 10, "proxify_result": 10, "proxy1": [10, 18, 20], "proxy2": [10, 18, 20], "proxy3": 18, "proxy4": 18, "proxy_add_x_forwarded_for": 8, "proxy_buff": 8, "proxy_buffer_s": 8, "proxy_http": 6, "proxy_http_modul": 6, "proxy_modul": 6, "proxy_pass": 8, "proxy_request_buff": 8, "proxy_set_head": 8, "proxy_uwsgi": 6, "proxy_uwsgi_modul": 6, "proxyfix": 95, "proxypass": 6, "proxypreservehost": 6, "proxyq": [10, 20], "prune": 7, "psi": 84, "psimg": 109, "psnew": 109, "psvid": 109, "psychopg2": 37, "psycopg2": 37, "pt": [44, 52, 68, 98, 107], "pt_br": 68, "pt_pt": 98, "ptb": 109, "pub": 109, "public": [2, 7, 10, 12, 23, 29, 34, 35, 36, 37, 52, 56, 84, 108], "public_inst": [10, 16, 23], "publicli": 38, "publish": [29, 42, 44, 52], "publishedd": 29, "pubm": 109, "pull": [7, 26, 74, 83, 84, 90], "purg": 103, "purge_by_prefix": [93, 103], "puriti": 72, "purpos": [23, 29, 71], "push": [26, 81, 90], "put": [34, 37, 48, 68], "pwd": [7, 80, 113], "py": [3, 6, 8, 10, 22, 23, 29, 30, 34, 35, 36, 37, 38, 52, 66, 73, 79, 81, 84, 87, 97, 98, 102, 114], "py3": 81, "pybabel": 90, "pyenv": [10, 11, 35, 37, 38, 80, 81, 82, 114], "pygment": [81, 84], "pylintrc": 81, "pymongo": 35, "pyobj": 95, "pypi": [84, 109], "pyright": 81, "python": [3, 10, 11, 18, 20, 23, 29, 30, 35, 37, 38, 79, 80, 83, 84, 85, 94, 95, 98, 107, 109, 114], "python2": 11, "python3": [3, 10, 11], "pythonhom": 11, "pythonpath": [11, 80], "pyyaml": 10, "q": [0, 1, 7, 10, 24, 48, 68, 81, 86], "q11573": 101, "q11579": 101, "q16639197": 51, "q253276": 101, "q306656": [18, 30], "q44316": 51, "q69362731": 101, "q712226": 48, "q99490479": 101, "qdm12": 58, "qu": 107, "qualiffi": 95, "qualiti": [3, 44, 73, 81, 84, 91], "queri": [10, 12, 18, 22, 24, 27, 28, 29, 33, 34, 35, 36, 37, 38, 39, 42, 44, 48, 52, 54, 56, 59, 61, 64, 68, 70, 71, 73, 75, 77, 78, 84, 86, 92, 96, 100, 101, 103, 104, 105, 107, 108, 109, 110], "query_enum": 34, "query_exampl": [93, 100], "query_in_titl": [10, 24], "query_keyword": [93, 100], "query_str": 37, "query_typ": [34, 36], "question": [84, 92, 108], "qui": 84, "quickli": 71, "quickstart": [26, 44, 79, 81, 91], "quit": [6, 7, 11, 26, 72, 80], "quot": 113, "qw": 109, "qwant": [0, 10, 22, 32, 86, 109], "qwant_categ": 64, "qwi": 109, "qwn": 109, "qwv": 109, "r": [10, 52, 107, 109, 113], "radio": 65, "radio_brows": [65, 109], "radiobrows": 32, "rais": [29, 57, 95, 96, 106, 107], "raise_for_httperror": 29, "rand": 10, "random": [29, 33, 92, 95, 107, 111], "randomli": [62, 74, 95], "rang": [11, 29, 30, 42, 44, 52, 59, 78, 84, 86, 95, 103, 105, 109], "rangl": 84, "rank": 44, "rapidli": [5, 25], "rate": [10, 13, 23, 29, 72, 73, 93], "rather": 18, "raw": [84, 97], "raw_cont": 97, "rb": 109, "rbg": 109, "rd": [35, 109], "rdbm": 37, "re": [5, 7, 25, 39, 71, 81, 109], "re_search_url": 105, "reach": [66, 84, 103], "reactiv": 20, "read": [5, 10, 21, 26, 64, 72, 77, 78], "readability_": 84, "readabl": [9, 29, 107], "reader": [80, 84], "readi": 80, "readm": [6, 11, 81], "readthedoc": 11, "real": [6, 8, 13, 63, 95], "real_ip": [13, 95], "realiz": 73, "realli": [40, 62, 67], "reason": [11, 31, 84, 103], "rebas": 58, "reboot": 113, "rebuild": [26, 81, 98], "rebum": 84, "recaptcha": 10, "recaptcha_searxenginecaptcha": [10, 22], "receiv": [13, 83], "recent": 81, "reclaim": 108, "recogn": 11, "recol": 32, "recommend": [3, 5, 10, 11, 25, 26, 68, 81, 84, 85], "reconfigur": 25, "reconsid": 26, "record": [10, 19, 24, 29, 78, 84], "red": 107, "reddit": 109, "redefin": 29, "redesign": 61, "redi": [2, 4, 7, 10, 11, 13, 14, 23, 25, 79, 80, 91, 93, 95, 114], "redirect": [12, 20, 29, 52, 64, 73, 78, 81, 110], "redirect_to_first_result": 104, "redirectmatch": 6, "redis_serv": 35, "redisdb": [11, 21, 25, 102], "redislib": 103, "redispi": 103, "rediss": 21, "reduc": [26, 43, 73, 95, 107], "ref": [29, 80, 82, 113], "refactor": 61, "refer": [2, 6, 8, 9, 43, 66, 68, 84, 92, 95, 104, 107], "referenc": 84, "referr": [10, 23], "refnam": 84, "refresh": 103, "regard": [9, 108], "regardless": [18, 92], "regex": 34, "regexp": 107, "region": [18, 30, 42, 48, 52, 58, 59, 65, 73, 98, 107], "region_tag": [93, 98], "regist": [31, 65, 85], "register_script": 103, "registri": 68, "regular": [34, 39, 71, 95, 99], "regularli": [5, 25], "reinstal": 25, "rel": [80, 84, 95, 107, 113], "relat": [30, 37, 48], "releas": [11, 25, 29, 40, 74, 81, 113], "releng": 113, "relev": [33, 40, 45, 81], "reli": [15, 37], "reliabl": 37, "reload": 11, "remain": 83, "remark": 44, "rememb": [11, 26, 80], "remot": [0, 95, 113], "remote_addr": [6, 8], "remov": [7, 10, 11, 12, 15, 18, 22, 30, 71, 73, 75, 80, 81, 82, 92, 99, 103, 108, 113, 114], "renam": [7, 86], "render": [3, 97], "renew": 95, "replac": [25, 78, 80, 81, 82, 84, 90, 95, 99, 103, 106], "repo": 78, "report": [29, 69, 80, 91, 108], "repositori": [7, 9, 80, 85, 90, 113], "repres": 98, "represent": [30, 38, 98, 107], "reqbin": 73, "request": [0, 6, 10, 12, 13, 18, 20, 22, 23, 26, 28, 30, 32, 33, 36, 38, 41, 42, 46, 48, 52, 56, 58, 61, 63, 64, 68, 70, 73, 74, 75, 77, 78, 81, 82, 83, 84, 90, 92, 93, 96, 97, 100, 104, 105], "request_param": 27, "request_schem": 6, "request_timeout": [10, 18, 20], "request_uri": 6, "requesthead": [6, 13], "requir": [3, 6, 11, 13, 23, 25, 26, 29, 31, 35, 36, 37, 38, 58, 72, 77, 78, 81, 84, 86, 95, 96, 114], "require_api_kei": [18, 30], "reset": [92, 95, 113, 114], "resolut": 29, "resourc": [8, 36, 40, 43], "resp": [28, 42, 52, 58, 61, 64, 70, 71, 75, 77, 78], "respect": [10, 26, 92], "respons": [18, 28, 29, 30, 38, 42, 46, 48, 52, 58, 61, 70, 71, 73, 75, 77, 78, 95], "rest": [7, 18, 46, 51, 52, 61, 62, 67, 79, 81, 91], "rest_v1": 73, "rest_v1_summary_url": 73, "restart": [6, 7, 8, 11, 80], "restor": [81, 83], "restrict": [18, 52, 74], "restructuredtext": 84, "result": [3, 10, 12, 13, 18, 20, 22, 24, 27, 28, 30, 32, 33, 34, 35, 36, 37, 38, 40, 42, 44, 45, 46, 48, 49, 50, 52, 53, 56, 58, 61, 63, 64, 70, 71, 73, 76, 77, 78, 82, 84, 86, 91, 92, 96, 98, 99, 101, 104, 107, 108, 111], "result_contain": [82, 104], "result_field": 46, "result_proxi": [7, 10], "result_separ": 34, "result_templ": [35, 37], "resultcontain": 104, "results_on_new_tab": [10, 24, 86], "results_per_pag": 35, "results_xpath": 78, "retri": [18, 20], "retriev": [38, 46], "retry_on_http_error": 18, "return": [12, 13, 18, 27, 29, 30, 31, 33, 34, 37, 38, 42, 44, 46, 48, 52, 58, 64, 70, 73, 78, 82, 84, 92, 95, 96, 97, 98, 101, 103, 105, 106, 107], "return42": [82, 84], "revers": [2, 7, 48, 52, 64, 67, 77, 113], "review": 35, "rewind": 83, "rewrit": [1, 10, 12, 33, 99], "rfc": 84, "rhel": [3, 6, 8, 10, 11, 84], "rid": [7, 48, 81, 113], "right": [11, 18, 21, 82, 83, 84, 98, 109], "rightmost": 84, "riscv64": 39, "risk": 111, "rm": [7, 11, 107], "rmgrp": 81, "rmi": 7, "ro": [52, 107], "road": 29, "robin": 20, "robot": [10, 23, 52, 81], "robot_test": 81, "robust": 37, "rock": 62, "role": 79, "rolenam": 84, "roll": [25, 113], "room": 32, "root": [6, 9, 80, 81, 113], "rotat": 84, "rough": 73, "round": [20, 26], "rout": [84, 95, 97], "row": 84, "rowspan": 84, "rr": 95, "rspan": 84, "rss": [10, 22, 45, 86], "rst": [26, 81, 84], "rst_titl": 113, "rtl": 24, "rtl_local": [93, 98], "ru": [52, 107, 109], "rubi": 95, "rubygem": 109, "rue": 107, "rule": [26, 30, 44, 73, 98, 106, 113], "rumbl": 109, "run": [2, 3, 6, 8, 9, 10, 11, 13, 19, 21, 23, 25, 26, 34, 36, 48, 58, 79, 80, 82, 83, 84, 102, 108, 112, 114], "runner": [13, 30, 81, 106], "runtim": [79, 91], "rw": 113, "ryan": 56, "s390x": 39, "sa": [52, 107], "sadipsc": 84, "safari": 108, "safe": [59, 72, 78, 84, 86, 109], "safe_search": [1, 2, 10, 22, 78], "safe_search_map": 78, "safe_search_support": 78, "safes_search_map": 78, "safesearch": [29, 30, 42, 52, 78, 84, 86, 104], "safesearch_map": 72, "safesearch_param": 46, "sah": 107, "sai": 48, "said": 37, "same": [10, 29, 37, 61, 67, 71, 73, 80, 84, 107, 108, 113], "sampl": 84, "san": 3, "sanctu": 84, "satisfi": [35, 37], "save": [6, 7, 10, 25, 44, 52, 68, 113], "save_data": 30, "sbin": [7, 11], "sc": [68, 107, 109], "sc2031": 113, "sc2034": 113, "sc_code_cache_sec": 68, "scalabl": 84, "scale": [36, 80, 84, 113], "scan": 11, "scc": 109, "scenario": [66, 106, 107], "schema": [13, 61, 95, 103], "schemaissu": 95, "scheme": [6, 8, 52], "scholar": 109, "scholarli": 76, "schroeding": 84, "schr\u00f6dinger": 84, "scienc": [17, 110], "scientif": 52, "scn": 107, "sco": 107, "scope": [26, 68], "score": [67, 77, 103], "scrap": [68, 78], "scrapi": 95, "scratch": 3, "screen": 24, "screenshot": 0, "script": [2, 4, 5, 6, 7, 8, 10, 11, 25, 68, 73, 80, 81, 89, 91, 98, 103, 112, 113, 114], "scroll": [10, 24], "sd": 107, "se": [52, 109], "sea": 84, "search": [0, 2, 4, 7, 10, 12, 13, 14, 15, 17, 20, 24, 26, 27, 29, 30, 33, 34, 35, 37, 38, 40, 42, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 55, 56, 58, 59, 61, 64, 65, 66, 67, 68, 69, 70, 71, 73, 74, 75, 76, 77, 78, 79, 82, 84, 91, 92, 93, 96, 98, 100, 101, 107, 109, 110], "search_dir": 66, "search_endpoint": 47, "search_form_xpath": 68, "search_language_cod": [93, 107], "search_mod": 74, "search_on_category_select": [10, 24], "search_queri": [104, 105], "search_typ": [33, 63, 74], "search_url": [29, 46, 77, 78, 107], "searchcod": 109, "searchcode_cod": 109, "searchlab": 74, "searchmysit": 109, "searchqueri": [93, 104], "searchwithplugin": [82, 93, 104], "searx": [1, 5, 6, 8, 10, 11, 13, 15, 16, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 38, 39, 40, 41, 42, 44, 45, 46, 47, 48, 50, 51, 52, 53, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 80, 81, 82, 84, 89, 91, 94, 95, 96, 97, 98, 100, 101, 102, 103, 104, 105, 106, 107, 108, 113, 114], "searx_userag": [10, 93, 107], "searxengineaccessdeni": [10, 22, 96], "searxengineaccessdeniedexcept": [93, 96], "searxengineapiexcept": [93, 96], "searxenginecaptcha": [10, 22, 96], "searxenginecaptchaexcept": [93, 96], "searxengineexcept": [93, 96], "searxengineresponseexcept": [93, 96], "searxenginetoomanyrequest": [10, 22, 96], "searxenginetoomanyrequestsexcept": [93, 96], "searxenginexpathexcept": [93, 96, 107], "searxexcept": [93, 96], "searxng": [0, 1, 2, 3, 4, 5, 9, 11, 12, 13, 15, 16, 18, 19, 20, 21, 23, 24, 26, 29, 30, 32, 33, 35, 37, 38, 40, 42, 44, 45, 46, 48, 52, 58, 62, 63, 67, 69, 71, 73, 76, 77, 79, 81, 82, 83, 84, 85, 86, 90, 93, 94, 95, 97, 99, 100, 102, 103, 106, 107, 109, 110, 111, 112], "searxng_": 103, "searxng_bind_address": [10, 23, 80, 114], "searxng_check": 114, "searxng_counter_": 103, "searxng_debug": [10, 19, 81], "searxng_extra": [79, 81, 91], "searxng_image_proxi": [10, 23], "searxng_lang": 30, "searxng_limit": [10, 23, 95], "searxng_local": [29, 30, 52, 68, 98], "searxng_msg": 94, "searxng_org": 95, "searxng_port": [10, 23, 80, 114], "searxng_public_inst": [10, 23], "searxng_redis_url": [2, 10, 21, 81], "searxng_region": 30, "searxng_secret": [2, 10, 23], "searxng_settings_path": [10, 11, 15, 80, 106], "searxng_static_use_hash": [10, 24], "searxng_url": [2, 10, 23, 80, 113, 114], "searxng_uwsgi_socket": [80, 114], "searxnggfedora35": 113, "searxparameterexcept": [93, 96], "searxsettingsexcept": [93, 96], "searxxpathsyntaxexcept": [93, 96, 107], "sec": [95, 96, 103, 107], "second": [10, 20, 22, 68, 84, 98, 101, 103, 107], "secret": [18, 30, 103], "secret_hash": [93, 103], "secret_kei": [2, 10, 15, 23, 103], "section": [5, 6, 8, 9, 10, 15, 18, 20, 32, 34, 35, 36, 37, 42, 78, 80, 81, 82, 84, 100, 113], "sectiontitl": 33, "secur": [0, 10, 11, 34, 39, 91], "sed": [10, 84], "see": [0, 3, 5, 6, 7, 8, 10, 11, 13, 15, 18, 20, 21, 23, 25, 26, 30, 31, 33, 35, 37, 42, 44, 46, 48, 52, 61, 62, 63, 68, 70, 71, 73, 78, 80, 81, 82, 84, 86, 91, 94, 98, 99, 103, 105, 107, 108, 111, 113], "seed": 29, "seeder": [29, 45], "seek": 108, "seeker": 67, "seekr": [32, 109], "seekr_categori": 67, "seem": [42, 44, 48, 68], "seimg": 109, "sekr": 67, "select": [10, 18, 24, 29, 30, 35, 36, 37, 38, 44, 46, 48, 52, 62, 65, 67, 68, 74, 78, 81, 83, 84, 92, 94, 98, 110, 113], "selector": [68, 78], "self": [10, 12, 30, 52, 55, 91, 95, 113, 114], "self_inform": 86, "semant": [26, 109], "semantic_scholar": 109, "semrushbot": 95, "send": [0, 11, 18, 20, 22, 30, 47, 48, 63, 68, 83, 92, 95, 96, 108], "send_accept_language_head": [18, 30, 48, 63, 68, 73], "senew": 109, "sens": [48, 84], "sensit": 48, "sent": [48, 92], "sep": [30, 109], "separ": [18, 26, 30, 34, 83, 84, 86, 111], "sepiasearch": 109, "seri": 81, "serializ": 30, "serif": 3, "seriou": 80, "serv": [6, 8, 11, 26, 81, 92, 113], "server": [2, 4, 7, 9, 10, 13, 14, 15, 20, 37, 39, 77, 80, 86, 91, 103, 106, 108, 112, 113, 114], "server_nam": 8, "servic": [6, 8, 9, 10, 11, 23, 48, 52, 57, 80, 81, 84, 86, 91, 92, 107, 113, 114], "session": [10, 95, 98], "set": [0, 2, 3, 4, 6, 7, 8, 10, 11, 13, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33, 34, 35, 36, 37, 38, 40, 44, 45, 46, 47, 50, 51, 52, 53, 57, 62, 63, 64, 66, 67, 68, 69, 70, 73, 74, 76, 78, 80, 81, 82, 84, 86, 91, 92, 93, 95, 96, 98, 99, 100, 101, 102, 103, 105, 107, 109, 110, 111, 112, 113, 114], "set_trait": 30, "setenvif": 6, "setenvif_modul": 6, "settings_load": 106, "settings_redi": 10, "setup": [0, 3, 4, 5, 6, 7, 8, 9, 10, 13, 18, 25, 38, 80, 81, 83, 84, 102, 112], "setuptool": 10, "sever": [18, 71, 73, 80], "sevid": 109, "seznam": [10, 109], "seznambot": 95, "sfw": [42, 72], "sg": [52, 73], "sh": [3, 6, 7, 8, 9, 25, 35, 37, 38, 80, 81, 82, 84, 85, 91, 107, 112], "sha256": 81, "sha512": 111, "shadow": [40, 76], "share": [6, 11, 18, 42, 52, 61, 70, 71, 73, 76, 80, 81, 108, 113], "sheet": 7, "shell": [4, 10, 34, 80, 85, 113], "shellcheck": [3, 84, 85, 113], "shop": 49, "short": 29, "shortcut": [1, 18, 27, 28, 29, 30, 31, 34, 35, 36, 40, 45, 47, 50, 51, 62, 74, 76, 84, 106], "shorten": 11, "should": [5, 6, 8, 11, 18, 25, 26, 30, 33, 48, 51, 52, 68, 70, 73, 80, 83, 84, 85, 98, 99], "show": [3, 6, 10, 11, 25, 47, 70, 73, 80, 81, 84, 111, 113], "show_avatar": 47, "show_magnet_link": 70, "show_torrent_fil": 70, "shown": [6, 9, 10, 11, 13, 17, 18, 22, 30, 47, 80, 84, 100, 113], "si": [52, 98, 101, 107], "si_nam": 101, "side": [0, 9, 24, 84], "sighup": 11, "sign": 84, "signal": [11, 80], "signifi": 84, "sigterm": 11, "silesian": 98, "similar": [11, 15, 37, 56, 84, 98], "simpl": [1, 10, 24, 27, 28, 29, 31, 35, 36, 37, 39, 52, 77, 78, 80, 81, 83, 86, 103, 113], "simple_query_str": 36, "simple_styl": [10, 24], "simplest": 84, "simpli": [0, 26, 77, 80, 81, 83, 86, 114], "simplifi": [15, 73, 114], "sinc": [10, 11, 13, 24, 42, 44, 48, 53, 55, 63, 67, 84, 95, 113], "singl": [11, 58, 92, 113], "sit": 84, "site": [1, 4, 18, 25, 29, 49, 70, 72, 78, 84, 86, 114], "size": [7, 11, 25, 29, 45, 50, 77, 107], "sk": [52, 75, 107], "skeleton": 38, "sketchi": 72, "skill": 79, "skipkei": 30, "sl": [52, 75, 107], "slash": [6, 10, 24, 107], "sleep": 103, "slide": [48, 95, 103], "slightli": 52, "slow": 20, "slr": 36, "slurp": 95, "sm": 109, "small": [29, 36, 37, 39, 44, 59, 81, 113, 114], "smallest": 40, "smtbot": 95, "sn": 52, "snap": [80, 113], "snapcraft": 113, "snapshot": 113, "snippet": 33, "so": [6, 7, 11, 19, 26, 29, 35, 36, 38, 80, 82, 84, 99, 107, 108], "social": [1, 17, 47, 55], "social_media": 110, "sock": [0, 2, 10, 11, 13, 20, 21, 25, 102, 114], "socket": [0, 6, 7, 8, 11, 21, 23, 80, 114], "socks5": [0, 18, 29, 30], "socks5h": 18, "soft": [29, 78, 79], "soft_max_redirect": [29, 78], "softwar": [50, 51, 71, 80, 108, 109], "sogou": 95, "sold": 92, "solid": 109, "solidtorr": 109, "solut": [34, 48, 113], "solv": [0, 18], "some": [2, 6, 7, 8, 9, 10, 11, 13, 15, 18, 22, 23, 25, 26, 33, 42, 44, 47, 48, 52, 68, 73, 78, 80, 81, 83, 84, 87, 95, 108, 112, 113, 114], "someon": 92, "someth": [26, 34, 48, 81, 83, 99], "sometim": [25, 52, 71], "somewhat": 11, "somewher": 48, "soon": [32, 95], "sorri": 52, "sort": [33, 36, 40, 45, 49, 50, 101, 103], "sort_kei": 30, "soundcloud": 109, "sourc": [7, 10, 13, 20, 27, 28, 29, 30, 31, 32, 34, 35, 37, 40, 41, 42, 44, 46, 47, 48, 52, 55, 57, 58, 59, 60, 61, 64, 65, 68, 69, 70, 71, 73, 75, 76, 77, 78, 80, 81, 83, 84, 89, 91, 92, 94, 95, 96, 97, 98, 101, 103, 104, 105, 106, 107, 108, 113], "source_code_url": 29, "source_ip": [10, 20], "sourcehut": 109, "sp": 109, "space": [10, 13, 16, 23, 81, 91, 95, 111], "span": [84, 107], "spanish": 107, "spars": 84, "spdx": 113, "speak": 11, "speaker": 18, "special": [5, 6, 8, 11, 29, 30, 34, 41, 52, 70, 85, 110], "specif": [11, 18, 20, 23, 24, 29, 30, 34, 40, 42, 45, 46, 68, 70, 75, 76], "specifi": [0, 7, 11, 15, 18, 20, 30, 52, 53, 86, 99], "speed": 59, "spell": [33, 44], "spellcheck": 44, "spezial": 41, "sphinx": 26, "sphinxopt": 26, "spinn3r": 95, "splash": 95, "split": 26, "spoilt": 5, "sponsor": [18, 34, 35, 36, 37], "sport": 47, "sq": [44, 107], "sql": [32, 38], "sqlite3": 37, "sqlite_cursor": 37, "sr": [52, 107], "src": [6, 8, 10, 11, 52, 80, 81, 114], "srenablerewrit": 33, "srh1": 67, "srht": 109, "srprop": 33, "srsort": 33, "srv": 6, "srwhat": 33, "srwxrwx": 21, "ssl": [6, 10, 20, 29], "ssl_cert_dir": 20, "ssl_cert_fil": 20, "ssl_modul": 6, "st": 109, "stabl": [18, 45, 81], "stack": [80, 113], "stackexchang": 109, "stackoverflow": [73, 109], "stage": 84, "stai": [4, 5], "stamp": 68, "stand": 72, "standalon": 57, "standalone_searx": [79, 87], "standard": [6, 11, 26, 29, 70, 107, 113], "standards_docu": 40, "start": [2, 6, 7, 8, 9, 10, 11, 26, 29, 31, 38, 77, 79, 81, 83, 91, 113], "startpag": [10, 22, 32, 86, 109], "startpage_categ": 68, "stat": [10, 19, 84, 108], "state": [33, 98, 105, 113], "static": [3, 6, 8, 10, 11, 24, 25, 79, 83, 89, 95], "static_path": 10, "static_use_hash": [2, 6, 8, 10, 11, 24], "station": 65, "station_filt": 65, "statist": [84, 108], "statu": [11, 18, 78, 83, 96, 98, 114], "stealth": 74, "step": [2, 4, 5, 9, 25, 26, 80, 83, 91, 114], "stet": 84, "still": [17, 35, 36, 37, 42, 48, 67, 73], "stimmung": 56, "stock": 77, "stone": 18, "stop": [7, 10, 11, 29, 46, 78, 80, 81, 82, 96, 103, 113], "storag": 113, "store": [29, 30, 35, 36, 44, 45, 48, 92, 95, 108, 109], "str": [29, 30, 33, 40, 47, 50, 51, 52, 62, 67, 70, 74, 76, 95, 96, 97, 98, 103, 104, 105, 106, 107, 109], "stract": [10, 86, 109], "strang": 11, "stream": 63, "street": 29, "strict": [10, 18, 22, 29, 78], "string": [10, 12, 18, 27, 29, 30, 33, 39, 40, 42, 48, 52, 71, 78, 86, 95, 98, 103, 107, 111], "stroke": 84, "strong": 84, "structur": [26, 35, 64, 79, 95], "stub": 84, "stuck": 81, "stuff": [81, 84], "style": [10, 24, 81, 83, 107], "stylesheet": 95, "su": [107, 109], "sub": 84, "subdomain": 52, "subject": 84, "submit": [26, 34, 36], "subnet": 95, "subscript": 84, "subsect": 84, "subset": [36, 107], "subshel": 113, "substitut": 79, "subtag": 68, "successfulli": [7, 77, 81], "sudo": [3, 6, 7, 8, 9, 10, 11, 21, 25, 35, 37, 38, 80, 82, 84, 85, 112, 113, 114], "sudoer": 9, "suffix": [7, 10, 20], "suggest": [2, 13, 56, 78, 82, 91], "suggestion_xpath": 78, "suit": [79, 112], "suitabl": [84, 106], "sum": 81, "summari": [73, 78, 79], "sup": 84, "superscript": 84, "superus": 109, "support": [3, 8, 10, 11, 18, 20, 26, 29, 30, 35, 36, 37, 39, 44, 48, 52, 55, 59, 62, 63, 67, 70, 73, 75, 77, 78, 82, 84, 86, 92, 97, 98, 105, 107, 108, 109, 111, 113], "suppress": 68, "sure": [7, 48, 72, 80], "surround": 84, "suspend": [96, 105], "suspend_time_set": 96, "suspended_tim": [10, 22, 96], "suspendedstatu": 105, "suspens": [10, 22], "suspici": [13, 95], "suspicious_ip_max": 95, "suspicious_ip_window": 95, "sv": [52, 107], "svg": [3, 109], "svg_imag": 84, "svgrepo": 109, "sw": 107, "swisscow": [10, 22, 86], "switch": [6, 25, 26, 35, 37, 38, 44], "swr": 69, "sxng_local": [48, 52, 73, 81, 98, 107], "symbol": [11, 101], "symbol_to_si": [93, 101], "symlink": [6, 8, 80], "sync": 90, "synchron": 90, "synhttpclient": 95, "syntax": [17, 56, 86, 91, 96, 107, 109, 110], "system": [7, 10, 11, 26, 37, 39, 47, 71, 73, 80, 81, 84, 85, 113], "systemctl": [6, 8, 11, 80], "systemctl_skip_redirect": 11, "systemd": [11, 81], "sz": 33, "szl": 98, "szn": 109, "t": [6, 7, 10, 11, 13, 15, 21, 23, 24, 25, 26, 29, 31, 37, 44, 45, 55, 56, 63, 72, 78, 82, 83, 84, 91, 98, 107, 108, 109, 111, 113], "ta": [52, 107], "tab": [10, 17, 18, 24, 79, 81, 86, 110, 113], "tabl": [79, 99], "tablet": 24, "tag": [7, 10, 23, 29, 44, 68, 73, 74, 77, 98], "tag_list": 98, "tagesschau": [32, 109], "tailor": 92, "taiwan": 98, "take": [9, 11, 20, 25, 26, 77, 85, 90, 95, 103, 108, 113], "taken": [10, 18, 20, 78, 84, 95, 99], "takimata": 84, "tale": 7, "target": [26, 46, 81, 83, 84], "task": [3, 9, 10, 11, 13, 80, 81, 83, 84, 113], "tcp": 7, "tcp_nodelai": 10, "te": [52, 107], "team": 40, "technologi": 59, "tell": [29, 34], "templat": [10, 11, 32, 35, 37, 38, 46, 63, 71, 78, 79, 80, 81, 82, 95], "template_nam": [35, 37], "templates_path": 10, "tempor": 84, "temporarili": 48, "term": [6, 27, 30, 34, 36, 40, 48, 49, 52, 78, 80, 84, 101], "termin": [10, 80], "territori": [68, 98], "test": [0, 3, 6, 7, 8, 10, 21, 26, 37, 44, 68, 69, 73, 79, 80, 83, 85, 91, 95, 102, 106, 107, 113, 114], "texliv": 3, "text": [1, 29, 33, 36, 48, 52, 66, 73, 74, 76, 84, 95, 107], "text_cont": 107, "textstyl": 84, "tfrac": 84, "tg": 107, "tgwf": 82, "th": [52, 107], "than": [10, 20, 36, 45, 52, 59, 65, 68, 73, 84, 91, 107, 108], "thats": 42, "thei": [10, 11, 18, 84, 92, 95, 109], "them": [11, 12, 18, 35, 36, 37, 80, 84, 106], "theme": [10, 24, 35, 37, 79, 83, 86], "theme_arg": [10, 24], "theme_nam": [35, 37], "themselv": [18, 36], "therefor": [48, 71, 84, 92], "thi": [0, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 16, 17, 18, 19, 20, 21, 23, 24, 25, 27, 28, 30, 31, 32, 33, 34, 36, 37, 38, 40, 41, 42, 44, 45, 46, 47, 48, 52, 53, 56, 58, 62, 63, 64, 66, 67, 68, 69, 70, 73, 76, 77, 80, 81, 82, 83, 84, 85, 86, 90, 92, 93, 94, 95, 96, 98, 99, 100, 101, 102, 103, 106, 108, 111, 113], "thing": [11, 42, 84], "think": [26, 81, 83, 84], "third": [84, 92, 103, 108], "those": [7, 38, 46, 73, 80, 92], "though": [52, 66], "thought": 33, "thread": [7, 11, 107], "three": [26, 68, 82, 84, 92], "threshold": 107, "through": [10, 13, 18, 42, 84, 86, 92], "throw": 78, "thu": [13, 86, 92], "thumbnail": [29, 73, 78], "thumbnail_360_url": 46, "thumbnail_src": 29, "thumbnail_xpath": 78, "tiekoett": [10, 114], "tiff": 77, "tiktok": 107, "time": [10, 13, 20, 22, 26, 29, 30, 33, 37, 44, 45, 52, 59, 68, 78, 80, 81, 84, 86, 92, 95, 96, 103, 105, 107, 109, 113], "time_map": 42, "time_rang": [1, 29, 45, 52, 78, 86, 104], "time_range_arg": 52, "time_range_map": 78, "time_range_support": [29, 30, 44, 78, 84], "time_range_url": 78, "time_range_v": 78, "timedelta": 29, "timeout": [10, 18, 20, 29, 30, 48, 84, 109, 112], "timeout_limit": 104, "timestamp": [11, 33], "timestamp_format": 33, "timezon": 113, "tin": 109, "tiney": [32, 109], "tini": 7, "tip": 84, "titl": [10, 24, 29, 33, 34, 37, 41, 46, 73, 78, 97], "title_xpath": 78, "tk": [85, 107], "tl": [48, 80, 107, 109], "tm": 84, "tmdb": 56, "to_lang": 29, "to_nam": 29, "to_si": 101, "to_str": [93, 107], "toc": 97, "todai": [24, 77], "todo": 30, "togeth": [59, 70], "token": [14, 15, 30, 34, 35, 36, 37, 38, 95], "token_kei": 95, "token_live_tim": 95, "tokyotoshokan": 109, "tom": 56, "toml": 4, "too": [10, 19, 22, 77, 82, 84, 92, 95, 96], "too_many_request": [93, 95], "tool": [2, 4, 9, 10, 25, 26, 38, 66, 79, 80, 81, 83, 84, 85, 91, 113], "toot": 109, "tootfind": [55, 109], "top": 84, "tor": [10, 12, 18, 20, 30, 31, 91, 92, 93], "tor_check": 100, "tor_check_plugin": 86, "torproject": [12, 100], "torrent": [45, 70], "torrentfil": 29, "torznab": 32, "torznab_categori": 70, "touch": [6, 8, 11, 18], "tpb": 109, "tr": [52, 107], "track": [75, 91, 92, 108], "tracker": [10, 12, 16, 45, 70], "tracker_url_remov": 86, "trademark": 84, "tradeoff": 45, "tradit": 73, "trail": [6, 10, 24, 107], "train": 84, "trait": [32, 52, 58, 65, 73, 81, 98], "traits_v1": 30, "transalt": 98, "transform": 84, "translat": [41, 42, 65, 79, 81, 91, 98, 100, 108], "transpar": [80, 113], "tree": [10, 80, 81, 83], "trend": 56, "tri": [44, 48, 68, 95, 98], "trick": 107, "true": [1, 2, 6, 8, 11, 13, 18, 19, 20, 23, 24, 29, 30, 31, 33, 35, 36, 38, 42, 44, 46, 47, 48, 52, 58, 68, 69, 70, 73, 74, 78, 82, 84, 86, 95, 98, 102, 106, 107], "trust": [13, 18, 91, 92], "trustworthi": 111, "try": [10, 11, 25, 44, 64, 68, 85, 92], "tt": [107, 109], "ttf": 3, "tube": 61, "tune": [4, 5], "tunnel": 0, "tupl": [95, 98, 101, 106, 107], "turn": [10, 22, 26, 46, 72, 77, 103], "tw": [52, 73, 75, 98], "tw_hk": 68, "tw_tw": 68, "twice": 10, "twitter": [55, 63], "two": [6, 7, 8, 11, 15, 18, 20, 26, 44, 64, 73, 84, 86, 107], "txt": [81, 84, 107], "type": [1, 9, 10, 23, 26, 30, 31, 33, 34, 36, 52, 55, 68, 73, 74, 78, 79, 81, 82, 86, 92, 95, 96, 97, 105, 106, 107, 113], "typedur": 103, "typeerror": 107, "typic": [2, 81, 84], "typo": [44, 84], "tyrant": 4, "tyv": 107, "tz": 52, "u": [10, 18, 22, 29, 44, 52, 68, 80, 81, 83, 84, 91, 98, 108, 109], "u5409": 107, "ua": 52, "ubu2004": [81, 113], "ubu2110": 113, "ubu2204": 113, "ubuntu": [3, 6, 8, 10, 11, 81, 84, 109, 113], "ud": 6, "ug": [52, 107], "ugli": 84, "ugo": 113, "ui": [2, 4, 6, 8, 10, 11, 14, 17, 18, 29, 30, 42, 44, 52, 62, 63, 67, 68, 84, 90, 91, 98, 109], "ui_async": 52, "ui_lang": 44, "uid": [11, 80], "uk": [52, 107], "ukrainian": 107, "ullamco": 84, "ultrasecretkei": [2, 10, 15, 23], "un": 10, "uncom": [6, 10, 20], "uncomfort": 72, "uncommon": [26, 52], "under": [17, 18, 29, 32, 46, 80, 113], "underlin": [29, 31, 81], "underscor": [31, 98], "understand": [84, 98], "undo": 25, "undocu": 64, "unescap": 107, "unfortun": [26, 42, 55], "unicod": [79, 98], "uniform": 68, "uninstal": [25, 81], "union": 107, "unit": [11, 12, 26, 48, 81, 91, 93, 98], "unit_convert": 101, "universalfeedpars": 95, "unix": [2, 6, 8, 10, 11, 13, 21, 102], "unixepoch": 37, "unknown": [65, 68, 92, 95], "unknownlocaleerror": 68, "unless": 18, "unlik": [73, 92], "unlimit": [10, 13], "unpack": 37, "unrestrict": 13, "unset": [11, 22, 67, 68, 95, 98], "unspecifi": 29, "unsplash": 109, "unsupport": 77, "until": 103, "untouch": 81, "unusu": 11, "unwant": 9, "up": [2, 5, 6, 7, 8, 10, 11, 18, 21, 25, 28, 42, 80, 81, 84, 85, 91, 98, 101], "upd_cfg": 95, "updat": [4, 7, 10, 18, 26, 29, 31, 50, 58, 71, 73, 79, 81, 82, 85, 87, 90, 95, 114], "update_ahmia_blacklist": 87, "update_curr": 87, "update_engine_descript": 87, "update_engine_trait": 87, "update_external_bang": 87, "update_firefox_vers": 87, "update_local": [87, 98], "update_osm_keys_tag": 87, "update_pyg": 87, "update_wikidata_unit": 87, "upgrad": [5, 25], "upload": [73, 77], "upon": 113, "upper": 84, "upstream": [6, 8, 11], "uptim": 10, "ur": 107, "uri": 37, "url": [1, 2, 6, 7, 10, 12, 13, 16, 18, 21, 23, 24, 26, 28, 29, 33, 37, 42, 46, 47, 48, 50, 51, 52, 56, 61, 62, 64, 69, 70, 71, 73, 74, 75, 77, 78, 80, 81, 82, 85, 92, 93, 95, 99, 102, 107, 113], "url_for": 95, "url_str": 75, "url_video": 37, "url_video_hd": 37, "url_video_sd": 37, "url_xpath": 78, "urlencod": 52, "urllib": 52, "urlpars": 82, "us": [0, 3, 5, 6, 7, 8, 9, 10, 11, 13, 15, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 37, 38, 39, 40, 41, 42, 44, 46, 48, 50, 52, 53, 55, 56, 58, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 73, 74, 75, 77, 78, 80, 81, 83, 84, 85, 87, 90, 91, 95, 97, 98, 102, 103, 105, 106, 107, 109, 110, 111, 112, 113, 114], "usag": [23, 31, 80, 81, 84, 97, 108, 113, 114], "use_ac": 52, "use_default_set": [2, 14], "use_local_search_result": 63, "use_official_api": [18, 30], "use_source_url": 69, "useabl": 59, "user": [0, 4, 7, 9, 11, 12, 13, 15, 17, 18, 20, 21, 22, 26, 29, 30, 34, 44, 47, 48, 52, 53, 55, 63, 65, 68, 74, 78, 80, 81, 84, 91, 92, 95, 98, 100, 107, 108, 109, 111, 113, 114], "user_ag": 95, "user_random": 33, "useradd": [10, 81], "userag": [81, 107], "useragent_suffix": [10, 20], "userdel": 81, "usermod": 7, "usernam": [21, 36, 37, 47], "using_tor_proxi": [10, 18, 20, 30, 31, 32], "usr": [2, 6, 7, 8, 10, 11, 13, 21, 25, 80, 81, 102, 114], "usual": [11, 27, 33, 42, 51, 78, 79, 83, 92, 113], "ut": 84, "utf": [6, 11, 84, 113], "utf8": [52, 81], "util": [3, 6, 8, 9, 10, 25, 35, 37, 38, 80, 82, 85, 91, 93, 112], "uu": 95, "uuid": 111, "uwsgi": [3, 4, 5, 7, 8, 9, 10, 25, 80, 91, 114], "uwsgi_param": 8, "uwsgi_pass": 8, "uwsgi_thread": 7, "uwsgi_work": 7, "uz": 107, "v": [7, 10, 11, 26, 48], "v0": 81, "v10": 81, "v16": 81, "v2": 37, "v3": [53, 64], "v4": 51, "val": [95, 101], "valid": [29, 37, 38, 47, 65, 71, 72, 86, 95], "valu": [1, 7, 10, 13, 18, 19, 22, 29, 30, 31, 33, 34, 35, 37, 38, 40, 42, 47, 48, 50, 52, 62, 63, 68, 71, 73, 74, 78, 84, 86, 95, 96, 97, 98, 101, 103, 107, 114], "valueerror": [57, 107], "var": 6, "vari": 11, "variabl": [7, 15, 20, 29, 84, 98, 106, 107], "variant": [73, 84], "varieti": 40, "variou": [19, 26, 35, 52, 80, 82], "vassal": 11, "ve": 52, "vec": 107, "vector": 84, "vendor": 26, "veniam": 84, "venv": [3, 10], "vep": 107, "verbos": 10, "veri": [29, 44, 113], "verif": [10, 20, 30, 42], "verifi": [10, 20, 29, 111], "vero": 84, "versa": 101, "version": [10, 12, 29, 33, 79, 81, 84, 98], "vi": [52, 107], "via": [12, 13, 40, 69, 83, 85], "vice": 101, "video": [17, 44, 45, 60, 62, 64, 67, 68, 74, 107, 110], "video_id": 46, "video_respons": 61, "videolanguag": 61, "view": [29, 47, 79, 92], "viewbox": 84, "vim": [10, 24, 86], "vimeo": 109, "vintag": 52, "virtual": [6, 35, 37, 38], "virtualenv": [10, 11, 80, 81, 114], "visit": [7, 10, 36, 68, 84, 85, 92, 108], "visual": 77, "vl": 107, "vm": [85, 109], "vn": 52, "vo": 107, "void": [32, 109], "void_arch": 71, "voidlinux": [71, 109], "volum": [7, 29], "voluptua": 84, "vpn": [58, 92], "vqd": 48, "vulner": 92, "w": [33, 109], "w3": [68, 84], "w3c": 68, "wa": [10, 18, 25, 26, 29, 73, 77, 80, 81, 102, 103, 107, 108, 109], "wai": [11, 13, 15, 26, 29, 36, 42, 45, 70, 84, 92], "wait": [20, 103], "wallhaven": [32, 109], "wallpap": 72, "want": [5, 7, 10, 11, 18, 20, 24, 26, 36, 37, 53, 63, 81, 84, 85, 86, 90, 92, 108, 112, 113], "war": 107, "warn": [3, 44, 81, 84, 95, 113], "watch": 26, "wau": 111, "wb": 109, "wc": 109, "wca": 109, "wcf": 109, "wcv": 109, "wd": 109, "wdr": 69, "we": [0, 2, 3, 6, 8, 9, 10, 11, 15, 18, 27, 28, 42, 44, 46, 48, 52, 54, 55, 56, 63, 68, 77, 80, 81, 82, 83, 84, 87, 90, 93, 98, 108, 112, 113], "web": [0, 7, 10, 19, 22, 23, 24, 29, 30, 36, 44, 48, 63, 64, 66, 68, 73, 75, 77, 80, 81, 82, 95, 107, 113], "web_lite_url": 64, "webapi": 32, "webapp": [10, 11, 23, 81], "webcach": [10, 24], "weblat": [26, 81, 90, 108], "webp": 77, "webproject": 74, "webserv": 8, "websit": [1, 18, 30, 48, 49, 51, 77, 84, 96, 108], "website_nam": 10, "website_url": 10, "webui": 66, "week": [7, 29, 42, 52, 78], "weight": [18, 84, 101, 109], "weird": 26, "welcom": [6, 8, 74, 108], "well": [7, 62, 67, 68, 73, 84, 91, 108], "were": 73, "werkzeug": 95, "west": 83, "wfr": 111, "wh": 109, "what": [6, 8, 11, 13, 18, 25, 35, 48, 68, 72, 77, 80, 84, 98, 103, 108, 113], "whatev": [9, 113], "wheel": 10, "when": [3, 6, 7, 9, 10, 12, 18, 21, 24, 30, 31, 34, 38, 44, 45, 52, 56, 65, 68, 69, 82, 83, 84, 92, 93, 96, 98, 105, 107, 108, 111], "whenev": [0, 98, 113], "where": [0, 11, 23, 29, 34, 37, 38, 44, 66, 69, 73, 80, 84, 100, 103, 106, 108], "whether": [13, 18, 70, 77, 92, 95], "which": [2, 9, 10, 11, 13, 18, 20, 26, 27, 28, 29, 30, 32, 33, 34, 37, 38, 43, 46, 53, 55, 56, 62, 64, 70, 76, 78, 80, 81, 83, 84, 86, 90, 91, 92, 95, 98, 99, 103, 106, 108, 109], "while": [11, 27, 44, 80, 81, 83, 84, 85, 96, 103, 107, 108], "whitepap": 44, "whitespac": 81, "who": [7, 11, 47, 72, 92], "whole": 82, "whose": [99, 107], "why": [55, 84, 91, 110], "wib": 109, "wibi": 109, "wide": 26, "widen": 84, "width": [24, 77, 84], "wiki": [1, 7, 8, 10, 15, 16, 18, 33, 73, 81, 84, 109, 113], "wiki_lc_locale_vari": 73, "wiki_netloc": [41, 73], "wiki_url": [10, 16], "wikibook": 109, "wikicommon": 109, "wikidata": [48, 101, 109], "wikidata_id": [18, 30, 51], "wikidata_unit": 101, "wikimedia": [32, 33], "wikimini": 109, "wikinew": 109, "wikipedia": [10, 22, 33, 86, 99, 109, 111], "wikipedia_article_depth": 73, "wikipedia_languag": 73, "wikiquot": 109, "wikisourc": 109, "wikispeci": 109, "wikivers": 109, "wikivoyag": 109, "wild": 83, "wildcard": 37, "win": [13, 99], "window": [48, 95, 103], "wish": [20, 35, 37], "within": [27, 28, 58, 84, 111], "without": [3, 7, 11, 18, 22, 29, 30, 35, 55, 68, 70, 81, 91, 92, 97, 98, 99, 108, 113], "wkmn": 109, "wlc": 79, "wn": 109, "wolframalpha": 109, "wolframalpha_noapi": 109, "won": [7, 11, 44], "word": [81, 82, 84, 86], "work": [0, 7, 10, 13, 24, 26, 29, 30, 33, 34, 40, 48, 51, 72, 79, 81, 83, 92, 106, 110, 113], "workaround": 18, "worker": 11, "workflow": [83, 90], "working_dir": 34, "world": [26, 84, 92], "worri": 83, "worst": 107, "worth": 11, "would": [18, 27, 42, 50, 80, 92, 99], "wp": [73, 109, 111], "wq": 109, "wrap": [79, 113], "wrapper": 81, "write": [21, 73, 95], "written": [10, 19, 52, 80], "wrong": [48, 81], "wsgi": 11, "wsp": 109, "wt": 48, "wt_wt": 48, "wuu": 107, "wv": 109, "ww": 95, "www": [3, 6, 10, 20, 37, 42, 46, 48, 56, 64, 84, 107, 113], "www1x": 109, "wy": 109, "wysiwyg": 26, "x": [0, 6, 8, 10, 11, 13, 23, 29, 55, 63, 84, 95, 113], "x1": 84, "x2": 84, "x86": 39, "x86_64": [39, 71], "x_for": [13, 95], "xal": 107, "xapian": 66, "xbp": 71, "xdg": [7, 10, 81], "xetex": 3, "xmf": 107, "xml": [11, 45, 52, 70, 84, 107], "xmln": 84, "xpath": [32, 68, 96, 107, 109], "xpath_result": 107, "xpath_spec": [96, 107], "xpath_str": 107, "xpathxslt": 107, "xxxx": [48, 84], "xz": 85, "y": [3, 10, 12, 33, 84, 109], "y1": 84, "y2": 84, "ya": [74, 109], "yaci": [32, 109], "yacy_search_serv": 74, "yacybot": 95, "yahoo": [32, 95, 109], "yahoo_new": 109, "yai": [74, 109], "yaml": [10, 18, 21, 30, 31, 81, 106], "yamllint": 81, "yamllint_fil": 81, "yandex": 10, "yandexbot": 95, "yandexmobilebot": 95, "ye": 80, "year": [29, 42, 52, 76, 78, 86], "yep": 109, "yepi": 109, "yepn": 109, "yet": [26, 29, 32, 68, 74, 85, 113], "yh": 109, "yhn": 109, "yi": 107, "yield": 94, "yml": [2, 4, 6, 7, 8, 10, 11, 14, 18, 25, 27, 28, 35, 36, 37, 38, 53, 64, 67, 68, 80, 81, 82, 84, 86, 99, 100, 101, 102, 106, 107, 109, 114], "yn": 113, "yo": 107, "you": [0, 2, 3, 5, 6, 7, 8, 9, 10, 11, 13, 15, 16, 18, 19, 20, 21, 23, 24, 25, 26, 27, 33, 34, 35, 36, 37, 38, 42, 44, 47, 50, 53, 66, 68, 70, 71, 72, 73, 77, 80, 81, 83, 84, 85, 86, 90, 91, 92, 99, 101, 108, 111, 112, 113, 114], "your": [0, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 16, 18, 19, 21, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 44, 47, 66, 73, 77, 79, 81, 82, 83, 84, 85, 90, 91, 108, 111, 113], "your_morty_proxy_kei": 10, "yourself": [7, 26, 108], "youtu": 99, "youtub": [62, 99, 107, 109], "youtube_noapi": 109, "yt": 109, "yue": 107, "yyyi": 84, "z": [32, 84, 107, 109], "za": [52, 107], "zadd": 103, "zcount": 103, "zero": [103, 113], "zgrab": 95, "zh": [41, 52, 68, 73, 98, 107], "zh_ch": 75, "zh_cht": 75, "zh_han": [98, 107], "zh_hans_cn": [68, 97], "zh_hant": [98, 107], "zh_hant_hk": 68, "zh_hant_tw": 68, "zh_tw": 98, "zip": 107, "zlib": 109, "zlib1g": [3, 10, 85], "zlib2010": 76, "zlib_ext": 76, "zlib_year_from": 76, "zlib_year_to": 76, "zlibrari": [76, 109], "zmeu": 95, "zremrangebyscor": 103, "zw": 52, "zz": 107, "zzzz": 84, "\u00f3": 107, "\u015bl\u014dnski": 98, "\u0780": 98, "\u0788": 98, "\u078b": 98, "\u51fa\u79df\u8eca": 73, "\u51fa\u79df\u8f66": 73, "\u5409": 107, "\u5fb7\u58eb": 73, "\u641c\u7d22": 41, "\u7684\u58eb": 73, "\u8a08\u7a0b\u8eca": 73}, "titles": ["Answer CAPTCHA from server\u2019s IP", "Administration API", "Architecture", "Buildhosts", "Administrator documentation", "Installation", "Apache", "Docker Container", "NGINX", "Installation Script", "Step by step installation", "uWSGI", "Plugins builtin", "Limiter", "Settings", "settings.yml", "brand:", "categories_as_tabs:", "engine:", "general:", "outgoing:", "redis:", "search:", "server:", "ui:", "SearXNG maintenance", "How to contribute", "Demo Offline Engine", "Demo Online Engine", "Engine Overview", "Engine Library", "SearXNG\u2019s engines loader", "Engine Implementations", "MediaWiki Engine", "Command Line Engines", "NoSQL databases", "Local Search APIs", "SQL Engines", "Offline Concept", "Alpine Linux Packages", "Anna\u2019s Archive", "Arch Linux", "Bing Engines", "Bpb", "Brave Engines", "BT4G", "Dailymotion", "Discourse Forums", "DuckDuckGo Engines", "Geizhals", "Gitea", "GitLab", "Google Engines", "Lemmy", "Library of Congress", "Mastodon", "Moviepilot", "Matrix Rooms Search (MRS)", "Mullvad-Leta", "Mwmbl Engine", "Odysee", "Peertube Engines", "Piped", "Presearch Engine", "Qwant", "RadioBrowser", "Recoll Engine", "Seekr Engines", "Startpage Engines", "Tagesschau API", "Torznab WebAPI", "Void Linux binary packages", "Wallhaven", "Wikimedia", "Yacy", "Yahoo Engine", "Z-Library", "Tineye", "XPath Engine", "Developer documentation", "Developing in Linux Containers", "Makefile & ./manage", "Plugins", "Development Quickstart", "reST primer", "Runtime Management", "Search API", "Tooling box searxng_extra", "searxng_extra/standalone_searx.py", "searxng_extra/update/", "Translation", "Welcome to SearXNG", "Why use a private instance?", "Source-Code", "Custom message extractor (i18n)", "Bot Detection", "SearXNG Exceptions", "Online /info", "Locales", "Hostnames plugin", "Tor check plugin", "Unit converter plugin", "Redis DB", "Redis Library", "Search", "Search processors", "Settings Loader", "Utility functions for the engines", "About SearXNG", "Configured Engines", "User information", "Search syntax", "DevOps tooling box", "utils/lxc.sh", "utils/searxng.sh"], "titleterms": {"": [0, 6, 8, 11, 31, 40, 98], "If": 29, "In": 80, "The": [6, 8, 26, 29, 80], "about": [84, 92, 108], "abstract": 105, "activ": 81, "addit": 29, "administr": [1, 4], "admonit": 84, "after": 25, "aka": 84, "alpin": 39, "anchor": 84, "anna": 40, "answer": [0, 48], "apach": 6, "api": [1, 36, 48, 52, 69, 86], "app": 109, "ar": [29, 92], "arbitrari": 29, "arch": 41, "architectur": 2, "archiv": 40, "archlinux": 80, "argument": 29, "articl": 84, "ascii": 84, "asdf": 85, "audienc": 80, "autocomplet": [52, 59], "automat": 111, "bang": 111, "bar": 1, "bashism": 7, "basic": 84, "bibliograph": 84, "bibtex": 29, "binari": 71, "bing": 42, "block": 84, "bot": 95, "box": [87, 112], "bpb": 43, "brand": 16, "brave": 44, "bt4g": 45, "build": [3, 7, 26, 81, 84], "buildhost": [3, 113], "built": 12, "builtin": 12, "bullet": 84, "can": 108, "captcha": 0, "categori": [68, 111], "categories_as_tab": 17, "check": [10, 25, 100], "checker": 81, "class": 105, "clean": [26, 81, 113], "code": [26, 84, 93, 98], "command": [7, 34, 112, 113, 114], "commit": 26, "common": [29, 112], "compon": 32, "concept": 38, "conclus": 92, "config": [95, 113], "configur": [1, 10, 12, 13, 29, 33, 34, 35, 37, 40, 45, 50, 51, 53, 57, 62, 64, 66, 67, 70, 74, 76, 78, 109], "congress": 54, "connect": 113, "consequ": 92, "contain": [7, 80], "content": [44, 45, 52, 53, 57, 62, 64, 67, 74, 76, 84], "contribut": 26, "convert": 101, "creat": [10, 26], "csp": 52, "csv": 84, "currenc": [32, 105], "custom": 94, "dailymot": 46, "data": [1, 98], "databas": 35, "db": 102, "debian": [6, 11], "debug": 25, "default": [12, 29, 108], "definit": 84, "demo": [27, 28], "depend": [10, 35, 37, 38], "deploi": 26, "design": 26, "detect": 95, "develop": [3, 21, 79, 80, 83], "devop": 112, "dictionari": [32, 105], "direct": 26, "disabl": [6, 8], "discours": 47, "distributor": 11, "do": 108, "doc": [3, 26, 81], "docker": [7, 113], "document": [4, 26, 79], "doe": [92, 108], "dot": 84, "drop": 81, "duckduckgo": 48, "elasticsearch": 36, "emb": 1, "enabl": 13, "engin": [18, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 38, 42, 44, 48, 52, 59, 61, 63, 66, 67, 68, 75, 78, 80, 81, 107, 108, 109, 111], "engine_typ": 29, "entri": 82, "env": 81, "environ": [81, 84, 112], "equat": 84, "exampl": [18, 34, 35, 36, 37, 47, 66, 78, 82, 84], "except": 96, "ext": 84, "extern": [82, 111], "extlink": 84, "extra": [35, 37, 38, 48], "extractor": 94, "featur": 91, "field": [29, 84], "figur": 84, "file": [29, 84, 109], "first": 9, "flask": 95, "flat": 84, "foo": 84, "format": [29, 81], "forum": 47, "framework": 32, "from": 0, "fulli": 80, "function": [80, 107], "further": [2, 6, 8, 9, 11, 12, 14, 15, 18, 25, 29, 35, 36, 37, 80, 81, 82, 83, 84, 86, 109, 113, 114], "gate": 84, "geizhal": 49, "gener": [19, 29, 84, 109], "gentlemen": 80, "get": [1, 7, 85], "gh": 81, "gitea": 50, "github": 26, "gitlab": 51, "go": 81, "goggl": 44, "good": [26, 113], "googl": 52, "graphviz": 84, "grid": 84, "group": 109, "hackabl": 26, "head": 84, "header": [6, 95], "hello": 84, "help": [81, 113, 114], "highlight": 84, "hint": [7, 113], "hlist": 84, "horizont": 84, "hostnam": 99, "how": [25, 26, 92, 108], "http": [6, 8, 95], "http_accept": 95, "http_accept_encod": 95, "http_accept_languag": 95, "http_connect": 95, "http_user_ag": 95, "hyperlink": 84, "i": [29, 92, 108], "i18n": 94, "imag": [7, 29, 42, 48, 52, 84, 109], "implement": [13, 32, 33, 34, 35, 37, 40, 44, 45, 47, 50, 51, 53, 57, 62, 63, 64, 66, 67, 70, 74, 76, 78, 98], "info": [7, 13, 18, 25, 32, 34, 35, 36, 37, 47, 66, 97], "inform": 110, "inlin": 84, "insid": 7, "inspect": 25, "instal": [5, 9, 10, 25, 81, 113, 114], "instanc": 92, "instant": 48, "interfac": 38, "internet": 113, "intersphinx": 84, "introduc": 85, "io": 26, "ip": [0, 95], "ip_limit": 95, "ip_list": 95, "j": 81, "kernel": 84, "kiss": 84, "know": 113, "known": [62, 67], "languag": [44, 63, 68, 111], "latex": 84, "layout": [6, 11], "lemmi": 53, "leta": 58, "librari": [30, 54, 76, 103], "limit": [13, 95], "line": [7, 34, 84], "link": 84, "link_token": 95, "lint": 3, "linux": [39, 41, 71, 80], "list": [84, 95], "lite": 48, "liter": 84, "live": [26, 81], "loader": [31, 106], "local": [36, 98], "locat": 15, "log": [6, 8], "lxc": 113, "lxd": 113, "lyric": 109, "mainten": [11, 25], "make": [29, 81, 108], "makefil": 81, "manag": [81, 85], "manual": 0, "map": [29, 109], "mariadb": 37, "markup": 84, "mastodon": 55, "math": 84, "matrix": 57, "matter": 84, "media": 29, "mediawiki": 33, "meilisearch": 36, "messag": 94, "method": 95, "migrat": 25, "mode": 11, "modul": [6, 29], "mongodb": 35, "motiv": 80, "moviepilot": 56, "mr": 57, "mullvad": 58, "multilingu": 18, "music": 109, "mwmbl": 59, "my": [92, 108], "mysql": 37, "name": [29, 81, 84], "need": 3, "nest": 84, "new": [42, 48, 52, 109], "nginx": 8, "node": 81, "nodej": 81, "nosql": 35, "note": [21, 84], "nvm": 81, "o": 9, "obsolet": 25, "odyse": 60, "offlin": [27, 32, 38, 105], "onlin": [28, 29, 32, 97, 105], "online_curr": 29, "online_dictionari": 29, "online_url_search": 29, "option": 29, "ordinari": 84, "origin": [11, 91], "outgo": 20, "overrid": 29, "overview": 29, "own": [92, 108], "packag": [10, 29, 39, 71, 109], "page": 81, "paper": 29, "paragraph": 84, "paramet": [29, 86], "part": 91, "pass": 29, "peertub": 61, "pipe": 62, "pitfal": 11, "plugin": [12, 82, 99, 100, 101], "point": 82, "polici": 52, "postgresql": 37, "presearch": 63, "prime": 26, "primer": 84, "privaci": [26, 92], "privat": [18, 38, 92], "probe": 95, "process": 84, "processor": 105, "product": 80, "program": 38, "protect": 92, "public": 92, "py": [88, 89], "pylint": 81, "python": 81, "q": 109, "queri": 111, "quickstart": 83, "quirk": [62, 67], "quot": 84, "qwant": 64, "radio": 109, "radiobrows": 65, "rate": 95, "read": [2, 6, 8, 9, 11, 12, 14, 15, 18, 25, 29, 35, 36, 37, 80, 81, 82, 83, 84, 86, 109, 113, 114], "readabl": 84, "recol": 66, "recommend": 29, "redi": [21, 35, 81, 102, 103], "redirect": 111, "ref": 84, "region": [44, 63, 68], "remote_addr": 95, "remov": 25, "render": 84, "repo": 109, "request": [29, 95], "respons": 1, "rest": [26, 84], "result": 29, "role": 84, "room": 57, "run": [7, 81, 92, 113], "runtim": 85, "sampl": 1, "scholar": 52, "scienc": 109, "scientific_publ": 109, "script": [3, 9], "search": [1, 18, 22, 32, 36, 57, 63, 81, 86, 104, 105, 108, 111], "searxng": [6, 7, 8, 10, 25, 31, 80, 91, 92, 96, 98, 108, 113, 114], "searxng_extra": [87, 88, 89], "secur": [38, 52], "see": [29, 92], "seekr": 67, "select": 111, "sepiasearch": 61, "server": [0, 6, 8, 23, 35], "servic": 25, "set": [14, 15, 29, 106, 108], "setup": [2, 11, 29, 113], "sh": [113, 114], "shell": [3, 7, 81], "sidebar": 84, "simpl": 84, "site": [6, 8], "skill": 84, "smart": 84, "social_media": 109, "soft": 84, "software_wiki": 109, "solr": 36, "sourc": [26, 93], "space": 84, "special": 111, "specif": 84, "specifi": 29, "sphinx": [3, 84], "sql": 37, "sqlite": 37, "ssh": 0, "stai": 25, "standalone_searx": 88, "start": [80, 85], "startpag": 68, "static": 81, "statu": 81, "step": 10, "structur": 84, "subgroup": 109, "substitut": 84, "suit": [80, 113], "summari": 80, "svg": 84, "syntax": [84, 111], "tab": [84, 109], "tabl": 84, "tagesschau": 69, "templat": [29, 84], "test": 81, "theme": 81, "time": 12, "tiney": 77, "titl": 84, "token": 18, "toml": 13, "tool": [3, 87, 112], "tor": 100, "torrent": 29, "torznab": 70, "trait": 30, "translat": [26, 90, 109], "true": [10, 15], "truth": 84, "tune": 25, "type": [29, 32, 63], "tyrant": 11, "ui": 24, "unicod": 84, "unit": 101, "up": 113, "updat": [9, 25, 89], "update_ahmia_blacklist": 89, "update_curr": 89, "update_engine_descript": 89, "update_engine_trait": 89, "update_external_bang": 89, "update_firefox_vers": 89, "update_local": 89, "update_osm_keys_tag": 89, "update_pyg": 89, "update_wikidata_unit": 89, "url": [32, 84, 105], "us": [92, 108], "use_default_set": [10, 15], "user": [10, 110], "usual": 80, "util": [107, 113, 114], "uwsgi": [2, 6, 11], "version": 85, "video": [29, 42, 46, 48, 52, 61, 63, 109], "view": 84, "void": 71, "wallhaven": 72, "warn": 7, "weather": 48, "web": [42, 52, 59, 109], "webapi": 70, "welcom": 91, "what": 92, "why": [92, 108], "wiki": 41, "wikidata": 73, "wikimedia": [73, 109], "wikipedia": 73, "without": 109, "wlc": 90, "work": [80, 108], "worth": 92, "wrap": 80, "xpath": 78, "yaci": 74, "yahoo": 75, "yml": [15, 29], "your": 80, "z": 76}}) \ No newline at end of file +Search.setIndex({"alltitles": {"! select engine and category": [[114, "select-engine-and-category"]], "!! automatic redirect": [[114, "automatic-redirect"]], "!! external bangs": [[114, "bang-external-bangs"]], "./manage go.help": [[82, "manage-go-help"]], "./manage redis.help": [[82, "manage-redis-help"]], ": select language": [[114, "select-language"]], "::": [[85, "rest-literal"]], ":ref: role": [[85, null]], "ASCII grid table": [[85, null]], "About LaTeX": [[85, null]], "About SearXNG": [[111, null]], "Abstract processor class": [[107, "module-searx.search.processors.abstract"]], "Administration API": [[1, null]], "Administrator documentation": [[4, null]], "Admonitions": [[85, "admonitions"]], "Alpine Linux Packages": [[40, null]], "Anchors": [[85, "anchors"]], "Anchors & Links": [[85, "anchors-links"]], "Anna\u2019s Archive": [[41, null]], "Answer CAPTCHA from server\u2019s IP": [[0, null]], "Apache": [[6, null]], "Apache modules": [[6, "apache-modules"]], "Apache sites": [[6, "apache-sites"]], "Apache\u2019s SearXNG site": [[6, "apache-s-searxng-site"]], "Arch Linux": [[42, null]], "Arch Linux Wiki": [[42, "arch-linux-wiki"]], "Architecture": [[2, null]], "Audience": [[81, null]], "BT4G": [[46, null]], "Bashism": [[7, null]], "Basic article structure": [[85, "basic-article-structure"]], "Basic inline markup": [[85, "basic-inline-markup"]], "Bing Engines": [[43, null]], "Bing Images": [[43, "module-searx.engines.bing_images"]], "Bing News": [[43, "module-searx.engines.bing_news"]], "Bing Videos": [[43, "module-searx.engines.bing_videos"]], "Bing WEB": [[43, "module-searx.engines.bing"]], "Bot Detection": [[96, null]], "Bpb": [[44, null]], "Brave Engines": [[45, null]], "Brave Goggles": [[45, "brave-goggles"]], "Brave languages": [[45, "brave-languages"]], "Brave regions": [[45, "brave-regions"]], "Build and Development tools": [[3, "build-and-development-tools"]], "Build docs": [[3, "build-docs"]], "Build environment": [[85, null]], "Build the image": [[7, "build-the-image"]], "Buildhosts": [[3, null]], "Bullet list": [[85, "bullet-list"]], "CSV table": [[85, "csv-table"], [85, null]], "CSV table example": [[85, "id14"]], "Check": [[10, "check"]], "Check after Installation": [[26, "check-after-installation"]], "Clean up": [[116, "clean-up"]], "Code": [[27, "code"]], "Code block": [[85, null]], "Command Help": [[116, "command-help"], [117, "command-help"]], "Command Line Engines": [[35, null]], "Command line": [[7, "command-line"]], "Common command environments": [[115, "common-command-environments"]], "Common options in the engine module": [[30, "id3"]], "Common options in the engine setup (settings.yml)": [[30, "id4"]], "Conclusion": [[93, "conclusion"]], "Config": [[96, "module-searx.botdetection.config"]], "Configuration": [[10, "configuration"], [34, "configuration"], [35, "configuration"], [36, "configuration"], [36, "id3"], [41, "configuration"], [46, "configuration"], [51, "configuration"], [52, "configuration"], [54, "configuration"], [58, "configuration"], [63, "configuration"], [65, "configuration"], [67, "configuration"], [68, "configuration"], [71, "configuration"], [75, "configuration"], [77, "configuration"], [79, "configuration"]], "Configure Limiter": [[14, "configure-limiter"]], "Configure the engines": [[36, "configure-the-engines"], [38, "configure-the-engines"]], "Configured Engines": [[112, null]], "Content matters": [[85, null]], "Content-Security-Policy (CSP)": [[53, null]], "Contents": [[45, "contents"], [46, "contents"], [54, "contents"], [58, "contents"], [63, "contents"], [65, "contents"], [68, "contents"], [75, "contents"], [77, "contents"]], "Create good commits!": [[27, null]], "Create user": [[10, "create-user"]], "Custom message extractor (i18n)": [[95, null]], "DOT files (aka Graphviz)": [[85, "dot-files-aka-graphviz"]], "Dailymotion": [[47, null]], "Dailymotion (Videos)": [[47, "dailymotion-videos"]], "Debian\u2019s Apache layout": [[6, "debian-s-apache-layout"]], "Debian\u2019s uWSGI layout": [[11, "debian-s-uwsgi-layout"]], "Definition list": [[85, "definition-list"]], "Demo Offline Engine": [[28, null]], "Demo Online Engine": [[29, null]], "DevOps tooling box": [[115, null]], "Developer documentation": [[80, null]], "Developing in Linux Containers": [[81, null]], "Development Quickstart": [[84, null]], "Disable logs": [[8, "disable-logs"]], "Discourse Forums": [[48, null]], "Distributors": [[11, "distributors"]], "Docker Container": [[7, null]], "Documentation": [[27, "documentation"]], "DuckDuckGo Engines": [[49, null]], "DuckDuckGo Extra (images, videos, news)": [[49, "duckduckgo-extra-images-videos-news"]], "DuckDuckGo Instant Answer API": [[49, "duckduckgo-instant-answer-api"]], "DuckDuckGo Lite": [[49, "duckduckgo-lite"]], "DuckDuckGo Weather": [[49, "duckduckgo-weather"]], "Elasticsearch": [[37, "module-searx.engines.elasticsearch"]], "Embed search bar": [[1, "embed-search-bar"]], "Enable Limiter": [[14, "enable-limiter"]], "Engine File": [[30, "engine-file"]], "Engine Implementations": [[33, null]], "Engine Library": [[31, null]], "Engine Overview": [[30, null]], "Engine Types": [[33, "engine-types"]], "Engine settings.yml": [[30, "engine-settings-yml"]], "Engine traits": [[31, "module-searx.enginelib.traits"]], "Example": [[35, "example"], [36, "example"], [36, "id4"], [37, "example"], [37, "id3"], [37, "id5"], [38, "example"], [38, "id4"], [38, "id7"], [38, "id9"], [48, "example"], [67, "example"], [79, "example"]], "Example plugin": [[83, "example-plugin"]], "Example: Multilingual Search": [[19, "example-multilingual-search"]], "External plugins": [[83, "external-plugins"]], "Extra Dependencies": [[36, "extra-dependencies"], [38, "extra-dependencies"], [39, "extra-dependencies"]], "Favicons": [[13, null]], "Favicons (source)": [[98, null]], "Favicons Cache": [[98, "module-searx.favicons.cache"]], "Favicons Config": [[98, "module-searx.favicons.config"]], "Favicons Proxy": [[98, "module-searx.favicons.proxy"]], "Favicons Resolver": [[98, "module-searx.favicons.resolvers"]], "Field List": [[85, null]], "Field Lists": [[85, "field-lists"]], "Figures & Images": [[85, "figures-images"]], "Framework Components": [[33, null]], "Fully functional SearXNG suite": [[81, null]], "Further list blocks": [[85, "further-list-blocks"]], "Further reading": [[2, null], [85, null], [85, null]], "Further reading ..": [[12, null], [15, null], [16, null], [19, null], [30, null], [83, null], [87, null], [112, null]], "Geizhals": [[50, null]], "General Engine Configuration": [[30, "general-engine-configuration"]], "Generic admonition": [[85, "generic-admonition"]], "Gentlemen, start your engines!": [[81, "gentlemen-start-your-engines"]], "Get Docker": [[7, "get-docker"]], "Get configuration data": [[1, "get-configuration-data"]], "Get started": [[86, "get-started"]], "GitLab": [[52, null]], "Gitea": [[51, null]], "Good to know": [[116, "good-to-know"]], "Google API": [[53, "google-api"]], "Google Autocomplete": [[53, "google-autocomplete"]], "Google Engines": [[53, null]], "Google Images": [[53, "module-searx.engines.google_images"]], "Google News": [[53, "module-searx.engines.google_news"]], "Google Scholar": [[53, "module-searx.engines.google_scholar"]], "Google Videos": [[53, "module-searx.engines.google_videos"]], "Google WEB": [[53, "module-searx.engines.google"]], "Grid tables": [[85, "grid-tables"]], "HTTP headers": [[6, null]], "Headings": [[85, "headings"]], "Horizontal list": [[85, "horizontal-list"]], "Hostnames plugin": [[101, null]], "How can I make it my own?": [[111, "how-can-i-make-it-my-own"]], "How do I set it as the default search engine?": [[111, "how-do-i-set-it-as-the-default-search-engine"]], "How does SearXNG protect privacy?": [[93, "how-does-searxng-protect-privacy"]], "How does it work?": [[111, "how-does-it-work"]], "How to contribute": [[27, null]], "How to inspect & debug": [[26, "how-to-inspect-debug"]], "How to update": [[26, "how-to-update"]], "I see. What about private instances?": [[93, "i-see-what-about-private-instances"]], "IP lists": [[96, "module-searx.botdetection.ip_lists"]], "If the engine_type is online": [[30, "id6"]], "If the engine_type is online_currency,\n in addition to the online arguments:": [[30, "id8"]], "If the engine_type is online_dictionary,\n in addition to the online arguments:": [[30, "id7"]], "If the engine_type is online_url_search,\n in addition to the online arguments:": [[30, "id9"]], "Image processing": [[85, null]], "Implementation": [[14, "implementation"], [51, "implementation"], [58, "implementation"]], "Implementations": [[34, "implementations"], [35, "implementations"], [36, "implementations"], [36, "id5"], [38, "implementations"], [38, "id5"], [38, "id8"], [38, "id10"], [41, "implementations"], [45, "implementations"], [46, "implementations"], [48, "implementations"], [52, "implementations"], [54, "implementations"], [63, "implementations"], [64, "implementations"], [65, "implementations"], [67, "implementations"], [68, "implementations"], [71, "implementations"], [75, "implementations"], [77, "implementations"], [79, "implementations"]], "In containers, work as usual": [[81, "in-containers-work-as-usual"]], "Infrastructure": [[13, "infrastructure"]], "Inline markup": [[85, null]], "Install": [[117, "install"]], "Install LXD": [[116, "install-lxd"]], "Install SearXNG & dependencies": [[10, "install-searxng-dependencies"]], "Install packages": [[10, "install-packages"]], "Install suite": [[116, "install-suite"]], "Installation": [[5, null]], "Installation Script": [[9, null]], "Internet Connectivity & Docker": [[116, "internet-connectivity-docker"]], "Introduce asdf": [[86, "introduce-asdf"]], "Is running my own instance worth it?": [[93, null]], "KISS and readability": [[85, null]], "Known Quirks": [[63, "known-quirks"], [68, "known-quirks"]], "LaTeX math equation": [[85, null]], "Languages & Regions": [[64, "languages-regions"]], "Lemmy": [[54, null]], "Library of Congress": [[55, null]], "Limiter": [[14, null]], "Line spacing": [[85, null]], "Link ordinary URL": [[85, "link-ordinary-url"]], "Lint shell scripts": [[3, "lint-shell-scripts"]], "List markups": [[85, "list-markups"]], "List table": [[85, null]], "List tables": [[85, null]], "Literal block": [[85, null]], "Literal blocks": [[85, "literal-blocks"]], "Local Search APIs": [[37, null]], "Locales": [[100, null]], "Maintenance of the cache": [[13, "maintenance-of-the-cache"]], "Makefile & ./manage": [[82, null]], "Making a Request": [[30, "making-a-request"]], "Manage Versions": [[86, "manage-versions"]], "MariaDB": [[38, "mariadb"]], "Mastodon": [[56, null]], "Math equations": [[85, "math-equations"]], "Matrix Rooms Search (MRS)": [[58, null]], "MediaWiki Engine": [[34, null]], "MeiliSearch": [[37, "module-searx.engines.meilisearch"]], "Method http_accept": [[96, "method-http-accept"]], "Method http_accept_encoding": [[96, "method-http-accept-encoding"]], "Method http_accept_language": [[96, "method-http-accept-language"]], "Method http_connection": [[96, "method-http-connection"]], "Method http_user_agent": [[96, "method-http-user-agent"]], "Method ip_limit": [[96, "method-ip-limit"]], "Method ip_lists": [[96, "method-ip-lists"]], "Method link_token": [[96, "method-link-token"]], "Migrate and stay tuned!": [[26, "migrate-and-stay-tuned"]], "MongoDB": [[36, "engine-mongodb"]], "Motivation": [[81, "motivation"]], "Moviepilot": [[57, null]], "Mullvad-Leta": [[59, null]], "Mwmbl Autocomplete": [[60, "mwmbl-autocomplete"]], "Mwmbl Engine": [[60, null]], "Mwmbl WEB": [[60, "module-searx.engines.mwmbl"]], "MySQL": [[38, "engine-mysql-server"]], "NGINX": [[8, null]], "NGINX\u2019s SearXNG site": [[8, "nginx-s-searxng-site"]], "NVM make nvm.install nvm.status": [[82, "nvm-make-nvm-install-nvm-status"]], "Named hyperlink": [[85, null]], "Nested tables": [[85, null]], "NoSQL databases": [[36, null]], "Node.js environment (make node.env)": [[82, "node-js-environment-make-node-env"]], "Note ..": [[85, null]], "Odysee": [[61, null]], "Offline Concept": [[39, null]], "Offline Engines": [[33, "offline-engines"]], "Offline processor": [[107, "module-searx.search.processors.offline"]], "Online /info": [[99, null]], "Online Currency": [[33, "online-currency"]], "Online Dictionary": [[33, "online-dictionary"]], "Online Engines": [[33, "online-engines"]], "Online URL Search": [[33, "online-url-search"]], "Online URL search processor": [[107, "module-searx.search.processors.online_url_search"]], "Online currency processor": [[107, "module-searx.search.processors.online_currency"]], "Online dictionary processor": [[107, "module-searx.search.processors.online_dictionary"]], "Online processor": [[107, "module-searx.search.processors.online"]], "Origin uWSGI": [[11, "origin-uwsgi"]], "Overrides": [[30, "overrides"]], "Parameter of the default media type:": [[30, "id10"]], "Parameter of the images media type": [[30, "id11"]], "Parameter of the map media type:": [[30, "id14"]], "Parameter of the packages media type": [[30, "id16"]], "Parameter of the paper media type /\n see BibTeX field types and BibTeX format": [[30, "id15"]], "Parameter of the torrent media type:": [[30, "id13"]], "Parameter of the videos media type:": [[30, "id12"]], "Parameters": [[87, "parameters"]], "Passed Arguments (request)": [[30, "passed-arguments-request"]], "Peertube Engines": [[62, null]], "Peertube Video": [[62, "module-searx.engines.peertube"]], "Piped": [[63, null]], "Pitfalls of the Tyrant mode": [[11, "pitfalls-of-the-tyrant-mode"]], "Plugin entry points": [[83, "plugin-entry-points"]], "Plugins": [[83, null]], "Plugins builtin": [[12, null]], "Plugins configured at built time (defaults)": [[12, "id1"]], "PostgreSQL": [[38, "engine-postgresql"]], "Presearch Engine": [[64, null]], "Prime directives: Privacy, Hackability": [[27, "prime-directives-privacy-hackability"]], "Privacy-by-design": [[27, "privacy-by-design"]], "Private Engines (tokens)": [[19, "private-engines-tokens"]], "Private engines (Security)": [[39, "private-engines-security"]], "Probe HTTP headers": [[96, "module-searx.botdetection.http_accept"]], "Programming Interface": [[39, "programming-interface"]], "Proxy configuration": [[13, "proxy-configuration"]], "Python environment (make install)": [[82, "python-environment-make-install"]], "Quoted paragraph and line block": [[85, null]], "Quoted paragraphs": [[85, "quoted-paragraphs"]], "Qwant": [[65, null]], "RadioBrowser": [[66, null]], "Rate limit": [[96, "module-searx.botdetection.ip_limit"]], "Recoll Engine": [[67, null]], "Redis DB": [[104, null]], "Redis Developer Notes": [[22, "redis-developer-notes"]], "Redis Library": [[105, null]], "Redis Server": [[36, "redis-server"]], "Register resolvers": [[13, "register-resolvers"]], "Result Types (template)": [[30, "result-types-template"]], "Roles": [[85, "roles"]], "Running commands": [[116, "running-commands"]], "Runtime Management": [[86, null]], "SQL Engines": [[38, null]], "SQLite": [[38, "engine-sqlite"]], "SQLite DB": [[109, null]], "Sample response": [[1, "sample-response"]], "SearXNG Exceptions": [[97, null]], "SearXNG LXC suite": [[116, "searxng-lxc-suite"]], "SearXNG maintenance": [[26, null]], "SearXNG suite config": [[116, "searxng-suite-config"]], "SearXNG\u2019s engines loader": [[32, null]], "SearXNG\u2019s locale codes": [[100, "module-searx.sxng_locales"]], "SearXNG\u2019s locale data": [[100, "searxngs-locale-data"]], "SearXNG\u2019s locale implementations": [[100, "searxngs-locale-implementations"]], "Search": [[106, null]], "Search API": [[87, null]], "Search processors": [[107, null]], "Search syntax": [[114, null]], "Search type video": [[64, "search-type-video"]], "Seekr Engines": [[68, null]], "SepiaSearch": [[62, "module-searx.engines.sepiasearch"]], "Setting up the cache": [[13, "setting-up-the-cache"]], "Settings": [[15, null]], "Settings Loader": [[108, null]], "Setup SearXNG buildhost": [[116, "setup-searxng-buildhost"]], "Sidebar": [[85, "sidebar"]], "Simple ASCII table": [[85, null]], "Simple tables": [[85, "simple-tables"]], "Smart refs": [[85, "smart-refs"]], "Soft skills": [[85, "soft-skills"]], "Solr": [[37, "module-searx.engines.solr"]], "Source-Code": [[94, null]], "Special Queries": [[114, "special-queries"]], "Specific admonitions": [[85, "specific-admonitions"]], "Specify Request": [[30, "specify-request"]], "Sphinx build needs": [[3, null]], "Startpage Engines": [[69, null]], "Startpage categories": [[69, "startpage-categories"]], "Startpage languages": [[69, "startpage-languages"]], "Startpage regions": [[69, "startpage-regions"]], "Step by step installation": [[10, null]], "Summary": [[81, "summary"]], "Syntax highlighting": [[85, null]], "Tabbed views": [[85, "tabbed-views"]], "Tables": [[85, "tables"]], "Tagesschau API": [[70, null]], "Templating": [[85, "templating"]], "The Apache HTTP server": [[6, "the-apache-http-server"]], "The naming of overrides is arbitrary / recommended overrides are:": [[30, "id5"]], "The nginx HTTP server": [[8, "the-nginx-http-server"]], "The reST sources": [[27, null]], "The searxng-archlinux container": [[81, null]], "Tineye": [[78, null]], "Tooling box searxng_extra": [[88, null]], "Tor check plugin": [[102, null]], "Torznab WebAPI": [[71, null]], "Translation": [[27, "translation"], [91, null]], "Unicode": [[85, null]], "Unicode substitution": [[85, "unicode-substitution"]], "Unit converter plugin": [[103, null]], "Update the OS first!": [[9, null]], "User information": [[113, null]], "Utility functions for the engines": [[110, null]], "Void Linux binary packages": [[72, null]], "Wallhaven": [[73, null]], "Warning": [[7, null]], "Welcome to SearXNG": [[92, null]], "What are the consequences of using public instances?": [[93, "what-are-the-consequences-of-using-public-instances"]], "Why use a private instance?": [[93, null]], "Why use it?": [[111, "why-use-it"]], "Wikidata": [[74, "module-searx.engines.wikidata"]], "Wikimedia": [[74, null]], "Wikipedia": [[74, "module-searx.engines.wikipedia"]], "Wrap production into developer suite": [[81, "wrap-production-into-developer-suite"]], "XPath Engine": [[79, null]], "Yacy": [[75, null]], "Yahoo Engine": [[76, null]], "Z-Library": [[77, null]], "activate environment": [[82, null]], "basic inline markup": [[85, "id4"]], "be a part": [[92, null]], "bibliographic fields": [[85, null]], "brand:": [[17, null]], "build environment": [[82, null]], "bullet list": [[85, null]], "categories_as_tabs:": [[18, null]], "code-block": [[85, "code-block"]], "default": [[30, "default"]], "definition list": [[85, null]], "deploy on github.io": [[27, "deploy-on-github-io"]], "disable logs": [[6, "disable-logs"]], "docker run": [[7, null], [7, null]], "docs.clean": [[27, null]], "drop environment": [[82, null]], "engine:": [[19, null]], "features": [[92, null]], "flask.Request.remote_addr": [[96, null]], "flat-table": [[85, "flat-table"]], "flat-table example": [[85, "id13"]], "foo gate truth table": [[85, "id11"]], "further read": [[6, null], [9, null], [9, null], [9, null], [26, null], [36, null], [37, null], [38, null], [81, null], [82, null], [82, null], [84, null], [84, null], [84, null], [116, null], [116, null]], "further reading": [[8, null], [11, null], [116, null], [117, null]], "general:": [[20, null]], "generic admonition title": [[85, null]], "grid table example": [[85, "id12"]], "group !apps": [[112, "group-apps"]], "group !lyrics": [[112, "group-lyrics"]], "group !packages": [[112, "group-packages"]], "group !q&a": [[112, "group-q-a"]], "group !radio": [[112, "group-radio"]], "group !repos": [[112, "group-repos"]], "group !scientific_publications": [[112, "group-scientific-publications"]], "group !software_wikis": [[112, "group-software-wikis"]], "group !translate": [[112, "group-translate"]], "group !web": [[112, "group-web"], [112, "id2"], [112, "id4"], [112, "id6"]], "group !wikimedia": [[112, "group-wikimedia"], [112, "id7"], [112, "id14"]], "hello.dot": [[85, null]], "hint": [[7, null], [116, null]], "hlist": [[85, null]], "images": [[30, "images"]], "info": [[7, null], [14, null], [19, null], [26, null], [33, null], [33, null], [33, null], [33, null], [33, null], [35, null], [35, null], [36, null], [36, null], [36, null], [37, null], [37, null], [37, null], [37, null], [38, null], [38, null], [38, null], [38, null], [38, null], [48, null], [67, "module-searx.engines.recoll"]], "kernel-render DOT": [[85, "kernel-render-dot"], [85, null]], "kernel-render SVG": [[85, "kernel-render-svg"], [85, null]], "limiter.toml": [[14, "limiter-toml"]], "live build": [[27, "live-build"]], "make clean": [[82, "make-clean"]], "make docs": [[82, "make-docs"]], "make docs.clean docs.live": [[82, "make-docs-clean-docs-live"]], "make docs.gh-pages": [[82, "make-docs-gh-pages"]], "make format.python": [[82, "make-format-python"]], "make nvm.nodejs": [[82, "make-nvm-nodejs"]], "make run": [[82, "make-run"]], "make search.checker.{engine name}": [[82, "make-search-checker-engine-name"]], "make static.build.*": [[82, "make-static-build"]], "make test": [[82, "make-test"]], "make test.pylint": [[82, "make-test-pylint"]], "make test.shell": [[82, "make-test-shell"]], "make themes.*": [[82, "make-themes"]], "map": [[30, "map"]], "offline engines": [[39, null]], "outgoing:": [[21, null]], "packages": [[30, "packages"]], "paper": [[30, "paper"]], "reST primer": [[85, null]], "reST template": [[85, "rest-template"]], "redis:": [[22, null]], "remove obsolete services": [[26, "remove-obsolete-services"]], "search:": [[23, null]], "searxng/searxng": [[7, "searxng-searxng"]], "searxng_extra/standalone_searx.py": [[89, null]], "searxng_extra/update/": [[90, null]], "server:": [[24, null]], "settings.yml": [[16, null]], "settings.yml location": [[16, "settings-yml-location"]], "shell inside container": [[7, "shell-inside-container"]], "smart refs with sphinx.ext.extlinks and intersphinx": [[85, "id5"], [85, "id6"]], "ssh manual:": [[0, null]], "tab !files": [[112, "tab-files"]], "tab !general": [[112, "tab-general"]], "tab !images": [[112, "tab-images"]], "tab !it": [[112, "tab-it"]], "tab !map": [[112, "tab-map"]], "tab !music": [[112, "tab-music"]], "tab !news": [[112, "tab-news"]], "tab !science": [[112, "tab-science"]], "tab !social_media": [[112, "tab-social-media"]], "tab !videos": [[112, "tab-videos"]], "the origin": [[92, null]], "torrent": [[30, "torrent"]], "translated": [[91, null]], "uWSGI": [[6, null], [11, null]], "uWSGI Setup": [[2, "uwsgi-setup"]], "uWSGI maintenance": [[11, "uwsgi-maintenance"]], "uWSGI setup": [[11, "uwsgi-setup"]], "ui:": [[25, null]], "update_ahmia_blacklist.py": [[90, "update-ahmia-blacklist-py"]], "update_currencies.py": [[90, "update-currencies-py"]], "update_engine_descriptions.py": [[90, "update-engine-descriptions-py"]], "update_engine_traits.py": [[90, "update-engine-traits-py"]], "update_external_bangs.py": [[90, "update-external-bangs-py"]], "update_firefox_version.py": [[90, "update-firefox-version-py"]], "update_locales.py": [[90, "update-locales-py"]], "update_osm_keys_tags.py": [[90, "update-osm-keys-tags-py"]], "update_pygments.py": [[90, "update-pygments-py"]], "update_wikidata_units.py": [[90, "update-wikidata-units-py"]], "use_default_settings": [[16, "use-default-settings"]], "use_default_settings: True": [[10, null]], "use_default_settings: true": [[16, null]], "utils/lxc.sh": [[116, null]], "utils/searxng.sh": [[117, null]], "videos": [[30, "videos"]], "warning": [[13, null]], "without further subgrouping": [[112, "without-further-subgrouping"], [112, "id3"], [112, "id5"], [112, "id8"], [112, "id10"], [112, "id13"], [112, "id16"], [112, "id17"]], "wlc": [[91, "id2"]]}, "docnames": ["admin/answer-captcha", "admin/api", "admin/architecture", "admin/buildhosts", "admin/index", "admin/installation", "admin/installation-apache", "admin/installation-docker", "admin/installation-nginx", "admin/installation-scripts", "admin/installation-searxng", "admin/installation-uwsgi", "admin/plugins", "admin/searx.favicons", "admin/searx.limiter", "admin/settings/index", "admin/settings/settings", "admin/settings/settings_brand", "admin/settings/settings_categories_as_tabs", "admin/settings/settings_engine", "admin/settings/settings_general", "admin/settings/settings_outgoing", "admin/settings/settings_redis", "admin/settings/settings_search", "admin/settings/settings_server", "admin/settings/settings_ui", "admin/update-searxng", "dev/contribution_guide", "dev/engines/demo/demo_offline", "dev/engines/demo/demo_online", "dev/engines/engine_overview", "dev/engines/enginelib", "dev/engines/engines", "dev/engines/index", "dev/engines/mediawiki", "dev/engines/offline/command-line-engines", "dev/engines/offline/nosql-engines", "dev/engines/offline/search-indexer-engines", "dev/engines/offline/sql-engines", "dev/engines/offline_concept", "dev/engines/online/alpinelinux", "dev/engines/online/annas_archive", "dev/engines/online/archlinux", "dev/engines/online/bing", "dev/engines/online/bpb", "dev/engines/online/brave", "dev/engines/online/bt4g", "dev/engines/online/dailymotion", "dev/engines/online/discourse", "dev/engines/online/duckduckgo", "dev/engines/online/geizhals", "dev/engines/online/gitea", "dev/engines/online/gitlab", "dev/engines/online/google", "dev/engines/online/lemmy", "dev/engines/online/loc", "dev/engines/online/mastodon", "dev/engines/online/moviepilot", "dev/engines/online/mrs", "dev/engines/online/mullvad_leta", "dev/engines/online/mwmbl", "dev/engines/online/odysee", "dev/engines/online/peertube", "dev/engines/online/piped", "dev/engines/online/presearch", "dev/engines/online/qwant", "dev/engines/online/radio_browser", "dev/engines/online/recoll", "dev/engines/online/seekr", "dev/engines/online/startpage", "dev/engines/online/tagesschau", "dev/engines/online/torznab", "dev/engines/online/void", "dev/engines/online/wallhaven", "dev/engines/online/wikipedia", "dev/engines/online/yacy", "dev/engines/online/yahoo", "dev/engines/online/zlibrary", "dev/engines/online_url_search/tineye", "dev/engines/xpath", "dev/index", "dev/lxcdev", "dev/makefile", "dev/plugins", "dev/quickstart", "dev/reST", "dev/rtm_asdf", "dev/search_api", "dev/searxng_extra/index", "dev/searxng_extra/standalone_searx.py", "dev/searxng_extra/update", "dev/translation", "index", "own-instance", "src/index", "src/searx.babel_extract", "src/searx.botdetection", "src/searx.exceptions", "src/searx.favicons", "src/searx.infopage", "src/searx.locales", "src/searx.plugins.hostnames", "src/searx.plugins.tor_check", "src/searx.plugins.unit_converter", "src/searx.redisdb", "src/searx.redislib", "src/searx.search", "src/searx.search.processors", "src/searx.settings", "src/searx.sqlitedb", "src/searx.utils", "user/about", "user/configured_engines", "user/index", "user/search-syntax", "utils/index", "utils/lxc.sh", "utils/searxng.sh"], "envversion": {"sphinx": 62, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.viewcode": 1}, "filenames": ["admin/answer-captcha.rst", "admin/api.rst", "admin/architecture.rst", "admin/buildhosts.rst", "admin/index.rst", "admin/installation.rst", "admin/installation-apache.rst", "admin/installation-docker.rst", "admin/installation-nginx.rst", "admin/installation-scripts.rst", "admin/installation-searxng.rst", "admin/installation-uwsgi.rst", "admin/plugins.rst", "admin/searx.favicons.rst", "admin/searx.limiter.rst", "admin/settings/index.rst", "admin/settings/settings.rst", "admin/settings/settings_brand.rst", "admin/settings/settings_categories_as_tabs.rst", "admin/settings/settings_engine.rst", "admin/settings/settings_general.rst", "admin/settings/settings_outgoing.rst", "admin/settings/settings_redis.rst", "admin/settings/settings_search.rst", "admin/settings/settings_server.rst", "admin/settings/settings_ui.rst", "admin/update-searxng.rst", "dev/contribution_guide.rst", "dev/engines/demo/demo_offline.rst", "dev/engines/demo/demo_online.rst", "dev/engines/engine_overview.rst", "dev/engines/enginelib.rst", "dev/engines/engines.rst", "dev/engines/index.rst", "dev/engines/mediawiki.rst", "dev/engines/offline/command-line-engines.rst", "dev/engines/offline/nosql-engines.rst", "dev/engines/offline/search-indexer-engines.rst", "dev/engines/offline/sql-engines.rst", "dev/engines/offline_concept.rst", "dev/engines/online/alpinelinux.rst", "dev/engines/online/annas_archive.rst", "dev/engines/online/archlinux.rst", "dev/engines/online/bing.rst", "dev/engines/online/bpb.rst", "dev/engines/online/brave.rst", "dev/engines/online/bt4g.rst", "dev/engines/online/dailymotion.rst", "dev/engines/online/discourse.rst", "dev/engines/online/duckduckgo.rst", "dev/engines/online/geizhals.rst", "dev/engines/online/gitea.rst", "dev/engines/online/gitlab.rst", "dev/engines/online/google.rst", "dev/engines/online/lemmy.rst", "dev/engines/online/loc.rst", "dev/engines/online/mastodon.rst", "dev/engines/online/moviepilot.rst", "dev/engines/online/mrs.rst", "dev/engines/online/mullvad_leta.rst", "dev/engines/online/mwmbl.rst", "dev/engines/online/odysee.rst", "dev/engines/online/peertube.rst", "dev/engines/online/piped.rst", "dev/engines/online/presearch.rst", "dev/engines/online/qwant.rst", "dev/engines/online/radio_browser.rst", "dev/engines/online/recoll.rst", "dev/engines/online/seekr.rst", "dev/engines/online/startpage.rst", "dev/engines/online/tagesschau.rst", "dev/engines/online/torznab.rst", "dev/engines/online/void.rst", "dev/engines/online/wallhaven.rst", "dev/engines/online/wikipedia.rst", "dev/engines/online/yacy.rst", "dev/engines/online/yahoo.rst", "dev/engines/online/zlibrary.rst", "dev/engines/online_url_search/tineye.rst", "dev/engines/xpath.rst", "dev/index.rst", "dev/lxcdev.rst", "dev/makefile.rst", "dev/plugins.rst", "dev/quickstart.rst", "dev/reST.rst", "dev/rtm_asdf.rst", "dev/search_api.rst", "dev/searxng_extra/index.rst", "dev/searxng_extra/standalone_searx.py.rst", "dev/searxng_extra/update.rst", "dev/translation.rst", "index.rst", "own-instance.rst", "src/index.rst", "src/searx.babel_extract.rst", "src/searx.botdetection.rst", "src/searx.exceptions.rst", "src/searx.favicons.rst", "src/searx.infopage.rst", "src/searx.locales.rst", "src/searx.plugins.hostnames.rst", "src/searx.plugins.tor_check.rst", "src/searx.plugins.unit_converter.rst", "src/searx.redisdb.rst", "src/searx.redislib.rst", "src/searx.search.rst", "src/searx.search.processors.rst", "src/searx.settings.rst", "src/searx.sqlitedb.rst", "src/searx.utils.rst", "user/about.rst", "user/configured_engines.rst", "user/index.rst", "user/search-syntax.rst", "utils/index.rst", "utils/lxc.sh.rst", "utils/searxng.sh.rst"], "indexentries": {"aa_content (in module searx.engines.annas_archive)": [[41, "searx.engines.annas_archive.aa_content", false]], "aa_ext (in module searx.engines.annas_archive)": [[41, "searx.engines.annas_archive.aa_ext", false]], "aa_sort (in module searx.engines.annas_archive)": [[41, "searx.engines.annas_archive.aa_sort", false]], "about (searx.enginelib.engine attribute)": [[31, "searx.enginelib.Engine.about", false]], "additional_translations (in module searx.locales)": [[100, "searx.locales.ADDITIONAL_TRANSLATIONS", false]], "additional_units (in module searx.plugins.unit_converter)": [[103, "searx.plugins.unit_converter.ADDITIONAL_UNITS", false]], "alias_symbols (in module searx.plugins.unit_converter)": [[103, "searx.plugins.unit_converter.ALIAS_SYMBOLS", false]], "all_locale (searx.enginelib.traits.enginetraits attribute)": [[31, "searx.enginelib.traits.EngineTraits.all_locale", false]], "allesedv() (in module searx.favicons.resolvers)": [[98, "searx.favicons.resolvers.allesedv", false]], "alpine_arch (in module searx.engines.alpinelinux)": [[40, "searx.engines.alpinelinux.alpine_arch", false]], "api_key (in module searx.engines.discourse)": [[48, "searx.engines.discourse.api_key", false]], "api_key (in module searx.engines.seekr)": [[68, "searx.engines.seekr.api_key", false]], "api_key (in module searx.engines.wallhaven)": [[73, "searx.engines.wallhaven.api_key", false]], "api_max (in module searx.botdetection.ip_limit)": [[96, "searx.botdetection.ip_limit.API_MAX", false]], "api_order (in module searx.engines.discourse)": [[48, "searx.engines.discourse.api_order", false]], "api_path (in module searx.engines.gitlab)": [[52, "searx.engines.gitlab.api_path", false]], "api_path (in module searx.engines.mediawiki)": [[34, "searx.engines.mediawiki.api_path", false]], "api_url (in module searx.engines.qwant)": [[65, "searx.engines.qwant.api_url", false]], "api_username (in module searx.engines.discourse)": [[48, "searx.engines.discourse.api_username", false]], "api_window (in module searx.botdetection.ip_limit)": [[96, "searx.botdetection.ip_limit.API_WINDOW", false]], "arch_re (in module searx.engines.alpinelinux)": [[40, "searx.engines.alpinelinux.ARCH_RE", false]], "arch_re (in module searx.engines.voidlinux)": [[72, "searx.engines.voidlinux.ARCH_RE", false]], "area_to_str() (in module searx.engines.duckduckgo_definitions)": [[49, "searx.engines.duckduckgo_definitions.area_to_str", false]], "assign_headers() (in module searx.engines.mullvad_leta)": [[59, "searx.engines.mullvad_leta.assign_headers", false]], "backend_url (in module searx.engines.piped)": [[63, "searx.engines.piped.backend_url", false]], "base_url (in module searx.engines.bing)": [[43, "searx.engines.bing.base_url", false]], "base_url (in module searx.engines.bing_images)": [[43, "searx.engines.bing_images.base_url", false]], "base_url (in module searx.engines.bing_news)": [[43, "searx.engines.bing_news.base_url", false]], "base_url (in module searx.engines.bing_videos)": [[43, "searx.engines.bing_videos.base_url", false]], "base_url (in module searx.engines.discourse)": [[48, "searx.engines.discourse.base_url", false]], "base_url (in module searx.engines.gitea)": [[51, "searx.engines.gitea.base_url", false]], "base_url (in module searx.engines.gitlab)": [[52, "searx.engines.gitlab.base_url", false]], "base_url (in module searx.engines.lemmy)": [[54, "searx.engines.lemmy.base_url", false]], "base_url (in module searx.engines.mediawiki)": [[34, "searx.engines.mediawiki.base_url", false]], "base_url (in module searx.engines.peertube)": [[62, "searx.engines.peertube.base_url", false]], "base_url (in module searx.engines.yacy)": [[75, "searx.engines.yacy.base_url", false]], "blob_max_bytes (searx.favicons.cache.faviconcacheconfig attribute)": [[98, "searx.favicons.cache.FaviconCacheConfig.BLOB_MAX_BYTES", false]], "block_ip() (in module searx.botdetection.ip_lists)": [[96, "searx.botdetection.ip_lists.block_ip", false]], "brave_spellcheck (in module searx.engines.brave)": [[45, "searx.engines.brave.brave_spellcheck", false]], "bt4g_category (in module searx.engines.bt4g)": [[46, "searx.engines.bt4g.bt4g_category", false]], "bt4g_order_by (in module searx.engines.bt4g)": [[46, "searx.engines.bt4g.bt4g_order_by", false]], "build_engine_locales() (in module searx.locales)": [[100, "searx.locales.build_engine_locales", false]], "build_result() (in module searx.engines.torznab)": [[71, "searx.engines.torznab.build_result", false]], "built-in function": [[83, "on_result", false], [83, "post_search", false], [83, "pre_search", false]], "burst_max (in module searx.botdetection.ip_limit)": [[96, "searx.botdetection.ip_limit.BURST_MAX", false]], "burst_max_suspicious (in module searx.botdetection.ip_limit)": [[96, "searx.botdetection.ip_limit.BURST_MAX_SUSPICIOUS", false]], "burst_window (in module searx.botdetection.ip_limit)": [[96, "searx.botdetection.ip_limit.BURST_WINDOW", false]], "cache (searx.favicons.config.faviconconfig attribute)": [[98, "searx.favicons.config.FaviconConfig.cache", false]], "cache_vqd() (in module searx.engines.duckduckgo)": [[49, "searx.engines.duckduckgo.cache_vqd", false]], "categories (searx.enginelib.engine attribute)": [[31, "searx.enginelib.Engine.categories", false]], "ceid_list (in module searx.engines.google_news)": [[53, "searx.engines.google_news.ceid_list", false]], "cfg_schema (searx.favicons.config.faviconconfig attribute)": [[98, "searx.favicons.config.FaviconConfig.cfg_schema", false]], "check_parsing_options() (in module searx.engines.command)": [[35, "searx.engines.command.check_parsing_options", false]], "config (class in searx.botdetection.config)": [[96, "searx.botdetection.config.Config", false]], "config_schema (in module searx.favicons.config)": [[98, "searx.favicons.config.CONFIG_SCHEMA", false]], "connect() (searx.sqlitedb.sqliteappl method)": [[109, "searx.sqlitedb.SQLiteAppl.connect", false]], "content (searx.infopage.infopage property)": [[99, "searx.infopage.InfoPage.content", false]], "content_xpath (in module searx.engines.xpath)": [[79, "searx.engines.xpath.content_xpath", false]], "convert_str_to_int() (in module searx.utils)": [[110, "searx.utils.convert_str_to_int", false]], "cookies (in module searx.engines.xpath)": [[79, "searx.engines.xpath.cookies", false]], "copy() (searx.enginelib.traits.enginetraits method)": [[31, "searx.enginelib.traits.EngineTraits.copy", false]], "custom (searx.enginelib.traits.enginetraits attribute)": [[31, "searx.enginelib.traits.EngineTraits.custom", false]], "data_type (searx.enginelib.traits.enginetraits attribute)": [[31, "searx.enginelib.traits.EngineTraits.data_type", false]], "database (in module searx.engines.mariadb_server)": [[38, "searx.engines.mariadb_server.database", false]], "database (in module searx.engines.mysql_server)": [[38, "searx.engines.mysql_server.database", false]], "database (in module searx.engines.postgresql)": [[38, "searx.engines.postgresql.database", false]], "database (in module searx.engines.sqlite)": [[38, "searx.engines.sqlite.database", false]], "db (searx.sqlitedb.sqliteappl property)": [[109, "searx.sqlitedb.SQLiteAppl.DB", false]], "db_schema (searx.favicons.cache.faviconcachesqlite attribute)": [[98, "searx.favicons.cache.FaviconCacheSQLite.DB_SCHEMA", false]], "db_schema (searx.sqlitedb.sqliteappl attribute)": [[109, "searx.sqlitedb.SQLiteAppl.DB_SCHEMA", false]], "db_type (searx.favicons.cache.faviconcacheconfig attribute)": [[98, "searx.favicons.cache.FaviconCacheConfig.db_type", false]], "db_url (searx.favicons.cache.faviconcacheconfig attribute)": [[98, "searx.favicons.cache.FaviconCacheConfig.db_url", false]], "ddg_category (in module searx.engines.duckduckgo_extra)": [[49, "searx.engines.duckduckgo_extra.ddg_category", false]], "ddl_blob_map (searx.favicons.cache.faviconcachesqlite attribute)": [[98, "searx.favicons.cache.FaviconCacheSQLite.DDL_BLOB_MAP", false]], "ddl_blobs (searx.favicons.cache.faviconcachesqlite attribute)": [[98, "searx.favicons.cache.FaviconCacheSQLite.DDL_BLOBS", false]], "ddl_properties (searx.sqlitedb.sqliteproperties attribute)": [[109, "searx.sqlitedb.SQLiteProperties.DDL_PROPERTIES", false]], "default() (searx.botdetection.config.config method)": [[96, "searx.botdetection.config.Config.default", false]], "default() (searx.enginelib.traits.enginetraitsencoder method)": [[31, "searx.enginelib.traits.EngineTraitsEncoder.default", false]], "default_request_params() (in module searx.search.processors.online)": [[107, "searx.search.processors.online.default_request_params", false]], "default_settings_file (in module searx.settings_loader)": [[108, "searx.settings_loader.DEFAULT_SETTINGS_FILE", false]], "description (in module searx.plugins.tor_check)": [[102, "searx.plugins.tor_check.description", false]], "detect_google_captcha() (in module searx.engines.google_scholar)": [[53, "searx.engines.google_scholar.detect_google_captcha", false]], "detect_language() (in module searx.utils)": [[110, "searx.utils.detect_language", false]], "dict_subset() (in module searx.utils)": [[110, "searx.utils.dict_subset", false]], "disabled (searx.enginelib.engine attribute)": [[31, "searx.enginelib.Engine.disabled", false]], "display_error_messages (searx.enginelib.engine attribute)": [[31, "searx.enginelib.Engine.display_error_messages", false]], "display_type (in module searx.engines.wikidata)": [[74, "searx.engines.wikidata.display_type", false]], "display_type (in module searx.engines.wikipedia)": [[74, "searx.engines.wikipedia.display_type", false]], "download_error (in module searx.engines.tineye)": [[78, "searx.engines.tineye.DOWNLOAD_ERROR", false]], "drop_counter() (in module searx.redislib)": [[105, "searx.redislib.drop_counter", false]], "duckduckgo() (in module searx.favicons.resolvers)": [[98, "searx.favicons.resolvers.duckduckgo", false]], "ecma_unescape() (in module searx.utils)": [[110, "searx.utils.ecma_unescape", false]], "enable_http (searx.enginelib.engine attribute)": [[31, "searx.enginelib.Engine.enable_http", false]], "engine (class in searx.enginelib)": [[31, "searx.enginelib.Engine", false]], "engine (searx.enginelib.engine attribute)": [[31, "searx.enginelib.Engine.engine", false]], "engine_shortcuts (in module searx.engines)": [[32, "searx.engines.engine_shortcuts", false]], "engine_traits_file (searx.enginelib.traits.enginetraitsmap attribute)": [[31, "searx.enginelib.traits.EngineTraitsMap.ENGINE_TRAITS_FILE", false]], "engine_type (in module searx.engines.tineye)": [[78, "searx.engines.tineye.engine_type", false]], "engine_type (searx.enginelib.engine attribute)": [[31, "searx.enginelib.Engine.engine_type", false]], "engineprocessor (class in searx.search.processors.abstract)": [[107, "searx.search.processors.abstract.EngineProcessor", false]], "engineref (class in searx.search)": [[106, "searx.search.EngineRef", false]], "enginetraits (class in searx.enginelib.traits)": [[31, "searx.enginelib.traits.EngineTraits", false]], "enginetraitsencoder (class in searx.enginelib.traits)": [[31, "searx.enginelib.traits.EngineTraitsEncoder", false]], "enginetraitsmap (class in searx.enginelib.traits)": [[31, "searx.enginelib.traits.EngineTraitsMap", false]], "eval_xpath() (in module searx.utils)": [[110, "searx.utils.eval_xpath", false]], "eval_xpath_getindex() (in module searx.utils)": [[110, "searx.utils.eval_xpath_getindex", false]], "eval_xpath_list() (in module searx.utils)": [[110, "searx.utils.eval_xpath_list", false]], "extr() (in module searx.utils)": [[110, "searx.utils.extr", false]], "extract() (in module searx.babel_extract)": [[95, "searx.babel_extract.extract", false]], "extract_text() (in module searx.utils)": [[110, "searx.utils.extract_text", false]], "extract_url() (in module searx.utils)": [[110, "searx.utils.extract_url", false]], "family_filter_map (in module searx.engines.dailymotion)": [[47, "searx.engines.dailymotion.family_filter_map", false]], "favicon() (searx.favicons.proxy.faviconproxyconfig method)": [[98, "searx.favicons.proxy.FaviconProxyConfig.favicon", false]], "favicon_data_url() (searx.favicons.proxy.faviconproxyconfig method)": [[98, "searx.favicons.proxy.FaviconProxyConfig.favicon_data_url", false]], "favicon_proxy() (in module searx.favicons)": [[98, "searx.favicons.favicon_proxy", false]], "favicon_proxy() (in module searx.favicons.proxy)": [[98, "searx.favicons.proxy.favicon_proxy", false]], "favicon_url() (in module searx.favicons)": [[98, "searx.favicons.favicon_url", false]], "favicon_url() (in module searx.favicons.proxy)": [[98, "searx.favicons.proxy.favicon_url", false]], "faviconcache (class in searx.favicons.cache)": [[98, "searx.favicons.cache.FaviconCache", false]], "faviconcacheconfig (class in searx.favicons.cache)": [[98, "searx.favicons.cache.FaviconCacheConfig", false]], "faviconcachemem (class in searx.favicons.cache)": [[98, "searx.favicons.cache.FaviconCacheMEM", false]], "faviconcachenull (class in searx.favicons.cache)": [[98, "searx.favicons.cache.FaviconCacheNull", false]], "faviconcachesqlite (class in searx.favicons.cache)": [[98, "searx.favicons.cache.FaviconCacheSQLite", false]], "faviconcachestats (class in searx.favicons.cache)": [[98, "searx.favicons.cache.FaviconCacheStats", false]], "faviconconfig (class in searx.favicons.config)": [[98, "searx.favicons.config.FaviconConfig", false]], "faviconproxyconfig (class in searx.favicons.proxy)": [[98, "searx.favicons.proxy.FaviconProxyConfig", false]], "fetch_traits (searx.enginelib.engine attribute)": [[31, "searx.enginelib.Engine.fetch_traits", false]], "fetch_traits() (in module searx.engines.annas_archive)": [[41, "searx.engines.annas_archive.fetch_traits", false]], "fetch_traits() (in module searx.engines.archlinux)": [[42, "searx.engines.archlinux.fetch_traits", false]], "fetch_traits() (in module searx.engines.bing)": [[43, "searx.engines.bing.fetch_traits", false]], "fetch_traits() (in module searx.engines.bing_news)": [[43, "searx.engines.bing_news.fetch_traits", false]], "fetch_traits() (in module searx.engines.brave)": [[45, "searx.engines.brave.fetch_traits", false]], "fetch_traits() (in module searx.engines.dailymotion)": [[47, "searx.engines.dailymotion.fetch_traits", false]], "fetch_traits() (in module searx.engines.duckduckgo)": [[49, "searx.engines.duckduckgo.fetch_traits", false]], "fetch_traits() (in module searx.engines.google)": [[53, "searx.engines.google.fetch_traits", false]], "fetch_traits() (in module searx.engines.mullvad_leta)": [[59, "searx.engines.mullvad_leta.fetch_traits", false]], "fetch_traits() (in module searx.engines.odysee)": [[61, "searx.engines.odysee.fetch_traits", false]], "fetch_traits() (in module searx.engines.peertube)": [[62, "searx.engines.peertube.fetch_traits", false]], "fetch_traits() (in module searx.engines.radio_browser)": [[66, "searx.engines.radio_browser.fetch_traits", false]], "fetch_traits() (in module searx.engines.startpage)": [[69, "searx.engines.startpage.fetch_traits", false]], "fetch_traits() (in module searx.engines.wikidata)": [[74, "searx.engines.wikidata.fetch_traits", false]], "fetch_traits() (in module searx.engines.yahoo)": [[76, "searx.engines.yahoo.fetch_traits", false]], "fetch_traits() (in module searx.engines.zlibrary)": [[77, "searx.engines.zlibrary.fetch_traits", false]], "fetch_traits() (searx.enginelib.traits.enginetraits class method)": [[31, "searx.enginelib.traits.EngineTraits.fetch_traits", false]], "fetch_wikimedia_traits() (in module searx.engines.wikipedia)": [[74, "searx.engines.wikipedia.fetch_wikimedia_traits", false]], "first_page_num (in module searx.engines.xpath)": [[79, "searx.engines.xpath.first_page_num", false]], "folder (searx.infopage.infopageset attribute)": [[99, "searx.infopage.InfoPageSet.folder", false]], "format_not_supported (in module searx.engines.tineye)": [[78, "searx.engines.tineye.FORMAT_NOT_SUPPORTED", false]], "from_data() (searx.enginelib.traits.enginetraitsmap class method)": [[31, "searx.enginelib.traits.EngineTraitsMap.from_data", false]], "from_toml_file() (searx.favicons.config.faviconconfig class method)": [[98, "searx.favicons.config.FaviconConfig.from_toml_file", false]], "frontend_url (in module searx.engines.piped)": [[63, "searx.engines.piped.frontend_url", false]], "gen_useragent() (in module searx.utils)": [[110, "searx.utils.gen_useragent", false]], "get() (searx.botdetection.config.config method)": [[96, "searx.botdetection.config.Config.get", false]], "get_attribute() (in module searx.engines.torznab)": [[71, "searx.engines.torznab.get_attribute", false]], "get_ctx() (searx.infopage.infopage method)": [[99, "searx.infopage.InfoPage.get_ctx", false]], "get_ddg_lang() (in module searx.engines.duckduckgo)": [[49, "searx.engines.duckduckgo.get_ddg_lang", false]], "get_embeded_stream_url() (in module searx.utils)": [[110, "searx.utils.get_embeded_stream_url", false]], "get_engine_from_settings() (in module searx.utils)": [[110, "searx.utils.get_engine_from_settings", false]], "get_engine_locale() (in module searx.locales)": [[100, "searx.locales.get_engine_locale", false]], "get_google_info() (in module searx.engines.google)": [[53, "searx.engines.google.get_google_info", false]], "get_language() (searx.enginelib.traits.enginetraits method)": [[31, "searx.enginelib.traits.EngineTraits.get_language", false]], "get_locale() (in module searx.locales)": [[100, "searx.locales.get_locale", false]], "get_network() (in module searx.botdetection)": [[96, "searx.botdetection.get_network", false]], "get_official_locales() (in module searx.locales)": [[100, "searx.locales.get_official_locales", false]], "get_page() (searx.infopage.infopageset method)": [[99, "searx.infopage.InfoPageSet.get_page", false]], "get_params() (searx.search.processors.abstract.engineprocessor method)": [[107, "searx.search.processors.abstract.EngineProcessor.get_params", false]], "get_params() (searx.search.processors.online.onlineprocessor method)": [[107, "searx.search.processors.online.OnlineProcessor.get_params", false]], "get_params() (searx.search.processors.online_currency.onlinecurrencyprocessor method)": [[107, "searx.search.processors.online_currency.OnlineCurrencyProcessor.get_params", false]], "get_params() (searx.search.processors.online_dictionary.onlinedictionaryprocessor method)": [[107, "searx.search.processors.online_dictionary.OnlineDictionaryProcessor.get_params", false]], "get_params() (searx.search.processors.online_url_search.onlineurlsearchprocessor method)": [[107, "searx.search.processors.online_url_search.OnlineUrlSearchProcessor.get_params", false]], "get_ping_key() (in module searx.botdetection.link_token)": [[96, "searx.botdetection.link_token.get_ping_key", false]], "get_real_ip() (in module searx.botdetection)": [[96, "searx.botdetection.get_real_ip", false]], "get_region() (searx.enginelib.traits.enginetraits method)": [[31, "searx.enginelib.traits.EngineTraits.get_region", false]], "get_resolver() (searx.favicons.proxy.faviconproxyconfig method)": [[98, "searx.favicons.proxy.FaviconProxyConfig.get_resolver", false]], "get_sc_code() (in module searx.engines.startpage)": [[69, "searx.engines.startpage.get_sc_code", false]], "get_thumbnail() (in module searx.engines.wikidata)": [[74, "searx.engines.wikidata.get_thumbnail", false]], "get_token() (in module searx.botdetection.link_token)": [[96, "searx.botdetection.link_token.get_token", false]], "get_torznab_attribute() (in module searx.engines.torznab)": [[71, "searx.engines.torznab.get_torznab_attribute", false]], "get_translation_locales() (in module searx.locales)": [[100, "searx.locales.get_translation_locales", false]], "get_translations() (in module searx.locales)": [[100, "searx.locales.get_translations", false]], "get_user_cfg_folder() (in module searx.settings_loader)": [[108, "searx.settings_loader.get_user_cfg_folder", false]], "get_vqd() (in module searx.engines.duckduckgo)": [[49, "searx.engines.duckduckgo.get_vqd", false]], "get_wiki_params() (in module searx.engines.wikipedia)": [[74, "searx.engines.wikipedia.get_wiki_params", false]], "get_xpath() (in module searx.utils)": [[110, "searx.utils.get_xpath", false]], "get_yaml_cfg() (in module searx.settings_loader)": [[108, "searx.settings_loader.get_yaml_cfg", false]], "goggles (in module searx.engines.brave)": [[45, "searx.engines.brave.Goggles", false]], "google() (in module searx.favicons.resolvers)": [[98, "searx.favicons.resolvers.google", false]], "google_complete() (in module searx.autocomplete)": [[53, "searx.autocomplete.google_complete", false]], "headers (in module searx.engines.xpath)": [[79, "searx.engines.xpath.headers", false]], "hold_time (searx.favicons.cache.faviconcacheconfig attribute)": [[98, "searx.favicons.cache.FaviconCacheConfig.HOLD_TIME", false]], "host (in module searx.engines.mariadb_server)": [[38, "searx.engines.mariadb_server.host", false]], "host (in module searx.engines.mysql_server)": [[38, "searx.engines.mysql_server.host", false]], "host (in module searx.engines.postgresql)": [[38, "searx.engines.postgresql.host", false]], "html (searx.infopage.infopage property)": [[99, "searx.infopage.InfoPage.html", false]], "html_to_text() (in module searx.utils)": [[110, "searx.utils.html_to_text", false]], "http_digest_auth_pass (in module searx.engines.yacy)": [[75, "searx.engines.yacy.http_digest_auth_pass", false]], "http_digest_auth_user (in module searx.engines.yacy)": [[75, "searx.engines.yacy.http_digest_auth_user", false]], "humanize_bytes() (in module searx.utils)": [[110, "searx.utils.humanize_bytes", false]], "humanize_number() (in module searx.utils)": [[110, "searx.utils.humanize_number", false]], "iframe_src (in module searx.engines.dailymotion)": [[47, "searx.engines.dailymotion.iframe_src", false]], "inactive (searx.enginelib.engine attribute)": [[31, "searx.enginelib.Engine.inactive", false]], "incr_counter() (in module searx.redislib)": [[105, "searx.redislib.incr_counter", false]], "incr_sliding_window() (in module searx.redislib)": [[105, "searx.redislib.incr_sliding_window", false]], "infopage (class in searx.infopage)": [[99, "searx.infopage.InfoPage", false]], "infopageset (class in searx.infopage)": [[99, "searx.infopage.InfoPageSet", false]], "init() (in module searx.engines.annas_archive)": [[41, "searx.engines.annas_archive.init", false]], "init() (in module searx.engines.demo_offline)": [[28, "searx.engines.demo_offline.init", false]], "init() (in module searx.engines.demo_online)": [[29, "searx.engines.demo_online.init", false]], "init() (in module searx.engines.mrs)": [[58, "searx.engines.mrs.init", false]], "init() (in module searx.engines.torznab)": [[71, "searx.engines.torznab.init", false]], "init() (in module searx.engines.zlibrary)": [[77, "searx.engines.zlibrary.init", false]], "init() (in module searx.favicons.cache)": [[98, "searx.favicons.cache.init", false]], "init() (searx.sqlitedb.sqliteappl method)": [[109, "searx.sqlitedb.SQLiteAppl.init", false]], "init() (searx.sqlitedb.sqliteproperties method)": [[109, "searx.sqlitedb.SQLiteProperties.init", false]], "initialize() (in module searx.limiter)": [[14, "searx.limiter.initialize", false]], "int_or_zero() (in module searx.utils)": [[110, "searx.utils.int_or_zero", false]], "is_broken_text() (in module searx.engines.duckduckgo_definitions)": [[49, "searx.engines.duckduckgo_definitions.is_broken_text", false]], "is_ddg_captcha() (in module searx.engines.duckduckgo)": [[49, "searx.engines.duckduckgo.is_ddg_captcha", false]], "is_installed() (in module searx.limiter)": [[14, "searx.limiter.is_installed", false]], "is_locale_supported() (searx.enginelib.traits.enginetraits method)": [[31, "searx.enginelib.traits.EngineTraits.is_locale_supported", false]], "is_missing_required_attributes() (in module searx.engines)": [[32, "searx.engines.is_missing_required_attributes", false]], "is_suspicious() (in module searx.botdetection.link_token)": [[96, "searx.botdetection.link_token.is_suspicious", false]], "is_valid_lang() (in module searx.utils)": [[110, "searx.utils.is_valid_lang", false]], "is_vpn_connected() (in module searx.engines.mullvad_leta)": [[59, "searx.engines.mullvad_leta.is_vpn_connected", false]], "iter_pages() (searx.infopage.infopageset method)": [[99, "searx.infopage.InfoPageSet.iter_pages", false]], "js_variable_to_python() (in module searx.utils)": [[110, "searx.utils.js_variable_to_python", false]], "lang2domain (in module searx.engines.yahoo)": [[76, "searx.engines.yahoo.lang2domain", false]], "lang_all (in module searx.engines.xpath)": [[79, "searx.engines.xpath.lang_all", false]], "language (searx.enginelib.engine attribute)": [[31, "searx.enginelib.Engine.language", false]], "language_support (searx.enginelib.engine attribute)": [[31, "searx.enginelib.Engine.language_support", false]], "language_tag() (in module searx.locales)": [[100, "searx.locales.language_tag", false]], "languages (searx.enginelib.traits.enginetraits attribute)": [[31, "searx.enginelib.traits.EngineTraits.languages", false]], "lemmy_type (in module searx.engines.lemmy)": [[54, "searx.engines.lemmy.lemmy_type", false]], "limit_total_bytes (searx.favicons.cache.faviconcacheconfig attribute)": [[98, "searx.favicons.cache.FaviconCacheConfig.LIMIT_TOTAL_BYTES", false]], "limiter_cfg_schema (in module searx.limiter)": [[14, "searx.limiter.LIMITER_CFG_SCHEMA", false]], "list_of_wikipedias (in module searx.engines.wikipedia)": [[74, "searx.engines.wikipedia.list_of_wikipedias", false]], "load_engine() (in module searx.engines)": [[32, "searx.engines.load_engine", false]], "load_engines() (in module searx.engines)": [[32, "searx.engines.load_engines", false]], "load_settings() (in module searx.settings_loader)": [[108, "searx.settings_loader.load_settings", false]], "load_yaml() (in module searx.settings_loader)": [[108, "searx.settings_loader.load_yaml", false]], "locale_best_match (in module searx.locales)": [[100, "searx.locales.LOCALE_BEST_MATCH", false]], "locale_default (searx.infopage.infopageset attribute)": [[99, "searx.infopage.InfoPageSet.locale_default", false]], "locale_names (in module searx.locales)": [[100, "searx.locales.LOCALE_NAMES", false]], "locales (searx.infopage.infopageset attribute)": [[99, "searx.infopage.InfoPageSet.locales", false]], "locales_initialize() (in module searx.locales)": [[100, "searx.locales.locales_initialize", false]], "long_max (in module searx.botdetection.ip_limit)": [[96, "searx.botdetection.ip_limit.LONG_MAX", false]], "long_max_suspicious (in module searx.botdetection.ip_limit)": [[96, "searx.botdetection.ip_limit.LONG_MAX_SUSPICIOUS", false]], "long_window (in module searx.botdetection.ip_limit)": [[96, "searx.botdetection.ip_limit.LONG_WINDOW", false]], "lua_script_storage (in module searx.redislib)": [[105, "searx.redislib.LUA_SCRIPT_STORAGE", false]], "lua_script_storage() (in module searx.redislib)": [[105, "searx.redislib.lua_script_storage", false]], "m_time() (searx.sqlitedb.sqliteproperties method)": [[109, "searx.sqlitedb.SQLiteProperties.m_time", false]], "maintenance() (in module searx.favicons.cache)": [[98, "searx.favicons.cache.maintenance", false]], "maintenance() (searx.favicons.cache.faviconcache method)": [[98, "searx.favicons.cache.FaviconCache.maintenance", false]], "maintenance() (searx.favicons.cache.faviconcachemem method)": [[98, "searx.favicons.cache.FaviconCacheMEM.maintenance", false]], "maintenance() (searx.favicons.cache.faviconcachenull method)": [[98, "searx.favicons.cache.FaviconCacheNull.maintenance", false]], "maintenance() (searx.favicons.cache.faviconcachesqlite method)": [[98, "searx.favicons.cache.FaviconCacheSQLite.maintenance", false]], "maintenance_mode (searx.favicons.cache.faviconcacheconfig attribute)": [[98, "searx.favicons.cache.FaviconCacheConfig.MAINTENANCE_MODE", false]], "maintenance_period (searx.favicons.cache.faviconcacheconfig attribute)": [[98, "searx.favicons.cache.FaviconCacheConfig.MAINTENANCE_PERIOD", false]], "markdown_to_text() (in module searx.utils)": [[110, "searx.utils.markdown_to_text", false]], "match_locale() (in module searx.locales)": [[100, "searx.locales.match_locale", false]], "max_age (searx.favicons.proxy.faviconproxyconfig attribute)": [[98, "searx.favicons.proxy.FaviconProxyConfig.max_age", false]], "max_page (in module searx.engines.bing)": [[43, "searx.engines.bing.max_page", false]], "max_page (in module searx.engines.brave)": [[45, "searx.engines.brave.max_page", false]], "max_page (in module searx.engines.qwant)": [[65, "searx.engines.qwant.max_page", false]], "max_page (in module searx.engines.startpage)": [[69, "searx.engines.startpage.max_page", false]], "module": [[14, "module-searx.limiter", false], [28, "module-searx.engines.demo_offline", false], [29, "module-searx.engines.demo_online", false], [31, "module-searx.enginelib", false], [31, "module-searx.enginelib.traits", false], [32, "module-searx.engines", false], [34, "module-searx.engines.mediawiki", false], [35, "module-searx.engines.command", false], [36, "module-searx.engines.mongodb", false], [36, "module-searx.engines.redis_server", false], [37, "module-searx.engines.elasticsearch", false], [37, "module-searx.engines.meilisearch", false], [37, "module-searx.engines.solr", false], [38, "module-searx.engines.mariadb_server", false], [38, "module-searx.engines.mysql_server", false], [38, "module-searx.engines.postgresql", false], [38, "module-searx.engines.sqlite", false], [40, "module-searx.engines.alpinelinux", false], [41, "module-searx.engines.annas_archive", false], [42, "module-searx.engines.archlinux", false], [43, "module-searx.engines.bing", false], [43, "module-searx.engines.bing_images", false], [43, "module-searx.engines.bing_news", false], [43, "module-searx.engines.bing_videos", false], [44, "module-searx.engines.bpb", false], [45, "module-searx.engines.brave", false], [46, "module-searx.engines.bt4g", false], [47, "module-searx.engines.dailymotion", false], [48, "module-searx.engines.discourse", false], [49, "module-searx.engines.duckduckgo", false], [49, "module-searx.engines.duckduckgo_definitions", false], [49, "module-searx.engines.duckduckgo_extra", false], [49, "module-searx.engines.duckduckgo_weather", false], [50, "module-searx.engines.geizhals", false], [51, "module-searx.engines.gitea", false], [52, "module-searx.engines.gitlab", false], [53, "module-searx.engines.google", false], [53, "module-searx.engines.google_images", false], [53, "module-searx.engines.google_news", false], [53, "module-searx.engines.google_scholar", false], [53, "module-searx.engines.google_videos", false], [54, "module-searx.engines.lemmy", false], [55, "module-searx.engines.loc", false], [56, "module-searx.engines.mastodon", false], [57, "module-searx.engines.moviepilot", false], [58, "module-searx.engines.mrs", false], [59, "module-searx.engines.mullvad_leta", false], [60, "module-searx.engines.mwmbl", false], [61, "module-searx.engines.odysee", false], [62, "module-searx.engines.peertube", false], [62, "module-searx.engines.sepiasearch", false], [63, "module-searx.engines.piped", false], [64, "module-searx.engines.presearch", false], [65, "module-searx.engines.qwant", false], [66, "module-searx.engines.radio_browser", false], [67, "module-searx.engines.recoll", false], [68, "module-searx.engines.seekr", false], [69, "module-searx.engines.startpage", false], [70, "module-searx.engines.tagesschau", false], [71, "module-searx.engines.torznab", false], [72, "module-searx.engines.voidlinux", false], [73, "module-searx.engines.wallhaven", false], [74, "module-searx.engines.wikidata", false], [74, "module-searx.engines.wikipedia", false], [75, "module-searx.engines.yacy", false], [76, "module-searx.engines.yahoo", false], [77, "module-searx.engines.zlibrary", false], [78, "module-searx.engines.tineye", false], [79, "module-searx.engines.xpath", false], [95, "module-searx.babel_extract", false], [96, "module-searx.botdetection", false], [96, "module-searx.botdetection.config", false], [96, "module-searx.botdetection.http_accept", false], [96, "module-searx.botdetection.http_accept_encoding", false], [96, "module-searx.botdetection.http_accept_language", false], [96, "module-searx.botdetection.http_connection", false], [96, "module-searx.botdetection.http_user_agent", false], [96, "module-searx.botdetection.ip_limit", false], [96, "module-searx.botdetection.ip_lists", false], [96, "module-searx.botdetection.link_token", false], [97, "module-searx.exceptions", false], [98, "module-searx.favicons", false], [98, "module-searx.favicons.cache", false], [98, "module-searx.favicons.config", false], [98, "module-searx.favicons.proxy", false], [98, "module-searx.favicons.resolvers", false], [99, "module-searx.infopage", false], [100, "module-searx.locales", false], [100, "module-searx.sxng_locales", false], [101, "module-searx.plugins.hostnames", false], [102, "module-searx.plugins.tor_check", false], [103, "module-searx.plugins.unit_converter", false], [104, "module-searx.redisdb", false], [105, "module-searx.redislib", false], [107, "module-searx.search.processors.abstract", false], [107, "module-searx.search.processors.offline", false], [107, "module-searx.search.processors.online", false], [107, "module-searx.search.processors.online_currency", false], [107, "module-searx.search.processors.online_dictionary", false], [107, "module-searx.search.processors.online_url_search", false], [108, "module-searx.settings_loader", false], [109, "module-searx.sqlitedb", false], [110, "module-searx.utils", false]], "mwmbl() (in module searx.autocomplete)": [[60, "searx.autocomplete.mwmbl", false]], "name (in module searx.plugins.tor_check)": [[102, "searx.plugins.tor_check.name", false]], "name (searx.enginelib.engine attribute)": [[31, "searx.enginelib.Engine.name", false]], "next_maintenance_time (searx.favicons.cache.faviconcachesqlite property)": [[98, "searx.favicons.cache.FaviconCacheSQLite.next_maintenance_time", false]], "no_result_for_http_status (in module searx.engines.xpath)": [[79, "searx.engines.xpath.no_result_for_http_status", false]], "no_signature_error (in module searx.engines.tineye)": [[78, "searx.engines.tineye.NO_SIGNATURE_ERROR", false]], "normalize_url() (in module searx.utils)": [[110, "searx.utils.normalize_url", false]], "offlineprocessor (class in searx.search.processors.offline)": [[107, "searx.search.processors.offline.OfflineProcessor", false]], "old_redis_url_default_url (in module searx.redisdb)": [[104, "searx.redisdb.OLD_REDIS_URL_DEFAULT_URL", false]], "on_result()": [[83, "on_result", false]], "onlinecurrencyprocessor (class in searx.search.processors.online_currency)": [[107, "searx.search.processors.online_currency.OnlineCurrencyProcessor", false]], "onlinedictionaryprocessor (class in searx.search.processors.online_dictionary)": [[107, "searx.search.processors.online_dictionary.OnlineDictionaryProcessor", false]], "onlineprocessor (class in searx.search.processors.online)": [[107, "searx.search.processors.online.OnlineProcessor", false]], "onlineurlsearchprocessor (class in searx.search.processors.online_url_search)": [[107, "searx.search.processors.online_url_search.OnlineUrlSearchProcessor", false]], "order (in module searx.engines.gitea)": [[51, "searx.engines.gitea.order", false]], "ordered_plugin_list (searx.search.searchwithplugins attribute)": [[106, "searx.search.SearchWithPlugins.ordered_plugin_list", false]], "page_size (in module searx.engines.gitea)": [[51, "searx.engines.gitea.page_size", false]], "page_size (in module searx.engines.xpath)": [[79, "searx.engines.xpath.page_size", false]], "paging (in module searx.engines.bing_news)": [[43, "searx.engines.bing_news.paging", false]], "paging (in module searx.engines.brave)": [[45, "searx.engines.brave.paging", false]], "paging (in module searx.engines.xpath)": [[79, "searx.engines.xpath.paging", false]], "paging (searx.enginelib.engine attribute)": [[31, "searx.enginelib.Engine.paging", false]], "parse_gs_a() (in module searx.engines.google_scholar)": [[53, "searx.engines.google_scholar.parse_gs_a", false]], "parse_tineye_match() (in module searx.engines.tineye)": [[78, "searx.engines.tineye.parse_tineye_match", false]], "parse_url() (in module searx.engines.yahoo)": [[76, "searx.engines.yahoo.parse_url", false]], "parse_web_api() (in module searx.engines.qwant)": [[65, "searx.engines.qwant.parse_web_api", false]], "parse_web_lite() (in module searx.engines.qwant)": [[65, "searx.engines.qwant.parse_web_lite", false]], "pass_ip() (in module searx.botdetection.ip_lists)": [[96, "searx.botdetection.ip_lists.pass_ip", false]], "password (in module searx.engines.mariadb_server)": [[38, "searx.engines.mariadb_server.password", false]], "password (in module searx.engines.mysql_server)": [[38, "searx.engines.mysql_server.password", false]], "password (in module searx.engines.postgresql)": [[38, "searx.engines.postgresql.password", false]], "path() (searx.botdetection.config.config method)": [[96, "searx.botdetection.config.Config.path", false]], "pep 8": [[85, "index-1", false]], "ping() (in module searx.botdetection.link_token)": [[96, "searx.botdetection.link_token.ping", false]], "ping_key (in module searx.botdetection.link_token)": [[96, "searx.botdetection.link_token.PING_KEY", false]], "ping_live_time (in module searx.botdetection.link_token)": [[96, "searx.botdetection.link_token.PING_LIVE_TIME", false]], "piped_filter (in module searx.engines.piped)": [[63, "searx.engines.piped.piped_filter", false]], "port (in module searx.engines.mariadb_server)": [[38, "searx.engines.mariadb_server.port", false]], "port (in module searx.engines.mysql_server)": [[38, "searx.engines.mysql_server.port", false]], "port (in module searx.engines.postgresql)": [[38, "searx.engines.postgresql.port", false]], "post_search()": [[83, "post_search", false]], "pre_request() (in module searx.limiter)": [[14, "searx.limiter.pre_request", false]], "pre_search()": [[83, "pre_search", false]], "preference_section (in module searx.plugins.tor_check)": [[102, "searx.plugins.tor_check.preference_section", false]], "proxies (searx.enginelib.engine attribute)": [[31, "searx.enginelib.Engine.proxies", false]], "proxy (searx.favicons.config.faviconconfig attribute)": [[98, "searx.favicons.config.FaviconConfig.proxy", false]], "purge_by_prefix() (in module searx.redislib)": [[105, "searx.redislib.purge_by_prefix", false]], "pyobj() (searx.botdetection.config.config method)": [[96, "searx.botdetection.config.Config.pyobj", false]], "python enhancement proposals": [[85, "index-1", false]], "query_examples (in module searx.plugins.tor_check)": [[102, "searx.plugins.tor_check.query_examples", false]], "query_keywords (in module searx.plugins.tor_check)": [[102, "searx.plugins.tor_check.query_keywords", false]], "query_str (in module searx.engines.mariadb_server)": [[38, "searx.engines.mariadb_server.query_str", false]], "query_str (in module searx.engines.mysql_server)": [[38, "searx.engines.mysql_server.query_str", false]], "query_str (in module searx.engines.postgresql)": [[38, "searx.engines.postgresql.query_str", false]], "query_str (in module searx.engines.sqlite)": [[38, "searx.engines.sqlite.query_str", false]], "qwant_categ (in module searx.engines.qwant)": [[65, "searx.engines.qwant.qwant_categ", false]], "raw_content (searx.infopage.infopage property)": [[99, "searx.infopage.InfoPage.raw_content", false]], "region (searx.enginelib.engine attribute)": [[31, "searx.enginelib.Engine.region", false]], "region_tag() (in module searx.locales)": [[100, "searx.locales.region_tag", false]], "regions (searx.enginelib.traits.enginetraits attribute)": [[31, "searx.enginelib.traits.EngineTraits.regions", false]], "register_functions() (searx.sqlitedb.sqliteappl method)": [[109, "searx.sqlitedb.SQLiteAppl.register_functions", false]], "request (searx.search.searchwithplugins attribute)": [[106, "searx.search.SearchWithPlugins.request", false]], "request() (in module searx.engines.bing)": [[43, "searx.engines.bing.request", false]], "request() (in module searx.engines.bing_images)": [[43, "searx.engines.bing_images.request", false]], "request() (in module searx.engines.bing_news)": [[43, "searx.engines.bing_news.request", false]], "request() (in module searx.engines.bing_videos)": [[43, "searx.engines.bing_videos.request", false]], "request() (in module searx.engines.demo_online)": [[29, "searx.engines.demo_online.request", false]], "request() (in module searx.engines.google)": [[53, "searx.engines.google.request", false]], "request() (in module searx.engines.google_images)": [[53, "searx.engines.google_images.request", false]], "request() (in module searx.engines.google_news)": [[53, "searx.engines.google_news.request", false]], "request() (in module searx.engines.google_scholar)": [[53, "searx.engines.google_scholar.request", false]], "request() (in module searx.engines.google_videos)": [[53, "searx.engines.google_videos.request", false]], "request() (in module searx.engines.peertube)": [[62, "searx.engines.peertube.request", false]], "request() (in module searx.engines.qwant)": [[65, "searx.engines.qwant.request", false]], "request() (in module searx.engines.sepiasearch)": [[62, "searx.engines.sepiasearch.request", false]], "request() (in module searx.engines.startpage)": [[69, "searx.engines.startpage.request", false]], "request() (in module searx.engines.tineye)": [[78, "searx.engines.tineye.request", false]], "request() (in module searx.engines.torznab)": [[71, "searx.engines.torznab.request", false]], "request() (in module searx.engines.wikipedia)": [[74, "searx.engines.wikipedia.request", false]], "request() (in module searx.engines.xpath)": [[79, "searx.engines.xpath.request", false]], "request() (in module searx.engines.yahoo)": [[76, "searx.engines.yahoo.request", false]], "resolver_map (searx.favicons.proxy.faviconproxyconfig attribute)": [[98, "searx.favicons.proxy.FaviconProxyConfig.resolver_map", false]], "resolver_timeout (searx.favicons.proxy.faviconproxyconfig attribute)": [[98, "searx.favicons.proxy.FaviconProxyConfig.resolver_timeout", false]], "response() (in module searx.engines.bing_images)": [[43, "searx.engines.bing_images.response", false]], "response() (in module searx.engines.bing_news)": [[43, "searx.engines.bing_news.response", false]], "response() (in module searx.engines.bing_videos)": [[43, "searx.engines.bing_videos.response", false]], "response() (in module searx.engines.demo_online)": [[29, "searx.engines.demo_online.response", false]], "response() (in module searx.engines.google)": [[53, "searx.engines.google.response", false]], "response() (in module searx.engines.google_images)": [[53, "searx.engines.google_images.response", false]], "response() (in module searx.engines.google_news)": [[53, "searx.engines.google_news.response", false]], "response() (in module searx.engines.google_scholar)": [[53, "searx.engines.google_scholar.response", false]], "response() (in module searx.engines.google_videos)": [[53, "searx.engines.google_videos.response", false]], "response() (in module searx.engines.mullvad_leta)": [[59, "searx.engines.mullvad_leta.response", false]], "response() (in module searx.engines.tineye)": [[78, "searx.engines.tineye.response", false]], "response() (in module searx.engines.torznab)": [[71, "searx.engines.torznab.response", false]], "response() (in module searx.engines.voidlinux)": [[72, "searx.engines.voidlinux.response", false]], "response() (in module searx.engines.xpath)": [[79, "searx.engines.xpath.response", false]], "response() (in module searx.engines.yahoo)": [[76, "searx.engines.yahoo.response", false]], "rest_v1_summary_url (in module searx.engines.wikipedia)": [[74, "searx.engines.wikipedia.rest_v1_summary_url", false]], "result_container (searx.search.search attribute)": [[106, "searx.search.Search.result_container", false]], "result_container (searx.search.searchwithplugins attribute)": [[106, "searx.search.SearchWithPlugins.result_container", false]], "result_fields (in module searx.engines.dailymotion)": [[47, "searx.engines.dailymotion.result_fields", false]], "results_xpath (in module searx.engines.xpath)": [[79, "searx.engines.xpath.results_xpath", false]], "rfc": [[85, "index-0", false], [98, "index-0", false], [98, "index-1", false], [98, "index-2", false], [98, "index-3", false], [98, "index-4", false], [98, "index-5", false]], "rfc 2104": [[98, "index-1", false], [98, "index-4", false]], "rfc 3986": [[98, "index-0", false], [98, "index-2", false], [98, "index-3", false], [98, "index-5", false]], "rfc 822": [[85, "index-0", false]], "row() (searx.sqlitedb.sqliteproperties method)": [[109, "searx.sqlitedb.SQLiteProperties.row", false]], "rtl_locales (in module searx.locales)": [[100, "searx.locales.RTL_LOCALES", false]], "safe_search_map (in module searx.engines.xpath)": [[79, "searx.engines.xpath.safe_search_map", false]], "safe_search_support (in module searx.engines.xpath)": [[79, "searx.engines.xpath.safe_search_support", false]], "safesearch (in module searx.engines.bing)": [[43, "searx.engines.bing.safesearch", false]], "safesearch (searx.enginelib.engine attribute)": [[31, "searx.enginelib.Engine.safesearch", false]], "safesearch_map (in module searx.engines.wallhaven)": [[73, "searx.engines.wallhaven.safesearch_map", false]], "safesearch_params (in module searx.engines.dailymotion)": [[47, "searx.engines.dailymotion.safesearch_params", false]], "save_data() (searx.enginelib.traits.enginetraitsmap method)": [[31, "searx.enginelib.traits.EngineTraitsMap.save_data", false]], "sc_code_cache_sec (in module searx.engines.startpage)": [[69, "searx.engines.startpage.sc_code_cache_sec", false]], "schemaissue": [[96, "searx.botdetection.config.SchemaIssue", false]], "search (class in searx.search)": [[106, "searx.search.Search", false]], "search() (in module searx.engines.demo_offline)": [[28, "searx.engines.demo_offline.search", false]], "search() (searx.search.search method)": [[106, "searx.search.Search.search", false]], "search() (searx.search.searchwithplugins method)": [[106, "searx.search.SearchWithPlugins.search", false]], "search_endpoint (in module searx.engines.discourse)": [[48, "searx.engines.discourse.search_endpoint", false]], "search_favicon() (in module searx.favicons.proxy)": [[98, "searx.favicons.proxy.search_favicon", false]], "search_form_xpath (in module searx.engines.startpage)": [[69, "searx.engines.startpage.search_form_xpath", false]], "search_language_codes (in module searx.utils)": [[110, "searx.utils.SEARCH_LANGUAGE_CODES", false]], "search_mode (in module searx.engines.yacy)": [[75, "searx.engines.yacy.search_mode", false]], "search_query (searx.search.search attribute)": [[106, "searx.search.Search.search_query", false]], "search_query (searx.search.searchwithplugins attribute)": [[106, "searx.search.SearchWithPlugins.search_query", false]], "search_type (in module searx.engines.mediawiki)": [[34, "searx.engines.mediawiki.search_type", false]], "search_type (in module searx.engines.presearch)": [[64, "searx.engines.presearch.search_type", false]], "search_type (in module searx.engines.yacy)": [[75, "searx.engines.yacy.search_type", false]], "search_url (in module searx.engines.dailymotion)": [[47, "searx.engines.dailymotion.search_url", false]], "search_url (in module searx.engines.xpath)": [[79, "searx.engines.xpath.search_url", false]], "searchquery (class in searx.search)": [[106, "searx.search.SearchQuery", false]], "searchwithplugins (class in searx.search)": [[106, "searx.search.SearchWithPlugins", false]], "searx.babel_extract": [[95, "module-searx.babel_extract", false]], "searx.botdetection": [[96, "module-searx.botdetection", false]], "searx.botdetection.config": [[96, "module-searx.botdetection.config", false]], "searx.botdetection.http_accept": [[96, "module-searx.botdetection.http_accept", false]], "searx.botdetection.http_accept_encoding": [[96, "module-searx.botdetection.http_accept_encoding", false]], "searx.botdetection.http_accept_language": [[96, "module-searx.botdetection.http_accept_language", false]], "searx.botdetection.http_connection": [[96, "module-searx.botdetection.http_connection", false]], "searx.botdetection.http_user_agent": [[96, "module-searx.botdetection.http_user_agent", false]], "searx.botdetection.ip_limit": [[96, "module-searx.botdetection.ip_limit", false]], "searx.botdetection.ip_lists": [[96, "module-searx.botdetection.ip_lists", false]], "searx.botdetection.link_token": [[96, "module-searx.botdetection.link_token", false]], "searx.enginelib": [[31, "module-searx.enginelib", false]], "searx.enginelib.traits": [[31, "module-searx.enginelib.traits", false]], "searx.engines": [[32, "module-searx.engines", false]], "searx.engines.alpinelinux": [[40, "module-searx.engines.alpinelinux", false]], "searx.engines.annas_archive": [[41, "module-searx.engines.annas_archive", false]], "searx.engines.archlinux": [[42, "module-searx.engines.archlinux", false]], "searx.engines.bing": [[43, "module-searx.engines.bing", false]], "searx.engines.bing_images": [[43, "module-searx.engines.bing_images", false]], "searx.engines.bing_news": [[43, "module-searx.engines.bing_news", false]], "searx.engines.bing_videos": [[43, "module-searx.engines.bing_videos", false]], "searx.engines.bpb": [[44, "module-searx.engines.bpb", false]], "searx.engines.brave": [[45, "module-searx.engines.brave", false]], "searx.engines.bt4g": [[46, "module-searx.engines.bt4g", false]], "searx.engines.command": [[35, "module-searx.engines.command", false]], "searx.engines.dailymotion": [[47, "module-searx.engines.dailymotion", false]], "searx.engines.demo_offline": [[28, "module-searx.engines.demo_offline", false]], "searx.engines.demo_online": [[29, "module-searx.engines.demo_online", false]], "searx.engines.discourse": [[48, "module-searx.engines.discourse", false]], "searx.engines.duckduckgo": [[49, "module-searx.engines.duckduckgo", false]], "searx.engines.duckduckgo_definitions": [[49, "module-searx.engines.duckduckgo_definitions", false]], "searx.engines.duckduckgo_extra": [[49, "module-searx.engines.duckduckgo_extra", false]], "searx.engines.duckduckgo_weather": [[49, "module-searx.engines.duckduckgo_weather", false]], "searx.engines.elasticsearch": [[37, "module-searx.engines.elasticsearch", false]], "searx.engines.geizhals": [[50, "module-searx.engines.geizhals", false]], "searx.engines.gitea": [[51, "module-searx.engines.gitea", false]], "searx.engines.gitlab": [[52, "module-searx.engines.gitlab", false]], "searx.engines.google": [[53, "module-searx.engines.google", false]], "searx.engines.google_images": [[53, "module-searx.engines.google_images", false]], "searx.engines.google_news": [[53, "module-searx.engines.google_news", false]], "searx.engines.google_scholar": [[53, "module-searx.engines.google_scholar", false]], "searx.engines.google_videos": [[53, "module-searx.engines.google_videos", false]], "searx.engines.lemmy": [[54, "module-searx.engines.lemmy", false]], "searx.engines.loc": [[55, "module-searx.engines.loc", false]], "searx.engines.mariadb_server": [[38, "module-searx.engines.mariadb_server", false]], "searx.engines.mastodon": [[56, "module-searx.engines.mastodon", false]], "searx.engines.mediawiki": [[34, "module-searx.engines.mediawiki", false]], "searx.engines.meilisearch": [[37, "module-searx.engines.meilisearch", false]], "searx.engines.mongodb": [[36, "module-searx.engines.mongodb", false]], "searx.engines.moviepilot": [[57, "module-searx.engines.moviepilot", false]], "searx.engines.mrs": [[58, "module-searx.engines.mrs", false]], "searx.engines.mullvad_leta": [[59, "module-searx.engines.mullvad_leta", false]], "searx.engines.mwmbl": [[60, "module-searx.engines.mwmbl", false]], "searx.engines.mysql_server": [[38, "module-searx.engines.mysql_server", false]], "searx.engines.odysee": [[61, "module-searx.engines.odysee", false]], "searx.engines.peertube": [[62, "module-searx.engines.peertube", false]], "searx.engines.piped": [[63, "module-searx.engines.piped", false]], "searx.engines.postgresql": [[38, "module-searx.engines.postgresql", false]], "searx.engines.presearch": [[64, "module-searx.engines.presearch", false]], "searx.engines.qwant": [[65, "module-searx.engines.qwant", false]], "searx.engines.radio_browser": [[66, "module-searx.engines.radio_browser", false]], "searx.engines.recoll": [[67, "module-searx.engines.recoll", false]], "searx.engines.redis_server": [[36, "module-searx.engines.redis_server", false]], "searx.engines.seekr": [[68, "module-searx.engines.seekr", false]], "searx.engines.sepiasearch": [[62, "module-searx.engines.sepiasearch", false]], "searx.engines.solr": [[37, "module-searx.engines.solr", false]], "searx.engines.sqlite": [[38, "module-searx.engines.sqlite", false]], "searx.engines.startpage": [[69, "module-searx.engines.startpage", false]], "searx.engines.tagesschau": [[70, "module-searx.engines.tagesschau", false]], "searx.engines.tineye": [[78, "module-searx.engines.tineye", false]], "searx.engines.torznab": [[71, "module-searx.engines.torznab", false]], "searx.engines.voidlinux": [[72, "module-searx.engines.voidlinux", false]], "searx.engines.wallhaven": [[73, "module-searx.engines.wallhaven", false]], "searx.engines.wikidata": [[74, "module-searx.engines.wikidata", false]], "searx.engines.wikipedia": [[74, "module-searx.engines.wikipedia", false]], "searx.engines.xpath": [[79, "module-searx.engines.xpath", false]], "searx.engines.yacy": [[75, "module-searx.engines.yacy", false]], "searx.engines.yahoo": [[76, "module-searx.engines.yahoo", false]], "searx.engines.zlibrary": [[77, "module-searx.engines.zlibrary", false]], "searx.exceptions": [[97, "module-searx.exceptions", false]], "searx.favicons": [[98, "module-searx.favicons", false]], "searx.favicons.cache": [[98, "module-searx.favicons.cache", false]], "searx.favicons.config": [[98, "module-searx.favicons.config", false]], "searx.favicons.proxy": [[98, "module-searx.favicons.proxy", false]], "searx.favicons.resolvers": [[98, "module-searx.favicons.resolvers", false]], "searx.infopage": [[99, "module-searx.infopage", false]], "searx.limiter": [[14, "module-searx.limiter", false]], "searx.locales": [[100, "module-searx.locales", false]], "searx.plugins.hostnames": [[101, "module-searx.plugins.hostnames", false]], "searx.plugins.tor_check": [[102, "module-searx.plugins.tor_check", false]], "searx.plugins.unit_converter": [[103, "module-searx.plugins.unit_converter", false]], "searx.redisdb": [[104, "module-searx.redisdb", false]], "searx.redislib": [[105, "module-searx.redislib", false]], "searx.search.processors.abstract": [[107, "module-searx.search.processors.abstract", false]], "searx.search.processors.offline": [[107, "module-searx.search.processors.offline", false]], "searx.search.processors.online": [[107, "module-searx.search.processors.online", false]], "searx.search.processors.online_currency": [[107, "module-searx.search.processors.online_currency", false]], "searx.search.processors.online_dictionary": [[107, "module-searx.search.processors.online_dictionary", false]], "searx.search.processors.online_url_search": [[107, "module-searx.search.processors.online_url_search", false]], "searx.settings_loader": [[108, "module-searx.settings_loader", false]], "searx.sqlitedb": [[109, "module-searx.sqlitedb", false]], "searx.sxng_locales": [[100, "module-searx.sxng_locales", false]], "searx.utils": [[110, "module-searx.utils", false]], "searx_useragent() (in module searx.utils)": [[110, "searx.utils.searx_useragent", false]], "searxengineaccessdeniedexception": [[97, "searx.exceptions.SearxEngineAccessDeniedException", false]], "searxengineapiexception": [[97, "searx.exceptions.SearxEngineAPIException", false]], "searxenginecaptchaexception": [[97, "searx.exceptions.SearxEngineCaptchaException", false]], "searxengineexception": [[97, "searx.exceptions.SearxEngineException", false]], "searxengineresponseexception": [[97, "searx.exceptions.SearxEngineResponseException", false]], "searxenginetoomanyrequestsexception": [[97, "searx.exceptions.SearxEngineTooManyRequestsException", false]], "searxenginexpathexception": [[97, "searx.exceptions.SearxEngineXPathException", false]], "searxexception": [[97, "searx.exceptions.SearxException", false]], "searxng_org (in module searx.botdetection.ip_lists)": [[96, "searx.botdetection.ip_lists.SEARXNG_ORG", false]], "searxparameterexception": [[97, "searx.exceptions.SearxParameterException", false]], "searxsettingsexception": [[97, "searx.exceptions.SearxSettingsException", false]], "searxxpathsyntaxexception": [[97, "searx.exceptions.SearxXPathSyntaxException", false]], "secret_hash() (in module searx.redislib)": [[105, "searx.redislib.secret_hash", false]], "secret_key (searx.favicons.proxy.faviconproxyconfig attribute)": [[98, "searx.favicons.proxy.FaviconProxyConfig.secret_key", false]], "seekr_category (in module searx.engines.seekr)": [[68, "searx.engines.seekr.seekr_category", false]], "send_accept_language_header (in module searx.engines.duckduckgo)": [[49, "searx.engines.duckduckgo.send_accept_language_header", false]], "send_accept_language_header (in module searx.engines.startpage)": [[69, "searx.engines.startpage.send_accept_language_header", false]], "send_accept_language_header (in module searx.engines.wikipedia)": [[74, "searx.engines.wikipedia.send_accept_language_header", false]], "send_accept_language_header (searx.enginelib.engine attribute)": [[31, "searx.enginelib.Engine.send_accept_language_header", false]], "set() (searx.botdetection.config.config method)": [[96, "searx.botdetection.config.Config.set", false]], "set() (searx.favicons.cache.faviconcache method)": [[98, "searx.favicons.cache.FaviconCache.set", false]], "set() (searx.favicons.cache.faviconcachemem method)": [[98, "searx.favicons.cache.FaviconCacheMEM.set", false]], "set() (searx.favicons.cache.faviconcachenull method)": [[98, "searx.favicons.cache.FaviconCacheNull.set", false]], "set() (searx.favicons.cache.faviconcachesqlite method)": [[98, "searx.favicons.cache.FaviconCacheSQLite.set", false]], "set() (searx.sqlitedb.sqliteproperties method)": [[109, "searx.sqlitedb.SQLiteProperties.set", false]], "set_traits() (searx.enginelib.traits.enginetraits method)": [[31, "searx.enginelib.traits.EngineTraits.set_traits", false]], "set_traits() (searx.enginelib.traits.enginetraitsmap method)": [[31, "searx.enginelib.traits.EngineTraitsMap.set_traits", false]], "shortcut (searx.enginelib.engine attribute)": [[31, "searx.enginelib.Engine.shortcut", false]], "show_avatar (in module searx.engines.discourse)": [[48, "searx.engines.discourse.show_avatar", false]], "soft_max_redirects (in module searx.engines.xpath)": [[79, "searx.engines.xpath.soft_max_redirects", false]], "sort (in module searx.engines.gitea)": [[51, "searx.engines.gitea.sort", false]], "sql_drop_leftover_blobs (searx.favicons.cache.faviconcachesqlite attribute)": [[98, "searx.favicons.cache.FaviconCacheSQLite.SQL_DROP_LEFTOVER_BLOBS", false]], "sqlite_connect_args (searx.sqlitedb.sqliteappl attribute)": [[109, "searx.sqlitedb.SQLiteAppl.SQLITE_CONNECT_ARGS", false]], "sqlite_connect_args (searx.sqlitedb.sqliteproperties attribute)": [[109, "searx.sqlitedb.SQLiteProperties.SQLITE_CONNECT_ARGS", false]], "sqlite_cursor() (in module searx.engines.sqlite)": [[38, "searx.engines.sqlite.sqlite_cursor", false]], "sqlite_threading_mode (searx.sqlitedb.sqliteappl attribute)": [[109, "searx.sqlitedb.SQLiteAppl.SQLITE_THREADING_MODE", false]], "sqliteappl (class in searx.sqlitedb)": [[109, "searx.sqlitedb.SQLiteAppl", false]], "sqliteproperties (class in searx.sqlitedb)": [[109, "searx.sqlitedb.SQLiteProperties", false]], "srenablerewrites (in module searx.engines.mediawiki)": [[34, "searx.engines.mediawiki.srenablerewrites", false]], "srprop (in module searx.engines.mediawiki)": [[34, "searx.engines.mediawiki.srprop", false]], "srsort (in module searx.engines.mediawiki)": [[34, "searx.engines.mediawiki.srsort", false]], "startpage_categ (in module searx.engines.startpage)": [[69, "searx.engines.startpage.startpage_categ", false]], "state() (in module searx.favicons.cache)": [[98, "searx.favicons.cache.state", false]], "state() (searx.favicons.cache.faviconcache method)": [[98, "searx.favicons.cache.FaviconCache.state", false]], "state() (searx.favicons.cache.faviconcachemem method)": [[98, "searx.favicons.cache.FaviconCacheMEM.state", false]], "state() (searx.favicons.cache.faviconcachenull method)": [[98, "searx.favicons.cache.FaviconCacheNull.state", false]], "state() (searx.favicons.cache.faviconcachesqlite method)": [[98, "searx.favicons.cache.FaviconCacheSQLite.state", false]], "station_filters (in module searx.engines.radio_browser)": [[66, "searx.engines.radio_browser.station_filters", false]], "suggestion_xpath (in module searx.engines.xpath)": [[79, "searx.engines.xpath.suggestion_xpath", false]], "suspend_time_setting (searx.exceptions.searxengineaccessdeniedexception attribute)": [[97, "searx.exceptions.SearxEngineAccessDeniedException.SUSPEND_TIME_SETTING", false]], "suspend_time_setting (searx.exceptions.searxenginecaptchaexception attribute)": [[97, "searx.exceptions.SearxEngineCaptchaException.SUSPEND_TIME_SETTING", false]], "suspend_time_setting (searx.exceptions.searxenginetoomanyrequestsexception attribute)": [[97, "searx.exceptions.SearxEngineTooManyRequestsException.SUSPEND_TIME_SETTING", false]], "suspendedstatus (class in searx.search.processors.abstract)": [[107, "searx.search.processors.abstract.SuspendedStatus", false]], "suspicious_ip_max (in module searx.botdetection.ip_limit)": [[96, "searx.botdetection.ip_limit.SUSPICIOUS_IP_MAX", false]], "suspicious_ip_window (in module searx.botdetection.ip_limit)": [[96, "searx.botdetection.ip_limit.SUSPICIOUS_IP_WINDOW", false]], "sxng_locales (in module searx.sxng_locales)": [[100, "searx.sxng_locales.sxng_locales", false]], "symbol_to_si() (in module searx.plugins.unit_converter)": [[103, "searx.plugins.unit_converter.symbol_to_si", false]], "thumbnail_xpath (in module searx.engines.xpath)": [[79, "searx.engines.xpath.thumbnail_xpath", false]], "time_map (in module searx.engines.bing_news)": [[43, "searx.engines.bing_news.time_map", false]], "time_range_args() (in module searx.engines.google_scholar)": [[53, "searx.engines.google_scholar.time_range_args", false]], "time_range_map (in module searx.engines.xpath)": [[79, "searx.engines.xpath.time_range_map", false]], "time_range_support (in module searx.engines.brave)": [[45, "searx.engines.brave.time_range_support", false]], "time_range_support (in module searx.engines.xpath)": [[79, "searx.engines.xpath.time_range_support", false]], "time_range_support (searx.enginelib.engine attribute)": [[31, "searx.enginelib.Engine.time_range_support", false]], "time_range_url (in module searx.engines.xpath)": [[79, "searx.engines.xpath.time_range_url", false]], "timeout (searx.enginelib.engine attribute)": [[31, "searx.enginelib.Engine.timeout", false]], "timestamp_format (in module searx.engines.mediawiki)": [[34, "searx.engines.mediawiki.timestamp_format", false]], "title (searx.infopage.infopage property)": [[99, "searx.infopage.InfoPage.title", false]], "title_xpath (in module searx.engines.xpath)": [[79, "searx.engines.xpath.title_xpath", false]], "to_string() (in module searx.utils)": [[110, "searx.utils.to_string", false]], "toc (searx.infopage.infopageset attribute)": [[99, "searx.infopage.InfoPageSet.toc", false]], "token_key (in module searx.botdetection.link_token)": [[96, "searx.botdetection.link_token.TOKEN_KEY", false]], "token_live_time (in module searx.botdetection.link_token)": [[96, "searx.botdetection.link_token.TOKEN_LIVE_TIME", false]], "tokens (searx.enginelib.engine attribute)": [[31, "searx.enginelib.Engine.tokens", false]], "toml_cache_cfg (in module searx.favicons.config)": [[98, "searx.favicons.config.TOML_CACHE_CFG", false]], "too_many_requests() (in module searx.botdetection)": [[96, "searx.botdetection.too_many_requests", false]], "traits (searx.enginelib.engine attribute)": [[31, "searx.enginelib.Engine.traits", false]], "ui_async (in module searx.engines.google)": [[53, "searx.engines.google.UI_ASYNC", false]], "update() (searx.botdetection.config.config method)": [[96, "searx.botdetection.config.Config.update", false]], "url_xpath (in module searx.engines.xpath)": [[79, "searx.engines.xpath.url_xpath", false]], "use_source_url (in module searx.engines.tagesschau)": [[70, "searx.engines.tagesschau.use_source_url", false]], "user_agent (in module searx.botdetection.http_user_agent)": [[96, "searx.botdetection.http_user_agent.USER_AGENT", false]], "username (in module searx.engines.mariadb_server)": [[38, "searx.engines.mariadb_server.username", false]], "username (in module searx.engines.mysql_server)": [[38, "searx.engines.mysql_server.username", false]], "username (in module searx.engines.postgresql)": [[38, "searx.engines.postgresql.username", false]], "using_tor_proxy (searx.enginelib.engine attribute)": [[31, "searx.enginelib.Engine.using_tor_proxy", false]], "using_tor_proxy() (in module searx.engines)": [[32, "searx.engines.using_tor_proxy", false]], "validate() (searx.botdetection.config.config method)": [[96, "searx.botdetection.config.Config.validate", false]], "video_response() (in module searx.engines.peertube)": [[62, "searx.engines.peertube.video_response", false]], "void_arch (in module searx.engines.voidlinux)": [[72, "searx.engines.voidlinux.void_arch", false]], "web_lite_url (in module searx.engines.qwant)": [[65, "searx.engines.qwant.web_lite_url", false]], "wiki_lc_locale_variants (in module searx.engines.wikipedia)": [[74, "searx.engines.wikipedia.wiki_lc_locale_variants", false]], "wikipedia_article_depth (in module searx.engines.wikipedia)": [[74, "searx.engines.wikipedia.wikipedia_article_depth", false]], "yandex() (in module searx.favicons.resolvers)": [[98, "searx.favicons.resolvers.yandex", false]], "zlib_ext (in module searx.engines.zlibrary)": [[77, "searx.engines.zlibrary.zlib_ext", false]], "zlib_year_from (in module searx.engines.zlibrary)": [[77, "searx.engines.zlibrary.zlib_year_from", false]], "zlib_year_to (in module searx.engines.zlibrary)": [[77, "searx.engines.zlibrary.zlib_year_to", false]]}, "objects": {"": [[83, 0, 1, "", "on_result"], [83, 0, 1, "", "post_search"], [83, 0, 1, "", "pre_search"]], "searx": [[95, 1, 0, "-", "babel_extract"], [96, 1, 0, "-", "botdetection"], [31, 1, 0, "-", "enginelib"], [32, 1, 0, "-", "engines"], [97, 1, 0, "-", "exceptions"], [98, 1, 0, "-", "favicons"], [99, 1, 0, "-", "infopage"], [14, 1, 0, "-", "limiter"], [100, 1, 0, "-", "locales"], [104, 1, 0, "-", "redisdb"], [105, 1, 0, "-", "redislib"], [108, 1, 0, "-", "settings_loader"], [109, 1, 0, "-", "sqlitedb"], [100, 1, 0, "-", "sxng_locales"], [110, 1, 0, "-", "utils"]], "searx.autocomplete": [[53, 0, 1, "", "google_complete"], [60, 0, 1, "", "mwmbl"]], "searx.babel_extract": [[95, 0, 1, "", "extract"]], "searx.botdetection": [[96, 1, 0, "-", "config"], [96, 0, 1, "", "get_network"], [96, 0, 1, "", "get_real_ip"], [96, 1, 0, "-", "http_accept"], [96, 1, 0, "-", "http_accept_encoding"], [96, 1, 0, "-", "http_accept_language"], [96, 1, 0, "-", "http_connection"], [96, 1, 0, "-", "http_user_agent"], [96, 1, 0, "-", "ip_limit"], [96, 1, 0, "-", "ip_lists"], [96, 1, 0, "-", "link_token"], [96, 0, 1, "", "too_many_requests"]], "searx.botdetection.config": [[96, 2, 1, "", "Config"], [96, 4, 1, "", "SchemaIssue"]], "searx.botdetection.config.Config": [[96, 3, 1, "", "default"], [96, 3, 1, "", "get"], [96, 3, 1, "", "path"], [96, 3, 1, "", "pyobj"], [96, 3, 1, "", "set"], [96, 3, 1, "", "update"], [96, 3, 1, "", "validate"]], "searx.botdetection.http_user_agent": [[96, 5, 1, "", "USER_AGENT"]], "searx.botdetection.ip_limit": [[96, 5, 1, "", "API_MAX"], [96, 5, 1, "", "API_WINDOW"], [96, 5, 1, "", "BURST_MAX"], [96, 5, 1, "", "BURST_MAX_SUSPICIOUS"], [96, 5, 1, "", "BURST_WINDOW"], [96, 5, 1, "", "LONG_MAX"], [96, 5, 1, "", "LONG_MAX_SUSPICIOUS"], [96, 5, 1, "", "LONG_WINDOW"], [96, 5, 1, "", "SUSPICIOUS_IP_MAX"], [96, 5, 1, "", "SUSPICIOUS_IP_WINDOW"]], "searx.botdetection.ip_lists": [[96, 5, 1, "", "SEARXNG_ORG"], [96, 0, 1, "", "block_ip"], [96, 0, 1, "", "pass_ip"]], "searx.botdetection.link_token": [[96, 5, 1, "", "PING_KEY"], [96, 5, 1, "", "PING_LIVE_TIME"], [96, 5, 1, "", "TOKEN_KEY"], [96, 5, 1, "", "TOKEN_LIVE_TIME"], [96, 0, 1, "", "get_ping_key"], [96, 0, 1, "", "get_token"], [96, 0, 1, "", "is_suspicious"], [96, 0, 1, "", "ping"]], "searx.enginelib": [[31, 2, 1, "", "Engine"], [31, 1, 0, "-", "traits"]], "searx.enginelib.Engine": [[31, 6, 1, "", "about"], [31, 6, 1, "", "categories"], [31, 6, 1, "", "disabled"], [31, 6, 1, "", "display_error_messages"], [31, 6, 1, "", "enable_http"], [31, 6, 1, "", "engine"], [31, 6, 1, "", "engine_type"], [31, 6, 1, "", "fetch_traits"], [31, 6, 1, "", "inactive"], [31, 6, 1, "", "language"], [31, 6, 1, "", "language_support"], [31, 6, 1, "", "name"], [31, 6, 1, "", "paging"], [31, 6, 1, "", "proxies"], [31, 6, 1, "", "region"], [31, 6, 1, "", "safesearch"], [31, 6, 1, "", "send_accept_language_header"], [31, 6, 1, "", "shortcut"], [31, 6, 1, "", "time_range_support"], [31, 6, 1, "", "timeout"], [31, 6, 1, "", "tokens"], [31, 6, 1, "", "traits"], [31, 6, 1, "", "using_tor_proxy"]], "searx.enginelib.traits": [[31, 2, 1, "", "EngineTraits"], [31, 2, 1, "", "EngineTraitsEncoder"], [31, 2, 1, "", "EngineTraitsMap"]], "searx.enginelib.traits.EngineTraits": [[31, 6, 1, "", "all_locale"], [31, 3, 1, "", "copy"], [31, 6, 1, "", "custom"], [31, 6, 1, "", "data_type"], [31, 3, 1, "", "fetch_traits"], [31, 3, 1, "", "get_language"], [31, 3, 1, "", "get_region"], [31, 3, 1, "", "is_locale_supported"], [31, 6, 1, "", "languages"], [31, 6, 1, "", "regions"], [31, 3, 1, "", "set_traits"]], "searx.enginelib.traits.EngineTraitsEncoder": [[31, 3, 1, "", "default"]], "searx.enginelib.traits.EngineTraitsMap": [[31, 6, 1, "", "ENGINE_TRAITS_FILE"], [31, 3, 1, "", "from_data"], [31, 3, 1, "", "save_data"], [31, 3, 1, "", "set_traits"]], "searx.engines": [[40, 1, 0, "-", "alpinelinux"], [41, 1, 0, "-", "annas_archive"], [42, 1, 0, "-", "archlinux"], [43, 1, 0, "-", "bing"], [43, 1, 0, "-", "bing_images"], [43, 1, 0, "-", "bing_news"], [43, 1, 0, "-", "bing_videos"], [44, 1, 0, "-", "bpb"], [45, 1, 0, "-", "brave"], [46, 1, 0, "-", "bt4g"], [35, 1, 0, "-", "command"], [47, 1, 0, "-", "dailymotion"], [28, 1, 0, "-", "demo_offline"], [29, 1, 0, "-", "demo_online"], [48, 1, 0, "-", "discourse"], [49, 1, 0, "-", "duckduckgo"], [49, 1, 0, "-", "duckduckgo_definitions"], [49, 1, 0, "-", "duckduckgo_extra"], [49, 1, 0, "-", "duckduckgo_weather"], [37, 1, 0, "-", "elasticsearch"], [32, 5, 1, "", "engine_shortcuts"], [50, 1, 0, "-", "geizhals"], [51, 1, 0, "-", "gitea"], [52, 1, 0, "-", "gitlab"], [53, 1, 0, "-", "google"], [53, 1, 0, "-", "google_images"], [53, 1, 0, "-", "google_news"], [53, 1, 0, "-", "google_scholar"], [53, 1, 0, "-", "google_videos"], [32, 0, 1, "", "is_missing_required_attributes"], [54, 1, 0, "-", "lemmy"], [32, 0, 1, "", "load_engine"], [32, 0, 1, "", "load_engines"], [55, 1, 0, "-", "loc"], [38, 1, 0, "-", "mariadb_server"], [56, 1, 0, "-", "mastodon"], [34, 1, 0, "-", "mediawiki"], [37, 1, 0, "-", "meilisearch"], [36, 1, 0, "-", "mongodb"], [57, 1, 0, "-", "moviepilot"], [58, 1, 0, "-", "mrs"], [59, 1, 0, "-", "mullvad_leta"], [60, 1, 0, "-", "mwmbl"], [38, 1, 0, "-", "mysql_server"], [61, 1, 0, "-", "odysee"], [62, 1, 0, "-", "peertube"], [63, 1, 0, "-", "piped"], [38, 1, 0, "-", "postgresql"], [64, 1, 0, "-", "presearch"], [65, 1, 0, "-", "qwant"], [66, 1, 0, "-", "radio_browser"], [67, 1, 0, "-", "recoll"], [36, 1, 0, "-", "redis_server"], [68, 1, 0, "-", "seekr"], [62, 1, 0, "-", "sepiasearch"], [37, 1, 0, "-", "solr"], [38, 1, 0, "-", "sqlite"], [69, 1, 0, "-", "startpage"], [70, 1, 0, "-", "tagesschau"], [78, 1, 0, "-", "tineye"], [71, 1, 0, "-", "torznab"], [32, 0, 1, "", "using_tor_proxy"], [72, 1, 0, "-", "voidlinux"], [73, 1, 0, "-", "wallhaven"], [74, 1, 0, "-", "wikidata"], [74, 1, 0, "-", "wikipedia"], [79, 1, 0, "-", "xpath"], [75, 1, 0, "-", "yacy"], [76, 1, 0, "-", "yahoo"], [77, 1, 0, "-", "zlibrary"]], "searx.engines.alpinelinux": [[40, 5, 1, "", "ARCH_RE"], [40, 5, 1, "", "alpine_arch"]], "searx.engines.annas_archive": [[41, 5, 1, "", "aa_content"], [41, 5, 1, "", "aa_ext"], [41, 5, 1, "", "aa_sort"], [41, 0, 1, "", "fetch_traits"], [41, 0, 1, "", "init"]], "searx.engines.archlinux": [[42, 0, 1, "", "fetch_traits"]], "searx.engines.bing": [[43, 5, 1, "", "base_url"], [43, 0, 1, "", "fetch_traits"], [43, 5, 1, "", "max_page"], [43, 0, 1, "", "request"], [43, 5, 1, "", "safesearch"]], "searx.engines.bing_images": [[43, 5, 1, "", "base_url"], [43, 0, 1, "", "request"], [43, 0, 1, "", "response"]], "searx.engines.bing_news": [[43, 5, 1, "", "base_url"], [43, 0, 1, "", "fetch_traits"], [43, 5, 1, "", "paging"], [43, 0, 1, "", "request"], [43, 0, 1, "", "response"], [43, 5, 1, "", "time_map"]], "searx.engines.bing_videos": [[43, 5, 1, "", "base_url"], [43, 0, 1, "", "request"], [43, 0, 1, "", "response"]], "searx.engines.brave": [[45, 6, 1, "", "Goggles"], [45, 5, 1, "", "brave_spellcheck"], [45, 0, 1, "", "fetch_traits"], [45, 5, 1, "", "max_page"], [45, 5, 1, "", "paging"], [45, 5, 1, "", "time_range_support"]], "searx.engines.bt4g": [[46, 5, 1, "", "bt4g_category"], [46, 5, 1, "", "bt4g_order_by"]], "searx.engines.command": [[35, 0, 1, "", "check_parsing_options"]], "searx.engines.dailymotion": [[47, 5, 1, "", "family_filter_map"], [47, 0, 1, "", "fetch_traits"], [47, 5, 1, "", "iframe_src"], [47, 5, 1, "", "result_fields"], [47, 5, 1, "", "safesearch_params"], [47, 5, 1, "", "search_url"]], "searx.engines.demo_offline": [[28, 0, 1, "", "init"], [28, 0, 1, "", "search"]], "searx.engines.demo_online": [[29, 0, 1, "", "init"], [29, 0, 1, "", "request"], [29, 0, 1, "", "response"]], "searx.engines.discourse": [[48, 5, 1, "", "api_key"], [48, 5, 1, "", "api_order"], [48, 5, 1, "", "api_username"], [48, 5, 1, "", "base_url"], [48, 5, 1, "", "search_endpoint"], [48, 5, 1, "", "show_avatar"]], "searx.engines.duckduckgo": [[49, 0, 1, "", "cache_vqd"], [49, 0, 1, "", "fetch_traits"], [49, 0, 1, "", "get_ddg_lang"], [49, 0, 1, "", "get_vqd"], [49, 0, 1, "", "is_ddg_captcha"], [49, 5, 1, "", "send_accept_language_header"]], "searx.engines.duckduckgo_definitions": [[49, 0, 1, "", "area_to_str"], [49, 0, 1, "", "is_broken_text"]], "searx.engines.duckduckgo_extra": [[49, 5, 1, "", "ddg_category"]], "searx.engines.gitea": [[51, 5, 1, "", "base_url"], [51, 5, 1, "", "order"], [51, 5, 1, "", "page_size"], [51, 5, 1, "", "sort"]], "searx.engines.gitlab": [[52, 5, 1, "", "api_path"], [52, 5, 1, "", "base_url"]], "searx.engines.google": [[53, 5, 1, "", "UI_ASYNC"], [53, 0, 1, "", "fetch_traits"], [53, 0, 1, "", "get_google_info"], [53, 0, 1, "", "request"], [53, 0, 1, "", "response"]], "searx.engines.google_images": [[53, 0, 1, "", "request"], [53, 0, 1, "", "response"]], "searx.engines.google_news": [[53, 5, 1, "", "ceid_list"], [53, 0, 1, "", "request"], [53, 0, 1, "", "response"]], "searx.engines.google_scholar": [[53, 0, 1, "", "detect_google_captcha"], [53, 0, 1, "", "parse_gs_a"], [53, 0, 1, "", "request"], [53, 0, 1, "", "response"], [53, 0, 1, "", "time_range_args"]], "searx.engines.google_videos": [[53, 0, 1, "", "request"], [53, 0, 1, "", "response"]], "searx.engines.lemmy": [[54, 5, 1, "", "base_url"], [54, 5, 1, "", "lemmy_type"]], "searx.engines.mariadb_server": [[38, 5, 1, "", "database"], [38, 5, 1, "", "host"], [38, 5, 1, "", "password"], [38, 5, 1, "", "port"], [38, 5, 1, "", "query_str"], [38, 5, 1, "", "username"]], "searx.engines.mediawiki": [[34, 5, 1, "", "api_path"], [34, 5, 1, "", "base_url"], [34, 5, 1, "", "search_type"], [34, 5, 1, "", "srenablerewrites"], [34, 5, 1, "", "srprop"], [34, 5, 1, "", "srsort"], [34, 5, 1, "", "timestamp_format"]], "searx.engines.mrs": [[58, 0, 1, "", "init"]], "searx.engines.mullvad_leta": [[59, 0, 1, "", "assign_headers"], [59, 0, 1, "", "fetch_traits"], [59, 0, 1, "", "is_vpn_connected"], [59, 0, 1, "", "response"]], "searx.engines.mysql_server": [[38, 5, 1, "", "database"], [38, 5, 1, "", "host"], [38, 5, 1, "", "password"], [38, 5, 1, "", "port"], [38, 5, 1, "", "query_str"], [38, 5, 1, "", "username"]], "searx.engines.odysee": [[61, 0, 1, "", "fetch_traits"]], "searx.engines.peertube": [[62, 5, 1, "", "base_url"], [62, 0, 1, "", "fetch_traits"], [62, 0, 1, "", "request"], [62, 0, 1, "", "video_response"]], "searx.engines.piped": [[63, 5, 1, "", "backend_url"], [63, 5, 1, "", "frontend_url"], [63, 5, 1, "", "piped_filter"]], "searx.engines.postgresql": [[38, 5, 1, "", "database"], [38, 5, 1, "", "host"], [38, 5, 1, "", "password"], [38, 5, 1, "", "port"], [38, 5, 1, "", "query_str"], [38, 5, 1, "", "username"]], "searx.engines.presearch": [[64, 5, 1, "", "search_type"]], "searx.engines.qwant": [[65, 5, 1, "", "api_url"], [65, 5, 1, "", "max_page"], [65, 0, 1, "", "parse_web_api"], [65, 0, 1, "", "parse_web_lite"], [65, 5, 1, "", "qwant_categ"], [65, 0, 1, "", "request"], [65, 5, 1, "", "web_lite_url"]], "searx.engines.radio_browser": [[66, 0, 1, "", "fetch_traits"], [66, 5, 1, "", "station_filters"]], "searx.engines.seekr": [[68, 5, 1, "", "api_key"], [68, 5, 1, "", "seekr_category"]], "searx.engines.sepiasearch": [[62, 0, 1, "", "request"]], "searx.engines.sqlite": [[38, 5, 1, "", "database"], [38, 5, 1, "", "query_str"], [38, 0, 1, "", "sqlite_cursor"]], "searx.engines.startpage": [[69, 0, 1, "", "fetch_traits"], [69, 0, 1, "", "get_sc_code"], [69, 5, 1, "", "max_page"], [69, 0, 1, "", "request"], [69, 5, 1, "", "sc_code_cache_sec"], [69, 5, 1, "", "search_form_xpath"], [69, 5, 1, "", "send_accept_language_header"], [69, 5, 1, "", "startpage_categ"]], "searx.engines.tagesschau": [[70, 5, 1, "", "use_source_url"]], "searx.engines.tineye": [[78, 5, 1, "", "DOWNLOAD_ERROR"], [78, 5, 1, "", "FORMAT_NOT_SUPPORTED"], [78, 5, 1, "", "NO_SIGNATURE_ERROR"], [78, 5, 1, "", "engine_type"], [78, 0, 1, "", "parse_tineye_match"], [78, 0, 1, "", "request"], [78, 0, 1, "", "response"]], "searx.engines.torznab": [[71, 0, 1, "", "build_result"], [71, 0, 1, "", "get_attribute"], [71, 0, 1, "", "get_torznab_attribute"], [71, 0, 1, "", "init"], [71, 0, 1, "", "request"], [71, 0, 1, "", "response"]], "searx.engines.voidlinux": [[72, 5, 1, "", "ARCH_RE"], [72, 0, 1, "", "response"], [72, 5, 1, "", "void_arch"]], "searx.engines.wallhaven": [[73, 5, 1, "", "api_key"], [73, 5, 1, "", "safesearch_map"]], "searx.engines.wikidata": [[74, 5, 1, "", "display_type"], [74, 0, 1, "", "fetch_traits"], [74, 0, 1, "", "get_thumbnail"]], "searx.engines.wikipedia": [[74, 5, 1, "", "display_type"], [74, 0, 1, "", "fetch_wikimedia_traits"], [74, 0, 1, "", "get_wiki_params"], [74, 5, 1, "", "list_of_wikipedias"], [74, 0, 1, "", "request"], [74, 5, 1, "", "rest_v1_summary_url"], [74, 5, 1, "", "send_accept_language_header"], [74, 5, 1, "", "wiki_lc_locale_variants"], [74, 5, 1, "", "wikipedia_article_depth"]], "searx.engines.xpath": [[79, 5, 1, "", "content_xpath"], [79, 5, 1, "", "cookies"], [79, 5, 1, "", "first_page_num"], [79, 5, 1, "", "headers"], [79, 5, 1, "", "lang_all"], [79, 5, 1, "", "no_result_for_http_status"], [79, 5, 1, "", "page_size"], [79, 5, 1, "", "paging"], [79, 0, 1, "", "request"], [79, 0, 1, "", "response"], [79, 5, 1, "", "results_xpath"], [79, 5, 1, "", "safe_search_map"], [79, 5, 1, "", "safe_search_support"], [79, 5, 1, "", "search_url"], [79, 5, 1, "", "soft_max_redirects"], [79, 5, 1, "", "suggestion_xpath"], [79, 5, 1, "", "thumbnail_xpath"], [79, 5, 1, "", "time_range_map"], [79, 5, 1, "", "time_range_support"], [79, 5, 1, "", "time_range_url"], [79, 5, 1, "", "title_xpath"], [79, 5, 1, "", "url_xpath"]], "searx.engines.yacy": [[75, 5, 1, "", "base_url"], [75, 5, 1, "", "http_digest_auth_pass"], [75, 5, 1, "", "http_digest_auth_user"], [75, 5, 1, "", "search_mode"], [75, 5, 1, "", "search_type"]], "searx.engines.yahoo": [[76, 0, 1, "", "fetch_traits"], [76, 5, 1, "", "lang2domain"], [76, 0, 1, "", "parse_url"], [76, 0, 1, "", "request"], [76, 0, 1, "", "response"]], "searx.engines.zlibrary": [[77, 0, 1, "", "fetch_traits"], [77, 0, 1, "", "init"], [77, 5, 1, "", "zlib_ext"], [77, 5, 1, "", "zlib_year_from"], [77, 5, 1, "", "zlib_year_to"]], "searx.exceptions": [[97, 4, 1, "", "SearxEngineAPIException"], [97, 4, 1, "", "SearxEngineAccessDeniedException"], [97, 4, 1, "", "SearxEngineCaptchaException"], [97, 4, 1, "", "SearxEngineException"], [97, 4, 1, "", "SearxEngineResponseException"], [97, 4, 1, "", "SearxEngineTooManyRequestsException"], [97, 4, 1, "", "SearxEngineXPathException"], [97, 4, 1, "", "SearxException"], [97, 4, 1, "", "SearxParameterException"], [97, 4, 1, "", "SearxSettingsException"], [97, 4, 1, "", "SearxXPathSyntaxException"]], "searx.exceptions.SearxEngineAccessDeniedException": [[97, 6, 1, "", "SUSPEND_TIME_SETTING"]], "searx.exceptions.SearxEngineCaptchaException": [[97, 6, 1, "", "SUSPEND_TIME_SETTING"]], "searx.exceptions.SearxEngineTooManyRequestsException": [[97, 6, 1, "", "SUSPEND_TIME_SETTING"]], "searx.favicons": [[98, 1, 0, "-", "cache"], [98, 1, 0, "-", "config"], [98, 0, 1, "", "favicon_proxy"], [98, 0, 1, "", "favicon_url"], [98, 1, 0, "-", "proxy"], [98, 1, 0, "-", "resolvers"]], "searx.favicons.cache": [[98, 2, 1, "", "FaviconCache"], [98, 2, 1, "", "FaviconCacheConfig"], [98, 2, 1, "", "FaviconCacheMEM"], [98, 2, 1, "", "FaviconCacheNull"], [98, 2, 1, "", "FaviconCacheSQLite"], [98, 2, 1, "", "FaviconCacheStats"], [98, 0, 1, "", "init"], [98, 0, 1, "", "maintenance"], [98, 0, 1, "", "state"]], "searx.favicons.cache.FaviconCache": [[98, 3, 1, "", "maintenance"], [98, 3, 1, "", "set"], [98, 3, 1, "", "state"]], "searx.favicons.cache.FaviconCacheConfig": [[98, 6, 1, "", "BLOB_MAX_BYTES"], [98, 6, 1, "", "HOLD_TIME"], [98, 6, 1, "", "LIMIT_TOTAL_BYTES"], [98, 6, 1, "", "MAINTENANCE_MODE"], [98, 6, 1, "", "MAINTENANCE_PERIOD"], [98, 6, 1, "", "db_type"], [98, 6, 1, "", "db_url"]], "searx.favicons.cache.FaviconCacheMEM": [[98, 3, 1, "", "maintenance"], [98, 3, 1, "", "set"], [98, 3, 1, "", "state"]], "searx.favicons.cache.FaviconCacheNull": [[98, 3, 1, "", "maintenance"], [98, 3, 1, "", "set"], [98, 3, 1, "", "state"]], "searx.favicons.cache.FaviconCacheSQLite": [[98, 6, 1, "", "DB_SCHEMA"], [98, 6, 1, "", "DDL_BLOBS"], [98, 6, 1, "", "DDL_BLOB_MAP"], [98, 6, 1, "", "SQL_DROP_LEFTOVER_BLOBS"], [98, 3, 1, "", "maintenance"], [98, 7, 1, "", "next_maintenance_time"], [98, 3, 1, "", "set"], [98, 3, 1, "", "state"]], "searx.favicons.config": [[98, 5, 1, "", "CONFIG_SCHEMA"], [98, 2, 1, "", "FaviconConfig"], [98, 5, 1, "", "TOML_CACHE_CFG"]], "searx.favicons.config.FaviconConfig": [[98, 6, 1, "", "cache"], [98, 6, 1, "", "cfg_schema"], [98, 3, 1, "", "from_toml_file"], [98, 6, 1, "", "proxy"]], "searx.favicons.proxy": [[98, 2, 1, "", "FaviconProxyConfig"], [98, 0, 1, "", "favicon_proxy"], [98, 0, 1, "", "favicon_url"], [98, 0, 1, "", "search_favicon"]], "searx.favicons.proxy.FaviconProxyConfig": [[98, 3, 1, "", "favicon"], [98, 3, 1, "", "favicon_data_url"], [98, 3, 1, "", "get_resolver"], [98, 6, 1, "", "max_age"], [98, 6, 1, "", "resolver_map"], [98, 6, 1, "", "resolver_timeout"], [98, 6, 1, "", "secret_key"]], "searx.favicons.resolvers": [[98, 0, 1, "", "allesedv"], [98, 0, 1, "", "duckduckgo"], [98, 0, 1, "", "google"], [98, 0, 1, "", "yandex"]], "searx.infopage": [[99, 2, 1, "", "InfoPage"], [99, 2, 1, "", "InfoPageSet"]], "searx.infopage.InfoPage": [[99, 7, 1, "", "content"], [99, 3, 1, "", "get_ctx"], [99, 7, 1, "", "html"], [99, 7, 1, "", "raw_content"], [99, 7, 1, "", "title"]], "searx.infopage.InfoPageSet": [[99, 6, 1, "", "folder"], [99, 3, 1, "", "get_page"], [99, 3, 1, "", "iter_pages"], [99, 6, 1, "", "locale_default"], [99, 6, 1, "", "locales"], [99, 6, 1, "", "toc"]], "searx.limiter": [[14, 5, 1, "", "LIMITER_CFG_SCHEMA"], [14, 0, 1, "", "initialize"], [14, 0, 1, "", "is_installed"], [14, 0, 1, "", "pre_request"]], "searx.locales": [[100, 5, 1, "", "ADDITIONAL_TRANSLATIONS"], [100, 5, 1, "", "LOCALE_BEST_MATCH"], [100, 5, 1, "", "LOCALE_NAMES"], [100, 5, 1, "", "RTL_LOCALES"], [100, 0, 1, "", "build_engine_locales"], [100, 0, 1, "", "get_engine_locale"], [100, 0, 1, "", "get_locale"], [100, 0, 1, "", "get_official_locales"], [100, 0, 1, "", "get_translation_locales"], [100, 0, 1, "", "get_translations"], [100, 0, 1, "", "language_tag"], [100, 0, 1, "", "locales_initialize"], [100, 0, 1, "", "match_locale"], [100, 0, 1, "", "region_tag"]], "searx.plugins": [[101, 1, 0, "-", "hostnames"], [102, 1, 0, "-", "tor_check"], [103, 1, 0, "-", "unit_converter"]], "searx.plugins.tor_check": [[102, 5, 1, "", "description"], [102, 5, 1, "", "name"], [102, 5, 1, "", "preference_section"], [102, 5, 1, "", "query_examples"], [102, 5, 1, "", "query_keywords"]], "searx.plugins.unit_converter": [[103, 5, 1, "", "ADDITIONAL_UNITS"], [103, 5, 1, "", "ALIAS_SYMBOLS"], [103, 0, 1, "", "symbol_to_si"]], "searx.redisdb": [[104, 5, 1, "", "OLD_REDIS_URL_DEFAULT_URL"]], "searx.redislib": [[105, 5, 1, "", "LUA_SCRIPT_STORAGE"], [105, 0, 1, "", "drop_counter"], [105, 0, 1, "", "incr_counter"], [105, 0, 1, "", "incr_sliding_window"], [105, 0, 1, "", "lua_script_storage"], [105, 0, 1, "", "purge_by_prefix"], [105, 0, 1, "", "secret_hash"]], "searx.search": [[106, 2, 1, "", "EngineRef"], [106, 2, 1, "", "Search"], [106, 2, 1, "", "SearchQuery"], [106, 2, 1, "", "SearchWithPlugins"]], "searx.search.Search": [[106, 6, 1, "", "result_container"], [106, 3, 1, "", "search"], [106, 6, 1, "", "search_query"]], "searx.search.SearchWithPlugins": [[106, 6, 1, "", "ordered_plugin_list"], [106, 6, 1, "", "request"], [106, 6, 1, "", "result_container"], [106, 3, 1, "", "search"], [106, 6, 1, "", "search_query"]], "searx.search.processors": [[107, 1, 0, "-", "abstract"], [107, 1, 0, "-", "offline"], [107, 1, 0, "-", "online"], [107, 1, 0, "-", "online_currency"], [107, 1, 0, "-", "online_dictionary"], [107, 1, 0, "-", "online_url_search"]], "searx.search.processors.abstract": [[107, 2, 1, "", "EngineProcessor"], [107, 2, 1, "", "SuspendedStatus"]], "searx.search.processors.abstract.EngineProcessor": [[107, 3, 1, "", "get_params"]], "searx.search.processors.offline": [[107, 2, 1, "", "OfflineProcessor"]], "searx.search.processors.online": [[107, 2, 1, "", "OnlineProcessor"], [107, 0, 1, "", "default_request_params"]], "searx.search.processors.online.OnlineProcessor": [[107, 3, 1, "", "get_params"]], "searx.search.processors.online_currency": [[107, 2, 1, "", "OnlineCurrencyProcessor"]], "searx.search.processors.online_currency.OnlineCurrencyProcessor": [[107, 3, 1, "", "get_params"]], "searx.search.processors.online_dictionary": [[107, 2, 1, "", "OnlineDictionaryProcessor"]], "searx.search.processors.online_dictionary.OnlineDictionaryProcessor": [[107, 3, 1, "", "get_params"]], "searx.search.processors.online_url_search": [[107, 2, 1, "", "OnlineUrlSearchProcessor"]], "searx.search.processors.online_url_search.OnlineUrlSearchProcessor": [[107, 3, 1, "", "get_params"]], "searx.settings_loader": [[108, 5, 1, "", "DEFAULT_SETTINGS_FILE"], [108, 0, 1, "", "get_user_cfg_folder"], [108, 0, 1, "", "get_yaml_cfg"], [108, 0, 1, "", "load_settings"], [108, 0, 1, "", "load_yaml"]], "searx.sqlitedb": [[109, 2, 1, "", "SQLiteAppl"], [109, 2, 1, "", "SQLiteProperties"]], "searx.sqlitedb.SQLiteAppl": [[109, 7, 1, "", "DB"], [109, 6, 1, "", "DB_SCHEMA"], [109, 6, 1, "", "SQLITE_CONNECT_ARGS"], [109, 6, 1, "", "SQLITE_THREADING_MODE"], [109, 3, 1, "", "connect"], [109, 3, 1, "", "init"], [109, 3, 1, "", "register_functions"]], "searx.sqlitedb.SQLiteProperties": [[109, 6, 1, "", "DDL_PROPERTIES"], [109, 6, 1, "", "SQLITE_CONNECT_ARGS"], [109, 3, 1, "", "init"], [109, 3, 1, "", "m_time"], [109, 3, 1, "", "row"], [109, 3, 1, "", "set"]], "searx.sxng_locales": [[100, 5, 1, "", "sxng_locales"]], "searx.utils": [[110, 5, 1, "", "SEARCH_LANGUAGE_CODES"], [110, 0, 1, "", "convert_str_to_int"], [110, 0, 1, "", "detect_language"], [110, 0, 1, "", "dict_subset"], [110, 0, 1, "", "ecma_unescape"], [110, 0, 1, "", "eval_xpath"], [110, 0, 1, "", "eval_xpath_getindex"], [110, 0, 1, "", "eval_xpath_list"], [110, 0, 1, "", "extr"], [110, 0, 1, "", "extract_text"], [110, 0, 1, "", "extract_url"], [110, 0, 1, "", "gen_useragent"], [110, 0, 1, "", "get_embeded_stream_url"], [110, 0, 1, "", "get_engine_from_settings"], [110, 0, 1, "", "get_xpath"], [110, 0, 1, "", "html_to_text"], [110, 0, 1, "", "humanize_bytes"], [110, 0, 1, "", "humanize_number"], [110, 0, 1, "", "int_or_zero"], [110, 0, 1, "", "is_valid_lang"], [110, 0, 1, "", "js_variable_to_python"], [110, 0, 1, "", "markdown_to_text"], [110, 0, 1, "", "normalize_url"], [110, 0, 1, "", "searx_useragent"], [110, 0, 1, "", "to_string"]]}, "objnames": {"0": ["py", "function", "Python function"], "1": ["py", "module", "Python module"], "2": ["py", "class", "Python class"], "3": ["py", "method", "Python method"], "4": ["py", "exception", "Python exception"], "5": ["py", "data", "Python data"], "6": ["py", "attribute", "Python attribute"], "7": ["py", "property", "Python property"]}, "objtypes": {"0": "py:function", "1": "py:module", "2": "py:class", "3": "py:method", "4": "py:exception", "5": "py:data", "6": "py:attribute", "7": "py:property"}, "terms": {"": [3, 4, 5, 7, 10, 13, 19, 23, 25, 26, 27, 30, 31, 33, 36, 38, 39, 45, 46, 47, 49, 53, 56, 57, 61, 62, 63, 64, 65, 68, 69, 74, 77, 79, 80, 81, 82, 84, 85, 91, 92, 93, 94, 95, 96, 98, 102, 105, 109, 110, 111, 116, 117], "0": [0, 1, 2, 6, 7, 8, 10, 11, 14, 16, 19, 21, 22, 23, 24, 26, 27, 30, 36, 38, 47, 57, 69, 73, 78, 79, 81, 82, 85, 86, 87, 96, 98, 104, 105, 106, 109, 110, 112, 115, 116, 117], "00": [11, 116], "000": 6, "01": 11, "018": 30, "04": [82, 114, 116], "04f8": 96, "07848": 30, "0pointer": 11, "0xa9": 85, "1": [0, 1, 3, 6, 7, 8, 10, 11, 13, 14, 19, 21, 22, 23, 24, 34, 36, 38, 47, 69, 73, 79, 81, 82, 85, 86, 87, 96, 97, 98, 100, 103, 105, 106, 107, 109, 110, 112, 116, 117], "10": [6, 10, 14, 19, 21, 30, 37, 45, 51, 69, 85, 96, 112], "100": [10, 19, 21, 73, 78, 92, 111, 112], "100m": 103, "100mi": 103, "1024": [30, 110], "1024b": 110, "1038": 30, "1080": [19, 30], "10min": 13, "11": [10, 86, 109, 116], "110": 73, "111": 73, "118172": 109, "12": [11, 82, 86, 109], "120": [10, 23, 27], "123": 114, "123873": 109, "126": [10, 21], "127": [0, 6, 8, 10, 24, 36, 38, 81, 117], "128": 11, "1296000": [10, 23], "13": [7, 11, 82, 116], "1332": 26, "1337x": 112, "135": 85, "14": [3, 82], "140": [81, 116], "1476": 30, "15": [96, 103, 112, 116], "150": [53, 96, 116], "158": 96, "1595": 26, "15px": 85, "16": [6, 10, 14, 47, 69, 82, 96], "160": 116, "1609": 103, "167": 96, "168": [6, 14, 21, 79, 96], "1691": 21, "170": 116, "1744": 81, "18": 69, "180": 85, "184": [14, 96], "186": 11, "19": [82, 116], "192": [6, 14, 21, 96], "1920": 30, "1991": 43, "1c1c": 96, "1h": [13, 49], "1kb": 110, "1m": 103, "1mi": 103, "1x": 112, "2": [2, 10, 11, 13, 21, 23, 30, 47, 66, 69, 73, 78, 79, 82, 84, 85, 86, 87, 96, 105, 110, 112, 114], "20": [10, 13, 36, 49, 69, 82, 96, 110, 116], "200": [10, 43, 82, 92], "2000": 85, "200331": 116, "2005": 69, "2010": 77, "2013": 11, "2014": 11, "2020": 77, "2020er": 57, "2021": [53, 92, 98], "2022": [53, 68], "2023": 82, "2025": 116, "2027": 116, "20480": 98, "209": 7, "2099": 11, "210": 112, "2104": 98, "2122": 85, "2147483648": 13, "216": [14, 81, 96], "22": [82, 116], "22fb": 68, "23": 82, "235": 96, "24": [79, 114], "2425uwsgi": 11, "25": 85, "251": 96, "2554": 74, "257": [14, 96], "2592000": [96, 98], "262": 110, "27017": 36, "273": 103, "2923": 116, "296": 116, "2a01": 96, "2af9": 81, "2f998": 7, "2f998d725993": 7, "3": [7, 10, 19, 38, 63, 82, 85, 86, 96, 98, 105, 109, 110, 112, 116], "30": [13, 21, 69, 79, 112], "300": 30, "3000": 10, "302": 82, "308": 6, "308mb": 7, "32": 14, "3306": 38, "33691240": 74, "34": [14, 96], "344": 103, "3463": 101, "35": 116, "3552": 101, "3600": [10, 23, 96, 98], "365": 79, "3660": 97, "370": 85, "39": 82, "3986": 98, "3aen": 82, "3eff": 81, "3xx": 82, "4": [10, 11, 30, 43, 82, 85, 96, 105, 112], "40": 13, "400": [19, 85], "402": [10, 23], "403": [10, 19, 23], "404": 19, "40960": 13, "40px": 85, "419": 53, "42": [110, 116], "4217": 30, "429": [10, 19, 23, 96], "43": 11, "44": 11, "443": 82, "456": 26, "4687": 30, "471efef6c73558e391c3adb35f4": 82, "47712402": 116, "48": 14, "49586c016434": 7, "5": [7, 10, 19, 21, 23, 38, 65, 69, 85, 96, 105, 112], "50": [13, 78, 85], "500": 85, "50593": 27, "5184000": 13, "52": 116, "52428800": 98, "525": 85, "5432": 38, "548": 114, "555b": 81, "585": 85, "599": 19, "6": [82, 85, 86, 105, 110, 112], "60": [13, 92], "600": [13, 96], "6000": 13, "604800": [10, 13, 23, 98], "60a2": 21, "61mb": 7, "6379": [22, 36], "639": [34, 69, 79, 110], "64": [96, 105], "666": 11, "68": 10, "6cea6eb6def9e14a18bf32f8a3": 82, "6dbb9cc54074": 7, "7": [7, 10, 13, 43, 79, 82, 112], "70": 92, "700": 85, "7000": 47, "7048": 116, "70px": 85, "720": 79, "752": 11, "755": 24, "7700": 37, "7851230": 116, "8": [6, 11, 45, 82, 85, 86, 116], "80": 8, "8000": 27, "8080": [0, 7, 10, 19, 21, 81, 116], "817": 117, "8192": 11, "822": 85, "833067": 11, "85": 112, "86400": [10, 11, 23, 97], "8760": 79, "8888": [6, 8, 10, 24, 81, 117], "8983": 37, "8ed5c729": 62, "8fbf8ab": 82, "8fc2": 96, "8k": 8, "9": [43, 45, 82, 86, 109, 112], "92": 11, "9200": 37, "93": [11, 14, 96], "9780201896831": 30, "99": 49, "993": 11, "9c823800": 7, "9g": 112, "9gag": 112, "A": [7, 13, 14, 18, 19, 21, 22, 26, 27, 30, 31, 35, 43, 49, 53, 57, 62, 66, 74, 83, 85, 95, 98, 99, 100, 101, 102, 103, 104, 105, 107, 110, 116], "AND": [96, 101], "AS": [38, 109], "AT": 53, "And": [6, 81, 85, 96], "As": [11, 13, 14, 16, 19, 26, 49, 69, 93, 96, 98, 109, 116], "At": [10, 37, 38, 53, 60, 72, 85, 116], "BE": [10, 23, 31, 53, 100], "BY": 38, "Be": [6, 11, 19, 71], "But": [19, 37, 83, 116], "By": [11, 13, 19, 21, 24, 36, 38, 47, 49, 54, 57, 64, 66, 67, 75, 96, 97, 98, 100, 108, 110, 115, 116], "For": [3, 6, 8, 9, 10, 11, 13, 14, 19, 23, 27, 30, 31, 34, 36, 38, 41, 46, 49, 53, 57, 63, 65, 66, 69, 72, 74, 77, 81, 82, 85, 87, 91, 93, 96, 100, 109, 111, 116], "IF": [98, 109], "IN": [53, 98], "IT": [10, 23, 53], "If": [0, 3, 5, 6, 7, 8, 9, 10, 11, 13, 16, 17, 18, 19, 21, 25, 26, 27, 29, 31, 32, 34, 35, 36, 37, 38, 39, 43, 48, 49, 51, 53, 54, 59, 64, 73, 76, 79, 81, 82, 83, 84, 85, 86, 92, 93, 96, 98, 100, 101, 103, 105, 108, 109, 110, 111, 115, 116], "In": [0, 6, 7, 8, 9, 10, 11, 13, 14, 16, 18, 19, 21, 22, 26, 27, 28, 29, 30, 31, 33, 34, 36, 45, 49, 53, 63, 64, 69, 75, 80, 83, 85, 86, 88, 96, 101, 108, 109, 112, 114, 115, 116, 117], "It": [7, 16, 19, 27, 30, 31, 37, 38, 46, 49, 57, 71, 77, 85, 87, 102, 110, 111, 116], "Its": [72, 98], "NO": [53, 69], "NOT": [98, 109], "Not": [49, 73, 74, 85, 93, 107], "ON": 98, "OR": 38, "On": [6, 7, 18, 21, 43, 81], "One": [11, 34, 65, 75], "Or": [19, 85], "Suche": 42, "That": [56, 85], "The": [0, 1, 2, 3, 4, 5, 7, 9, 10, 11, 13, 14, 16, 19, 21, 23, 24, 25, 26, 28, 29, 31, 33, 34, 35, 36, 37, 38, 39, 41, 42, 43, 45, 46, 47, 49, 50, 51, 52, 53, 54, 58, 59, 63, 64, 65, 66, 68, 69, 70, 71, 74, 75, 77, 78, 79, 82, 83, 85, 86, 87, 91, 93, 95, 96, 97, 98, 100, 101, 102, 103, 105, 108, 109, 110, 111, 112, 115, 116, 117], "Then": 22, "There": [6, 8, 11, 27, 43, 47, 84, 85, 91, 110, 116], "These": [30, 85], "To": [3, 6, 7, 9, 10, 11, 13, 14, 19, 22, 23, 26, 27, 28, 29, 30, 31, 36, 38, 39, 41, 43, 45, 47, 48, 49, 50, 53, 69, 74, 79, 81, 82, 84, 85, 86, 91, 93, 96, 100, 111, 114, 116, 117], "With": [0, 6, 7, 13, 16, 35, 38, 41, 46, 77, 81, 82, 85, 86, 116], "_": [32, 85], "__": 85, "__name__": 85, "_anchor": 85, "_chapter": 85, "_doc": 85, "_dot": 85, "_fmt": 53, "_info_pag": 99, "_lang": 60, "_non_overwritten_glob": 30, "_notsetclass": 110, "_rest": 85, "_section": 85, "_sphinx": 85, "_subsect": 85, "_svg": 85, "a1": 82, "a2disconf": 6, "a2dismod": 6, "a2dissit": 6, "a2enconf": 6, "a2enmod": 6, "a2ensit": 6, "a446dea1b": 82, "aa": 112, "aa_cont": 41, "aa_ext": 41, "aa_sort": 41, "aaa": 41, "aarch64": [40, 72], "abbrevi": [77, 114], "abcd": 110, "abl": [3, 14, 24, 27, 41, 46, 77, 85, 114], "abonti": 96, "about": [2, 10, 19, 26, 27, 31, 44, 45, 52, 73, 81, 82, 84, 92, 113, 116], "abov": [0, 6, 10, 13, 16, 26, 27, 36, 37, 38, 49, 69, 81, 85, 86, 87, 101, 108, 116], "absenc": 85, "absolut": 110, "abstract": [30, 94, 98, 109], "abus": 93, "academ": 77, "accept": [10, 19, 31, 39, 49, 53, 64, 69, 74, 96, 114, 116], "access": [6, 9, 10, 11, 12, 14, 19, 22, 23, 35, 36, 37, 38, 39, 41, 42, 53, 67, 77, 81, 85, 93, 96, 97, 109], "access_log": 8, "accord": [7, 11, 13, 16, 34, 100], "account": [9, 10, 21, 22, 26, 56, 81], "accusam": 85, "achiev": 67, "across": [19, 31], "act": 0, "action": [1, 11, 34], "actionfilm": 57, "activ": [2, 6, 10, 13, 14, 18, 19, 23, 24, 27, 31, 32, 45, 46, 81, 83, 86, 87, 96, 114, 117], "actual": [16, 34, 43, 69, 70], "ad": [11, 18, 19, 22, 31, 37, 39, 49, 60, 69, 84, 85, 91, 93, 95, 96, 100, 101, 109, 111], "adapt": 30, "add": [6, 7, 8, 9, 10, 11, 19, 21, 27, 28, 29, 36, 37, 38, 48, 49, 73, 74, 78, 82, 83, 85, 86, 94, 96, 106, 110, 111], "add_domain": 53, "addgrp": [22, 82], "addit": [3, 6, 11, 13, 18, 19, 21, 24, 31, 36, 38, 39, 41, 46, 48, 50, 51, 53, 54, 65, 68, 70, 75, 77, 82, 85, 91, 95, 96, 98, 100, 103, 112], "addition": [57, 69, 92], "additional_transl": [94, 100], "additional_unit": [94, 103], "address": [10, 12, 14, 19, 20, 21, 24, 30, 42, 74, 93, 102], "adipisici": 85, "adjust": [13, 27, 43, 82], "admin": [10, 19, 39, 81, 85], "administr": [10, 19, 21, 35, 37, 39, 87, 92, 93, 115], "admonit": 80, "adopt": 27, "adorn": 85, "advanc": [10, 21, 39, 66], "advantag": 85, "advertis": 93, "ae": 53, "aef": 11, "af": 110, "af2cae6": 85, "af77ec3": 10, "affect": [13, 25, 26], "after": [10, 13, 23, 57, 74, 82, 83, 85, 98, 110, 116], "ag": [13, 43, 47, 98], "again": [43, 86], "against": [7, 10], "agent": [10, 12, 14, 21, 30, 96, 110, 114], "aggreg": [92, 93, 98, 109, 111], "ago": 7, "agpl": 116, "ah": 49, "ahmia": 10, "ahmia_blacklist": 87, "ahrefsbot": 96, "aim": [37, 44, 85, 94], "aka": [13, 45, 64, 74, 98, 99, 100, 109], "al": [1, 19, 45, 74, 110, 112], "alia": [6, 8, 103], "alias": 103, "alias_symbol": [94, 103], "align": 85, "aliquid": 85, "aliquyam": 85, "aliv": [10, 21], "all": [1, 6, 7, 9, 10, 11, 13, 14, 16, 18, 19, 21, 23, 26, 27, 29, 30, 31, 34, 36, 37, 38, 39, 45, 46, 49, 53, 57, 63, 66, 73, 74, 75, 79, 81, 82, 83, 84, 85, 86, 87, 91, 96, 98, 99, 100, 102, 105, 106, 107, 108, 109, 110, 115, 116, 117], "all_local": [31, 49], "allesedv": [10, 13, 98], "alloc": 0, "allow": [6, 10, 19, 20, 21, 24, 31, 35, 45, 53, 57, 71, 72, 85], "allow_emb": 47, "allow_nan": 31, "allow_non": 110, "allow_redirect": 30, "allowoverrid": 6, "along": 38, "alp": 112, "alpha": 51, "alpin": [7, 33, 112], "alpine_arch": 40, "alpinelinux": [40, 112], "alreadi": [13, 27, 64, 81, 82, 86, 91, 98, 101, 109, 110], "also": [3, 6, 7, 10, 11, 13, 14, 21, 26, 27, 32, 36, 39, 41, 43, 49, 59, 72, 78, 81, 84, 85, 93, 98, 100, 101, 110, 111, 112, 114], "alt": 85, "alter": [27, 45], "altern": [9, 13, 16, 19, 25, 37, 56, 63, 65, 82, 84, 85, 101, 116], "altogeth": 20, "alwai": [7, 8, 21, 26, 27, 30, 43, 46, 53, 93, 116], "am": 110, "ambigu": 103, "amd64": 82, "amet": 85, "among": [27, 93], "amount": [30, 46, 49, 56, 105], "amsmath": 85, "an": [5, 10, 13, 14, 16, 18, 19, 21, 22, 25, 27, 30, 31, 32, 33, 35, 36, 37, 38, 39, 41, 43, 46, 47, 48, 53, 56, 59, 60, 63, 65, 69, 70, 71, 73, 74, 75, 78, 79, 81, 85, 87, 91, 92, 93, 96, 97, 98, 100, 101, 106, 109, 110, 111, 114], "anaconda": 112, "analysi": [3, 14], "anan": 41, "ancel": 85, "anchor": 80, "android": 53, "ani": [5, 6, 8, 9, 13, 21, 27, 38, 45, 46, 49, 54, 57, 64, 68, 71, 74, 76, 82, 85, 86, 87, 96, 98, 99, 100, 110], "anna": [33, 112], "annaarchivist": 41, "annas_arch": [41, 112], "annoi": 85, "anonym": [20, 41, 92, 93, 105, 111], "anoth": [11, 19, 30, 34, 43, 81, 85, 103, 116], "answer": [4, 21, 81, 85, 92, 93], "anymor": [6, 7, 73], "anyon": 92, "anyth": [39, 93, 111], "anywai": 85, "ap": 112, "apach": [2, 4, 9, 11, 14, 26, 92, 116, 117], "apache2": 6, "apache2ctl": 6, "api": [4, 16, 19, 29, 30, 31, 33, 34, 42, 43, 46, 47, 48, 52, 54, 55, 56, 57, 62, 63, 65, 66, 67, 68, 71, 73, 74, 75, 78, 80, 91, 92, 96, 98, 109], "api2u": 70, "api_kei": [19, 30, 48, 68, 71, 73], "api_max": 96, "api_ord": 48, "api_path": [34, 52], "api_url": 65, "api_usernam": 48, "api_window": 96, "apikei": [19, 91], "apiyacysearch": 75, "apk": 112, "apkm": 112, "apkmirror": 112, "apm": 112, "app": [8, 11, 14, 46, 53, 59, 74, 75, 81, 82, 85, 96, 99, 117], "appear": 85, "append": [6, 57], "appl": [108, 112], "apple_app_stor": 112, "apple_map": 112, "appli": [24, 27, 53, 66, 110, 116], "applic": [0, 11, 13, 24, 71, 81, 85, 97, 108, 109, 112], "appreci": 111, "approach": 11, "approv": 73, "approxim": 100, "apr": 116, "april": 116, "apt": [3, 6, 7, 8, 10, 85, 86], "aq": 7, "ar": [1, 3, 7, 9, 10, 11, 13, 14, 16, 18, 19, 21, 24, 25, 26, 27, 31, 33, 35, 36, 37, 38, 39, 41, 43, 45, 47, 48, 49, 51, 52, 53, 54, 55, 57, 63, 64, 65, 66, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 81, 82, 83, 84, 85, 86, 87, 91, 92, 94, 95, 96, 98, 100, 101, 103, 105, 108, 109, 110, 112, 114, 116], "ar_a": 47, "ar_aa": 47, "ar_eg": 47, "ar_sa": 47, "arab": 45, "arbitrari": [10, 35, 36], "arc": 112, "arch": [1, 3, 6, 8, 10, 11, 16, 19, 33, 85, 112], "arch_r": [40, 72], "architectur": [4, 9, 40, 63, 72, 92, 109, 117], "archiv": [10, 25, 33, 82, 96, 112], "archivist": 41, "archlinux": [11, 19, 42, 112, 116], "archlinuxcn": 42, "ard": 70, "area": [43, 45, 49, 78, 109], "area_to_str": 49, "arg": [53, 110], "argument": [11, 12, 27, 34, 41, 42, 53, 66, 69, 77, 85, 96, 98, 100, 105, 109, 116], "armhf": 40, "armv6l": 72, "armv7": 40, "armv7l": 72, "arrai": 30, "arrang": 101, "arrow": 85, "art": [29, 85], "artic": [29, 112], "articl": [7, 13, 30, 41, 74, 77, 79, 80, 81, 99, 105], "arx": 112, "arxiv": 112, "arz": 110, "as_ylo": 53, "asc": [37, 50, 51], "ascend": [37, 50], "asciimoo": 10, "ascrib": 85, "asdf": 80, "ask": [34, 112], "ask_yn": 116, "askubuntu": 112, "aspect": [27, 81], "assembl": [28, 43, 53, 62, 69, 74], "assert": 27, "assign": [14, 19, 30, 59, 85, 100, 112], "assign_head": 59, "assum": [10, 85], "assumpt": 100, "assur": 92, "ast": 110, "asterisk": 85, "async": [43, 53], "asyncv2": 43, "attach": 83, "attempt": 100, "attend": 81, "attent": [84, 85], "attribut": [32, 36, 38, 39, 71, 78, 85], "attribute_nam": 71, "au": [53, 66], "audienc": [47, 85], "audio": [46, 75, 112], "auth_plugin": 38, "auth_token": 37, "authent": [37, 38, 71], "author": [27, 30, 53, 85, 98], "auto": [10, 13, 25, 64, 81, 85, 98, 116], "autobuild": [27, 82], "autocommit": 109, "autocomplet": [1, 2, 7, 10, 23, 87], "autocomplete_min": 10, "autodetect": 10, "autodoc": 85, "autoindex": 6, "autoindex_modul": 6, "autom": 92, "automat": [7, 10, 11, 13, 25, 74, 85, 98, 113], "av": 110, "avail": [6, 7, 8, 10, 11, 12, 13, 14, 20, 23, 35, 39, 45, 55, 56, 62, 70, 74, 82, 87, 93, 98], "avatar": 48, "averag": 114, "avg": 114, "avoid": [9, 12, 14, 21, 35, 69, 91], "awar": [6, 11, 71, 85], "az": 110, "az1103": 117, "azb": 110, "b": [85, 86, 98, 104, 110], "ba": 110, "babel": [3, 10, 31, 45, 53, 66, 69, 82, 91, 95, 100], "babel_extract": 95, "back": [7, 81, 84, 105], "backend": [10, 23, 34, 63], "backend_url": 63, "backlink": [78, 85], "backquot": 85, "backslash": 85, "backup": 81, "bag": 110, "baiduspid": 96, "ban": [10, 23, 71, 93], "ban_time_on_fail": [10, 23], "bandcamp": 112, "bandwidth": [7, 10, 26], "bang": [19, 31, 85, 112, 113], "bar": [4, 12, 85, 104, 110, 111], "base": [3, 7, 10, 12, 14, 24, 30, 34, 35, 36, 37, 40, 49, 51, 52, 53, 62, 63, 67, 68, 72, 74, 79, 81, 87, 96, 97, 98, 107, 109, 110, 111, 116], "base64": [10, 98], "base_url": [2, 7, 10, 19, 24, 30, 34, 37, 43, 48, 51, 52, 54, 56, 58, 62, 67, 71, 75, 110], "baseprofil": 85, "bash": [7, 10, 36, 38, 39, 81, 82, 83, 85, 86, 116, 117], "bashrc": 86, "basic": [10, 12, 38, 45, 78, 80, 111, 116], "batch": 115, "baz": 85, "bb": [1, 112], "bc": 112, "bcd": 110, "bcl": 110, "bd": 53, "becaus": [19, 27, 30, 46, 93, 98, 109], "becom": [85, 114], "been": [11, 13, 26, 27, 43, 81, 91, 92, 101, 105, 109, 116], "befor": [9, 10, 11, 13, 21, 23, 26, 27, 36, 38, 39, 81, 82, 83, 84, 85, 93, 96, 116], "before_request": 14, "began": 77, "begin": 110, "beginn": 8, "behavior": [14, 85, 114], "behaviour": [11, 27, 83], "behind": [14, 24, 63, 111], "being": [24, 25, 57, 92, 93, 109, 114], "belgiqu": 100, "belgium": 31, "believ": 111, "belong": [78, 85, 112], "below": [0, 9, 10, 11, 19, 21, 27, 30, 35, 36, 38, 83, 85, 96, 110], "besid": [49, 55, 93], "best": [3, 31, 49, 57, 82, 85, 93, 100], "beta": 41, "better": [3, 6, 7, 8, 10, 30, 34, 43, 93, 110, 111], "between": [12, 19, 30, 74, 85, 100, 110], "bg": [53, 76, 110], "bh": 110, "bi": [19, 112], "big": [85, 105], "bigger": 21, "bii": 112, "bil": 112, "bildung": 44, "bilibili": 112, "billion": 78, "bin": [3, 7, 10, 11, 82, 112, 116], "binari": [10, 33, 38, 40, 82, 98], "bind": [7, 24, 38], "bind_address": [0, 7, 10, 16, 24], "bing": [16, 33, 85, 112], "bing_imag": [43, 112], "bing_new": [43, 112], "bing_video": [43, 112], "bingbot": 96, "bit": [14, 73, 85, 116], "bitbucket": [1, 79, 112], "bitlybot": 96, "biv": 112, "black": [25, 82, 85], "black_opt": 82, "black_target": 82, "blacklist": 10, "blank": [10, 23, 25, 85], "blexbot": 96, "blob": [13, 98], "blob_map": 98, "blob_max_byt": [13, 98], "block": [0, 10, 14, 21, 24, 42, 49, 80, 96, 97, 105, 116], "block_ip": [14, 96], "blog": [11, 81, 85, 98], "blow": 98, "bm": 98, "bmp": 78, "bn": [53, 110], "bo": 110, "bodi": [10, 27, 85], "boilerpl": 10, "bokm\u00e5l": 69, "bold": 85, "boldfac": 85, "book": [30, 41, 77], "book_com": 41, "book_fict": 41, "book_nonfict": 41, "book_unknown": 41, "bookfind": 77, "bool": [30, 31, 34, 53, 59, 83, 96, 98, 100, 106, 110], "boolean": [30, 34, 83, 85], "born": [27, 98], "bot": [7, 10, 14, 24, 26, 45, 49, 69, 92, 94], "botdetect": [14, 24, 96], "both": [11, 13, 27, 64, 74, 87, 93, 96, 98, 110], "bottom": [10, 25], "boundingbox": 30, "box": [2, 9, 26, 74, 80, 81, 83, 92, 116], "bpb": [33, 112], "bpy": 110, "br": [45, 53, 100, 110, 112], "br_br": 69, "branch": [11, 26, 27, 82, 86, 91], "brand": [4, 10, 15, 27, 81, 82], "brave": [33, 112], "brave_categori": 45, "brave_spellcheck": 45, "break": [27, 85], "brimg": 112, "bring": [85, 100], "brnew": 112, "broken": [49, 85], "brows": 57, "browser": [0, 7, 10, 20, 23, 25, 27, 49, 74, 81, 82, 93, 96, 98, 110, 111, 112, 114, 116], "brvid": 112, "bsd": 36, "bt": [46, 112], "bt4g": [33, 112], "bt4g_categori": 46, "bt4g_order_bi": 46, "bt4gv": 46, "btdigg": 112, "buffer": [11, 26], "bug": [11, 82, 92], "bugfix": 11, "bugreport": [11, 27], "build": [2, 4, 5, 10, 19, 22, 29, 31, 47, 53, 69, 71, 76, 78, 79, 80, 81, 84, 86, 98, 100, 103, 116, 117], "build_engine_local": [94, 100], "build_result": 71, "builder": 85, "buildhost": [4, 81, 82, 84, 92, 115, 117], "built": [7, 27, 30, 72, 75], "builtin": [4, 83, 92], "builtwith": 48, "bullet": 105, "bump": 82, "bunddev": 70, "bundesstel": 70, "bundeszentral": 44, "bundl": 10, "burst": 96, "burst_max": 96, "burst_max_suspici": 96, "burst_window": 96, "busi": 36, "bust": [7, 10, 11, 25, 26], "busybox": 40, "button": 10, "bw": 53, "bxr": 110, "bypass": 14, "byte": [13, 30, 78, 98, 110], "bytes_c": 98, "bz2": 38, "c": [10, 11, 53, 76, 81, 82, 83, 85, 103, 110], "c3tv": 112, "ca": [10, 21, 31, 45, 53, 100, 110], "ca_e": 100, "cach": [4, 7, 10, 11, 25, 26, 49, 69, 94, 99, 105, 109, 110], "cache_url": [10, 25], "cache_vqd": 49, "cached_stat": 109, "caching_sha2_password": 38, "caddi": [7, 9, 112], "calcul": [10, 12, 74], "call": [18, 19, 31, 49, 53, 78, 81, 82, 84, 85, 96, 105, 106, 109, 110, 112, 116], "callabl": [31, 98, 103], "callback": 83, "can": [0, 1, 2, 3, 6, 7, 8, 9, 10, 11, 13, 14, 16, 18, 19, 21, 22, 25, 26, 27, 30, 31, 33, 34, 35, 36, 37, 38, 39, 43, 45, 46, 47, 49, 50, 53, 54, 56, 64, 65, 67, 69, 70, 72, 73, 74, 78, 81, 82, 83, 84, 85, 86, 92, 93, 95, 96, 98, 100, 101, 103, 104, 105, 108, 109, 110, 112, 113, 114, 116, 117], "canada": 100, "cancel": 85, "cannot": [3, 49, 53, 85, 93, 96, 98, 111, 114], "capabl": [27, 37], "captcha": [4, 10, 14, 23, 49, 53, 69, 92, 93, 97], "caption": 85, "cardin": 27, "care": [19, 35, 69, 71, 85, 91, 111, 116], "carri": [13, 98], "carv": 19, "case": [9, 10, 19, 21, 23, 26, 37, 49, 53, 63, 69, 74, 75, 79, 81, 93, 108, 109, 110, 117], "cat": [11, 116], "catcher": 85, "categori": [1, 10, 18, 19, 25, 30, 31, 38, 43, 45, 46, 48, 49, 57, 64, 68, 71, 75, 85, 87, 106, 112, 113], "categories_as_tab": [4, 15, 19, 85, 112], "categorysnippet": 34, "caus": [10, 93, 109], "caution": 85, "caveat": 85, "cb": 112, "cbk": 110, "cc": [96, 112], "ccc": 112, "ccc_media": 112, "cd": [7, 9, 10, 81, 82, 86], "cdn": 3, "ce": 110, "ceb": 110, "ceid": [53, 82], "ceid_list": 53, "cell": 85, "center": [10, 25], "center_align": [10, 25], "cer": [10, 21], "cert": [10, 21], "certain": 57, "certif": [10, 21], "cf_searxengineaccessdeni": [10, 23], "cf_searxenginecaptcha": [10, 23], "cfai": 112, "cfg": [95, 96, 98], "cfg_file": 98, "cfg_schema": [13, 96, 98], "cgi": 11, "ch": [53, 56, 100], "chain": [82, 84, 114, 116], "chang": [10, 11, 13, 14, 16, 17, 21, 24, 26, 27, 46, 81, 82, 83, 84, 85, 86, 98, 109, 111], "changeabl": 14, "changem": 37, "channel": 0, "chapter": [27, 85, 86, 117], "char": 35, "charact": [10, 27, 35, 53, 74, 85], "chat": 111, "chdir": [11, 81], "cheat": 7, "check": [0, 3, 4, 7, 12, 14, 22, 27, 30, 35, 41, 45, 59, 77, 82, 91, 92, 94, 96, 100, 109, 110, 116, 117], "check_circular": 31, "check_parsing_opt": 35, "check_same_thread": 109, "checker": 80, "checkout": 82, "checkput": 82, "chicago": 29, "chines": [43, 45, 74], "chmod": [11, 13, 116], "choic": [5, 45, 85, 93, 110, 115], "chompj": 110, "choos": [5, 13, 27, 45, 84], "chosen": 56, "chown": [10, 13], "chrome": 111, "chromium": 111, "chronolog": 85, "ci": [82, 88, 92], "citi": 30, "ckb": 110, "cl": [53, 112], "class": [14, 31, 78, 79, 94, 96, 98, 99, 106, 109], "classic": 74, "classif": 110, "classifi": [14, 85], "classmethod": [31, 98], "clean": [7, 80, 86], "clear": [45, 93], "client": [13, 14, 54, 62, 81, 91, 96, 98, 104, 105], "client_token": 96, "clita": 85, "clone": [7, 9, 10, 81, 82, 84, 86, 91, 117], "close": [10, 28, 29, 78, 96], "cloudflar": [10, 23], "cloudflareai": 112, "cmd": [36, 38, 39, 81, 82, 83, 115, 116, 117], "cn": [53, 74, 100, 110], "cn_cn": 69, "co": [53, 110], "coalesc": 38, "code": [6, 10, 11, 19, 23, 25, 26, 30, 31, 34, 43, 47, 49, 51, 53, 61, 62, 69, 72, 74, 79, 80, 81, 82, 84, 87, 92, 93, 97, 105, 109, 110, 111, 112, 116], "codeberg": [91, 112], "coffe": 116, "col": 85, "collabor": [51, 52, 74], "colleagu": 19, "collect": [3, 36, 37, 46, 69, 72, 78, 105], "colon": 85, "color": 110, "colspan": 85, "column": 85, "com": [0, 2, 7, 9, 10, 17, 19, 25, 30, 31, 33, 43, 46, 47, 48, 49, 51, 52, 53, 59, 65, 68, 74, 75, 76, 78, 81, 82, 83, 84, 85, 86, 87, 98, 101, 109, 110, 112, 116, 117], "combin": [6, 53, 105], "come": [8, 19, 27, 66, 92, 93, 96, 111, 114, 116], "comfort": [82, 84, 85], "comma": [19, 35, 87], "command": [0, 3, 4, 6, 10, 11, 13, 22, 26, 27, 33, 39, 81, 82, 85, 91, 92, 105], "comment": [10, 26, 30, 36, 37, 38, 39, 54, 82, 85, 112], "comment_tag": 95, "commentari": 70, "commit": [10, 26, 62, 81, 82, 84, 91], "commodi": 85, "common": [11, 41, 45, 50, 53, 69, 74, 77, 82, 92, 93], "commonli": 85, "commonmark": 99, "commun": [6, 8, 10, 11, 13, 21, 24, 38, 39, 45, 54, 86, 92, 111, 112], "compact": 85, "compani": [37, 93], "compar": [6, 7, 11, 13, 14, 18, 50, 53, 69, 74, 81, 103, 114, 116], "comparison": 37, "compat": [10, 21, 96, 98], "compil": [40, 72, 82, 84, 86, 109, 110], "complet": [11, 13, 26, 27, 33, 53, 63, 81, 82, 86, 87, 98, 108, 116, 117], "complex": 38, "compliant": 7, "compon": [6, 63, 83, 96], "compos": [53, 74], "compress": [53, 110], "compromis": [93, 111], "comput": [82, 93], "con": 85, "concat": 110, "concept": [19, 33, 60], "concern": [27, 35, 111], "concert": 38, "conclus": 92, "concret": 85, "concurr": 10, "conda": 112, "condit": [85, 107, 110], "conf": [3, 6, 8, 11, 85, 117], "config": [1, 10, 11, 13, 19, 26, 30, 39, 81, 85, 91, 94, 108, 115], "config_schema": 98, "configur": [4, 6, 7, 8, 11, 16, 19, 21, 31, 32, 33, 37, 39, 45, 48, 64, 81, 85, 87, 91, 92, 93, 95, 96, 98, 108, 110, 113], "conflict": 116, "confnam": 11, "confus": [49, 85], "congress": [33, 112], "conn": 109, "connect": [0, 2, 8, 10, 11, 14, 21, 22, 26, 38, 39, 59, 81, 92, 96, 104, 109], "connector": [38, 109], "consciou": 111, "consectetur": 85, "consent": 53, "consequ": [21, 27], "consequat": 85, "consetetur": 85, "consid": [26, 31, 59, 69], "consider": 11, "consist": [13, 63, 81, 98, 109], "constantli": 78, "construct": [30, 85], "constructor": 109, "contact": [10, 20, 21, 111], "contact_url": [10, 20], "contain": [4, 5, 10, 11, 12, 13, 25, 32, 35, 39, 47, 49, 57, 64, 70, 80, 85, 91, 92, 96, 97, 101, 106, 108, 111, 115, 116], "content": [10, 24, 30, 37, 38, 41, 47, 56, 64, 67, 70, 71, 74, 79, 91, 93, 99], "content_xpath": 79, "context": [38, 47, 83, 85, 99, 116], "continu": [53, 83, 85], "contrari": 40, "contribut": [55, 80, 82, 84, 92, 111], "contributor": 85, "control": [6, 11, 13, 82, 93, 98, 109], "conveni": [82, 105, 109], "convent": 27, "convers": 74, "convert": [12, 30, 74, 85, 92, 94, 110, 114], "convert_str_to_int": [94, 110], "cooki": [30, 43, 49, 64, 69, 79, 92, 93], "cool": 49, "copi": [7, 10, 14, 30, 31, 85, 91, 116], "copyright": 85, "core": [3, 11, 13, 31, 53, 63, 69, 100], "coreutil": 86, "corner": 27, "correct": [2, 10, 14, 24, 34], "correctli": [14, 35, 53, 96], "correspond": [6, 11, 100], "could": [10, 11, 13, 30, 49, 78, 85, 105], "count": [11, 30, 46, 74, 85, 96], "counter": 105, "counterpart": [82, 91], "countri": [30, 43, 53, 66, 100], "countrycod": 66, "cours": 85, "cover": 82, "coverag": 82, "cp": 10, "cpan": 112, "cpp": 112, "cpprefer": 112, "cpu": 11, "cpython": 109, "cr": [53, 112], "crate": 112, "crawl": 78, "crawl_dat": 78, "crawler": 85, "creat": [4, 6, 7, 8, 9, 11, 13, 24, 31, 32, 35, 38, 41, 45, 47, 51, 73, 81, 82, 85, 87, 91, 98, 103, 105, 109, 116], "create_timestamp_asc": 34, "create_timestamp_desc": 34, "created_tim": 47, "creation": [3, 85], "credibl": 68, "criteria": 51, "crontab": 13, "cross": 85, "crossref": 112, "crowdview": 112, "cruis": 57, "cryptographi": 24, "cspan": 85, "css": [12, 82, 84, 96], "csv": [10, 23, 87], "csv_tabl": 85, "ctan": 85, "ctrl": [10, 81], "ctx": 83, "cu": 53, "cup": 116, "curl": [0, 10, 14, 86], "curli": 112, "currenc": [30, 94, 112], "currency_convert": 112, "current": [10, 19, 25, 27, 30, 31, 53, 70, 82, 96, 98, 105], "cursor": 38, "custom": [10, 21, 27, 31, 37, 42, 45, 66, 74, 85, 91, 92, 94, 108, 114], "custom_query_json": 37, "customiz": 1, "customlog": 6, "cv": [110, 112], "cy": 110, "cycl": 81, "cz": [53, 112], "d": [0, 6, 7, 8, 11, 49, 110, 116], "d41586": 30, "da": [76, 110, 112], "daemon": 11, "dai": [11, 13, 30, 43, 53, 79, 87, 97], "daili": 81, "dailymot": [33, 110, 112], "danger": 85, "danhper": 86, "dao": 112, "dark": [10, 25], "darmarit": 10, "dash": 7, "data": [4, 13, 30, 31, 35, 36, 37, 38, 43, 46, 49, 53, 59, 69, 70, 82, 85, 90, 93, 94, 96, 98, 110, 111], "data_typ": 31, "databas": [2, 10, 13, 14, 22, 24, 26, 33, 38, 39, 57, 85, 98, 105, 109], "dataclass": [31, 98], "date": [1, 30, 78], "datetim": [30, 85], "db": [2, 7, 10, 11, 13, 14, 22, 26, 36, 38, 81, 92, 94, 96, 98, 105], "db_schema": [98, 109], "db_type": 98, "db_url": [13, 98, 109], "dbpedia": [10, 23, 87], "dc": 112, "ddd": 112, "ddg": [49, 112, 114], "ddg_categori": 49, "ddi": [49, 112], "ddl_blob": 98, "ddl_blob_map": 98, "ddl_properti": 109, "ddn": 112, "ddv": 112, "de": [1, 10, 11, 19, 23, 25, 34, 38, 42, 45, 53, 57, 66, 79, 100, 110, 112, 117], "de_facto": 100, "deactiv": [10, 13, 20], "deafult": 110, "deal": [19, 45, 110], "debian": [3, 7, 8, 10, 85, 86], "debug": [2, 4, 9, 10, 20, 81, 82, 98], "dec": 11, "decentr": [61, 111], "decim": [30, 110], "declar": 32, "decod": 53, "decoupl": 91, "decreas": [10, 25], "dedic": [11, 81, 85, 109], "deep": 96, "deeper": [82, 85], "deezer": 112, "def": [30, 83, 85, 96, 99, 110], "default": [6, 7, 8, 10, 11, 13, 14, 16, 19, 20, 21, 23, 25, 27, 31, 32, 34, 35, 36, 38, 39, 41, 45, 46, 47, 49, 51, 52, 54, 59, 64, 66, 69, 71, 72, 75, 83, 85, 87, 93, 96, 97, 98, 99, 100, 104, 105, 107, 108, 109, 110, 112, 113, 115, 116], "default_http_head": [10, 24], "default_lang": [10, 19, 23], "default_local": [1, 10, 25], "default_on": 83, "default_request_param": 107, "default_settings_fil": [94, 108], "default_them": [1, 10, 25], "defin": [7, 13, 14, 16, 19, 21, 25, 31, 36, 38, 49, 83, 85, 86, 96, 109, 116], "definit": [53, 112], "deflat": 96, "dejavu": 3, "del": 105, "delet": [13, 19, 31, 82, 87, 98, 105, 116], "delimit": [35, 85], "demo": [19, 33, 39, 105], "demo_offlin": [28, 39], "demo_onlin": 29, "demon": 10, "demonstr": [38, 83], "deni": [6, 10, 11, 23, 97], "depend": [4, 6, 8, 12, 13, 14, 26, 30, 42, 69, 81, 82, 85, 86, 87, 109], "deploi": [7, 24, 25, 82, 85], "deprec": [26, 96], "depth": [74, 85], "desc": [38, 50, 51], "descend": 50, "describ": [6, 9, 11, 16, 19, 31, 35, 36, 37, 38, 81, 82, 85, 110, 117], "descript": [12, 22, 27, 30, 38, 39, 43, 47, 53, 69, 83, 85, 94, 100, 102, 110], "deserv": 27, "design": [10, 37, 40, 63, 85], "desir": [13, 30, 74], "desktop": [0, 25, 67, 81], "detach": 7, "detail": [6, 10, 11, 19, 20, 30, 31, 38, 53, 78, 85], "detect": [10, 14, 23, 25, 49, 92, 94, 110], "detect_google_captcha": 53, "detect_languag": [94, 110], "determin": [0, 13, 14, 31, 33, 49, 96, 98, 100, 110], "detriment": 10, "deutsch": 1, "deutschland": 57, "dev": [3, 6, 8, 10, 75, 82, 85, 86, 112], "devel": [3, 10], "develop": [4, 10, 13, 15, 27, 34, 45, 82, 85, 88, 92, 110, 111, 115, 116], "deviantart": 112, "devop": [2, 9, 26, 81, 92, 116], "devpkg": 82, "dfrac": 85, "dh": 112, "dhivehi": 100, "dialog": [49, 53], "diam": 85, "dict": [30, 31, 32, 35, 49, 53, 59, 71, 78, 83, 96, 98, 100, 106, 108, 110], "dict_subset": [94, 110], "dictionari": [19, 31, 53, 94, 96, 98, 100, 105, 110], "dictzon": 112, "did": [6, 96], "didn": 10, "diff": 85, "differ": [6, 11, 12, 19, 21, 27, 30, 43, 45, 53, 54, 65, 69, 74, 79, 81, 85, 108, 109, 111, 114, 116], "digest": [12, 75, 114], "digit": [45, 66, 100, 111], "digraph": 85, "diq": 110, "dir": 10, "direct": [6, 8, 13, 80, 84, 85, 100], "directli": [20, 24, 71, 72, 82, 91, 114, 116], "directori": [6, 7, 11, 21, 35, 99, 112], "dirmngr": 86, "dirti": 7, "disabl": [4, 10, 11, 16, 18, 19, 20, 21, 23, 25, 28, 29, 31, 38, 45, 75, 81, 83, 85, 87, 109, 112, 116], "disabled_engin": 87, "disabled_plugin": 87, "disadvantag": [13, 85], "discours": [33, 112], "discov": 57, "discoveri": [19, 35, 36, 37, 38], "discrep": 110, "discuss": [13, 92, 112], "displai": [3, 7, 10, 12, 13, 18, 19, 20, 30, 31, 36, 38, 69, 70, 74, 85, 98, 112], "display_error_messag": [19, 30, 31], "display_typ": 74, "displaystyl": 85, "dispos": 115, "disrespect": 27, "dist": [27, 82], "distinguish": [85, 100], "distribut": [6, 7, 8, 11, 19, 21, 40, 75, 81, 85, 109, 110], "distributor": 4, "distro": 81, "div": 98, "dive": 93, "divid": [81, 103], "dl_prefix": 67, "dm": 112, "dnf": [3, 6, 8, 10, 85], "do": [0, 3, 5, 6, 8, 9, 11, 12, 19, 27, 28, 29, 36, 37, 38, 45, 49, 62, 65, 69, 78, 81, 82, 84, 85, 93, 100, 110, 113, 116], "doc": [4, 6, 10, 11, 17, 19, 31, 38, 46, 80, 81, 85, 110, 111, 116], "docker": [4, 5, 9, 40, 59, 81, 82, 92, 112], "docker_hub": 112, "dockerfil": 7, "dockerhub": 7, "docs_url": [10, 17], "doctest": 85, "doctre": 85, "document": [3, 6, 13, 17, 19, 23, 31, 33, 34, 36, 37, 38, 49, 53, 54, 67, 70, 82, 85, 92, 94, 99, 111, 116], "documented_modul": 85, "documentroot": 6, "docutil": 85, "doe": [6, 9, 10, 11, 19, 26, 30, 31, 38, 39, 41, 42, 43, 45, 46, 49, 53, 60, 63, 67, 68, 69, 74, 78, 81, 85, 87, 92, 98, 105, 107, 108, 110, 113, 116], "doesn": [16, 24, 25, 32, 38, 46, 56, 57, 64, 83, 110, 111], "doi": [10, 12, 30], "dolor": 85, "dom": [49, 53, 59], "domain": [67, 76, 78, 85, 98], "domin": 27, "don": [6, 7, 10, 13, 14, 16, 22, 23, 25, 26, 27, 30, 79, 84, 85, 92, 98, 100, 116], "donat": [10, 20], "donate_url": 10, "donation_url": [10, 20], "done": [26, 53, 81, 82, 85, 86, 91, 96, 109, 110, 116], "dontlog": 6, "dot": [3, 82], "doubl": 85, "down": [49, 64, 100], "download": [9, 10, 24, 30, 38, 67, 75, 78, 81, 82, 85, 86], "download_error": 78, "downward": 98, "dpy": 112, "dr": [49, 81], "drag": 78, "draw": 55, "driven": [38, 63, 68, 92, 111], "driver": 82, "drop": [7, 29, 78, 84, 96, 105, 116], "drop_count": [94, 105], "dry": 7, "dsb": 110, "dt": 34, "dty": 110, "duckduckgo": [2, 10, 13, 16, 23, 33, 87, 98, 112, 114], "duckduckgo_definit": [49, 112], "duckduckgo_extra": [49, 112], "due": [78, 105], "dummi": [19, 98], "duo": 85, "duplic": [47, 111], "durat": [30, 38, 47, 105], "dure": [13, 38, 53, 58, 98], "duref": 85, "dv": [100, 110], "dvisvgm": 3, "dynam": [0, 14], "dz": 112, "e": [7, 10, 14, 18, 27, 30, 37, 38, 45, 49, 53, 69, 70, 77, 81, 82, 84, 85, 86, 93, 96, 99, 100, 103, 108, 109, 110, 112, 114, 116, 117], "e121": 81, "e5a2": 21, "ea": 85, "each": [10, 11, 13, 16, 21, 26, 30, 31, 35, 37, 39, 69, 74, 79, 81, 83, 85, 86, 87, 91, 98, 103, 105, 109, 110, 116], "easi": [7, 13, 81, 92], "easier": 27, "easiest": 35, "easili": [14, 27, 59], "echo": [10, 86, 116], "ecma": 110, "ecma_unescap": [94, 110], "ecosi": 75, "ecosystem": 85, "ecretvalu": 16, "edg": 111, "edit": [11, 27, 74, 81, 82, 85, 93], "editor": 30, "edu": 29, "ee1f": 21, "effect": [9, 11, 27, 85], "effici": [63, 98, 110], "eg": 53, "egnine_lang": 31, "egnine_region": 31, "eirmod": 85, "either": [36, 110, 111], "el": [53, 76, 110], "elast": 37, "element": [35, 69, 71, 85, 110], "elementbas": 110, "elit": 85, "elitr": 85, "els": [85, 91, 116], "emac": 85, "email": [10, 21], "emb": [4, 47, 63, 85, 110], "embed": [1, 7, 13, 85], "eml": 110, "emoji": 100, "emperor": 11, "emphasi": 85, "empti": [6, 16, 38, 41, 53, 59, 67, 79, 85, 100, 110, 116], "empty_favicon": 98, "en": [1, 10, 11, 19, 20, 21, 23, 25, 30, 34, 45, 53, 59, 69, 74, 76, 79, 82, 85, 99, 100, 110, 112], "en_au": 49, "en_ca": 49, "en_en": 47, "en_gb": [47, 49, 69], "en_u": [19, 30, 47, 49], "enabl": [1, 4, 6, 7, 8, 10, 11, 16, 19, 20, 21, 24, 25, 27, 30, 31, 34, 35, 37, 38, 59, 74, 82, 85, 87, 101, 102, 103, 112], "enable_http": [19, 30, 31, 36, 37], "enable_http2": [10, 19, 21], "enable_metr": [10, 20], "enabled_engin": 87, "enabled_engine_count": 85, "enabled_plugin": [10, 87, 101, 102, 103], "encapsul": 81, "enclos": 85, "encod": [10, 11, 31, 53, 69, 85, 96], "encompass": 69, "encount": 111, "encourag": 85, "encrypt": 92, "encyclopedia": 74, "encyclosearch": 112, "end": [41, 60, 77, 84, 85, 110, 116], "endfor": 85, "endif": 85, "endpoint": [34, 48, 55, 71, 87], "enforc": 93, "eng_lang": 49, "eng_region": 49, "eng_trait": [49, 53, 74], "engin": [0, 1, 4, 10, 14, 15, 16, 18, 21, 23, 27, 37, 40, 41, 42, 46, 47, 48, 51, 52, 54, 58, 59, 61, 63, 65, 66, 70, 71, 72, 73, 74, 75, 77, 78, 80, 83, 85, 87, 92, 93, 94, 97, 100, 106, 107, 113], "engine_categori": 107, "engine_data": [32, 106], "engine_default_arg": 32, "engine_list": 32, "engine_local": 100, "engine_nam": 107, "engine_set": [28, 29, 35, 39, 41, 58, 71, 77], "engine_shortcut": [32, 33], "engine_trait": [31, 41, 42, 43, 45, 47, 49, 53, 59, 61, 62, 66, 69, 74, 76, 77, 82], "engine_traits_fil": 31, "engine_typ": [31, 33, 78, 85], "enginelib": [31, 53], "engineprocessor": 107, "engineref": [94, 106], "engineref_list": 106, "enginetrait": [31, 41, 42, 43, 45, 47, 49, 53, 59, 61, 62, 66, 69, 74, 76, 77], "enginetraitsencod": 31, "enginetraitsmap": 31, "english": [1, 19, 23, 49, 100, 110], "english_nam": 100, "enim": 85, "enough": [26, 110], "ensur": [2, 10, 27, 98], "ensure_ascii": 31, "enter": [10, 81], "entir": [6, 10, 105], "entiti": 49, "entri": [7, 10, 13, 28, 29, 80, 85], "entrypoint": 7, "enum": 35, "env": [6, 11, 80, 81, 84, 116], "environ": [7, 10, 13, 16, 27, 36, 38, 39, 80, 81, 84, 86, 92, 100, 108, 116, 117], "environmenterror": 108, "eo": [1, 85, 110], "eof": 116, "eol": 116, "eoss": 116, "epoch": [98, 109], "epub": [41, 77], "equal": 103, "equat": [3, 80], "equival": 110, "erat": 85, "error": [10, 11, 14, 19, 20, 21, 23, 26, 30, 31, 34, 35, 39, 59, 73, 78, 79, 85, 96, 97, 109, 110], "error_log": 8, "es_ar": 49, "escap": 85, "espa\u00f1ol": 110, "especi": 85, "esperanto": 1, "essenti": [3, 10, 13, 14, 82, 86, 108], "est": 85, "establish": 10, "et": [53, 76, 85, 110], "etc": [2, 6, 7, 8, 10, 11, 13, 14, 16, 26, 27, 45, 81, 101, 106, 108, 116, 117], "eth0": [81, 116], "etre": 110, "eu": [75, 110], "eval_xpath": [94, 110], "eval_xpath_getindex": [94, 110], "eval_xpath_list": [94, 110], "evalu": [7, 49, 68, 74, 85, 96, 103, 110, 116], "even": [11, 19, 22, 53, 81, 109, 116], "event": [11, 98], "ever": 116, "everi": [13, 19, 26, 27, 30, 59, 69, 81, 91, 93, 94, 116], "everyon": [92, 93, 111], "everyth": [10, 85, 93], "ex": 85, "exabot": 96, "exact": 36, "exact_match_onli": 36, "exactli": [11, 85], "exampl": [0, 1, 2, 6, 10, 11, 13, 14, 15, 16, 21, 22, 23, 24, 26, 27, 28, 29, 30, 31, 39, 41, 43, 46, 49, 53, 57, 74, 77, 80, 81, 87, 96, 98, 100, 101, 102, 103, 110, 114, 115, 116], "exce": [13, 98], "exceed": [13, 98], "excel": 5, "except": [6, 16, 27, 30, 31, 85, 92, 94, 96, 110], "exec": 7, "execstart": 11, "execut": [0, 19, 31, 35, 82, 84, 95, 109, 116], "exercis": 81, "exercit": 85, "exist": [5, 7, 10, 16, 19, 23, 26, 27, 31, 38, 53, 69, 81, 82, 86, 96, 98, 105, 108, 109, 110, 116], "exit": [7, 10, 12, 100, 102], "expand": 85, "expect": [10, 19, 27, 35, 108], "experienc": 81, "expert": 92, "expir": [11, 26, 96, 105], "explain": [6, 8, 27], "explanatori": [116, 117], "explicit": [47, 85], "export": [7, 10, 67, 81, 116], "expos": [19, 36, 37, 38], "expres": 72, "express": [12, 35, 40, 96, 97, 101], "ext": 3, "extend": [27, 34, 39, 45, 83, 85], "extens": [3, 11, 13, 41, 85], "extent": 26, "extern": [10, 13, 30, 39, 80, 85, 87, 93, 98, 101, 113], "external_bang": 106, "extr": [94, 110], "extra": [3, 6, 10, 21], "extra_proxy_timeout": [10, 21], "extract": [3, 59, 74, 94, 95, 110], "extract_text": [94, 110], "extract_url": [94, 110], "extractor": [91, 92, 94], "extrem": 49, "ey": [81, 85], "f": [7, 81, 85, 103, 110, 116], "f3": 110, "fa": [100, 110], "face": 85, "facebook": [56, 64, 101, 110], "facet": 37, "fact": 14, "facto": [45, 100], "factor": 103, "factori": [31, 98], "fail": [11, 32, 81, 82, 84], "fake": 96, "fallback": [86, 98, 100], "fallback_icon": 98, "fallback_to_default": 99, "fals": [1, 2, 10, 14, 16, 17, 19, 20, 21, 24, 25, 28, 29, 31, 36, 38, 45, 47, 48, 59, 64, 70, 71, 79, 83, 85, 87, 96, 98, 99, 100, 109, 110], "famili": 47, "familiar": [11, 82], "family_filt": 47, "family_filter_map": 47, "fanci": 27, "faq": 85, "far": 49, "farsid": 96, "fashion": 21, "fast": 38, "fasttext": 110, "favicon": [4, 10, 23, 92, 94], "favicon_data_url": 98, "favicon_mime_typ": 98, "favicon_path": 98, "favicon_proxi": [94, 98], "favicon_resolv": [10, 13, 23], "favicon_url": [94, 98], "faviconcach": [13, 98], "faviconcacheconfig": 98, "faviconcachemem": 98, "faviconcachenul": 98, "faviconcachesqlit": 98, "faviconcachestat": 98, "faviconconfig": 98, "faviconproxyconfig": 98, "favorit": [27, 48, 82], "fd": 112, "fd00": 6, "fd42": 81, "fdroid": 112, "fdsize": 11, "fe5b": 81, "fe80": [6, 10, 14, 21, 96], "featur": [10, 11, 13, 19, 23, 24, 26, 27, 49, 58, 63, 68, 85, 93, 112, 114], "feder": [54, 56], "fedora": [3, 6, 8, 10, 11, 85, 116], "fedora35": 116, "fedoraproject": 116, "feed": 46, "feedback": [27, 85], "feedfetch": 96, "feel": [83, 85, 114], "fetch": [29, 31, 41, 42, 43, 45, 47, 49, 53, 57, 59, 61, 62, 66, 69, 74, 76, 77, 102, 109, 117], "fetch_trait": [31, 41, 42, 43, 45, 47, 49, 53, 59, 61, 62, 66, 69, 74, 76, 77, 100], "fetch_wikimedia_trait": 74, "few": [19, 26, 27, 30, 47, 114], "fewer": 46, "fh": 13, "fi": [110, 116], "field": [31, 41, 42, 45, 47, 69, 74, 96, 103, 109], "fieldnam": 85, "figur": 80, "fil_ph": 69, "file": [3, 6, 7, 8, 10, 11, 13, 14, 15, 16, 18, 19, 21, 25, 26, 27, 31, 35, 38, 41, 46, 59, 67, 71, 77, 78, 81, 82, 91, 95, 98, 99, 100, 101, 108, 113, 116], "file_nam": 108, "filenam": [38, 97, 98], "fileobj": 95, "files": [30, 78], "filesystem": 67, "fill": 85, "film": [38, 57], "filmlist": 38, "filter": [1, 10, 23, 28, 29, 41, 47, 49, 57, 63, 66, 69, 77, 79, 82, 87, 96, 110, 114], "filter_link_loc": 14, "filtron": 26, "final": 64, "find": [2, 7, 10, 14, 19, 22, 26, 27, 35, 36, 37, 49, 50, 56, 78, 100, 111, 114, 116], "findthatmem": 112, "fine": [9, 10, 34, 52], "finish": [84, 116], "firefox": [0, 3, 10, 82, 111], "first": [5, 6, 13, 22, 26, 36, 39, 43, 53, 64, 74, 79, 81, 82, 84, 85, 93, 96, 100, 103, 110, 114, 116], "first_page_num": 79, "firstli": 13, "fit": [11, 19, 31, 37, 49, 53, 63, 68, 74, 83, 96, 100], "five": 100, "fix": [26, 27, 45], "fka": 74, "fl": 112, "flag": [7, 45, 100], "flask": [14, 83, 85, 99, 106], "flask_babel": 100, "flaskfix": [6, 8], "fledg": 19, "flexibl": [35, 85], "flickr": 112, "flickr_noapi": 112, "float": [30, 31, 103, 106, 110], "fname": 99, "fnd": 35, "focu": 60, "folder": [6, 8, 9, 11, 13, 26, 30, 31, 81, 82, 85, 88, 99, 100, 101, 108, 115, 116], "follow": [6, 7, 8, 9, 10, 11, 13, 16, 22, 24, 27, 28, 29, 30, 32, 34, 35, 36, 37, 38, 41, 46, 50, 51, 52, 54, 57, 58, 59, 65, 67, 68, 71, 75, 77, 82, 85, 96, 98, 103, 116], "followsymlink": 6, "font": 3, "fontsrecommend": 3, "foo": [30, 31, 104, 105], "food": 45, "fooh": 45, "footer": [10, 27], "forbid": 56, "forc": [11, 98], "force_timeout": [81, 115, 116], "forgejo": 51, "forget": [7, 10, 22, 25, 26, 27, 116], "fork": [9, 27, 38, 81, 92, 110, 111], "form": [1, 10, 20, 30, 41, 49, 69, 77, 85, 93], "format": [10, 23, 34, 39, 53, 70, 78, 80, 84, 85, 87, 96, 110], "format_not_support": 78, "formerli": 77, "forum": 33, "forward": [0, 6, 8, 14, 55, 93, 96, 116], "found": [3, 11, 33, 39, 76, 78, 82, 108, 110], "foundat": [19, 35, 36, 37, 38, 83], "fqn": [13, 96, 98], "fr": [10, 19, 23, 25, 31, 34, 45, 53, 79, 100, 110, 112, 114], "fr_be": 100, "fr_ca": 100, "fr_ch": 100, "fr_fr": 100, "fraction": 85, "fralef": 116, "framework": 31, "fran\u00e7ai": 100, "free": [27, 30, 41, 60, 75, 83, 92, 111, 112], "freedom": 111, "freeli": 53, "freer": 111, "french": [31, 100], "frequent": 74, "fresh": [6, 13], "fridai": 91, "friend": [19, 93], "friendli": 63, "frinkiac": 112, "frk": 112, "from": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 19, 21, 23, 26, 27, 28, 29, 30, 31, 32, 34, 37, 38, 39, 41, 42, 43, 45, 46, 47, 49, 53, 54, 55, 59, 60, 61, 62, 64, 65, 66, 69, 70, 71, 72, 74, 76, 77, 78, 79, 81, 82, 83, 84, 85, 86, 87, 91, 92, 93, 94, 95, 96, 98, 99, 100, 101, 102, 103, 104, 105, 106, 108, 109, 110, 111, 114, 116, 117], "from_data": 31, "from_lang": 30, "from_nam": 30, "from_si": 103, "from_toml_fil": 98, "from_url": 22, "fromstr": 110, "front": [60, 85], "frontend": 63, "frontend_url": 63, "frozenset": 110, "frr": 110, "fsd": 112, "fsk": 57, "ftm": 112, "ftp": 30, "full": [16, 19, 30, 37, 53, 67, 85, 96], "fulli": [13, 58, 98], "function": [13, 29, 30, 31, 32, 39, 49, 53, 69, 74, 83, 85, 92, 94, 95, 96, 98, 100, 103, 105, 108, 109, 116], "fund": [19, 35, 36, 37, 38], "further": [13, 31, 73, 79, 101, 110, 111], "furthermor": [30, 36, 37, 87, 93], "futur": [13, 98], "fv": 117, "fy": 110, "f\u00fcr": [44, 70], "g": [7, 10, 13, 14, 18, 27, 30, 37, 38, 45, 46, 49, 53, 70, 77, 81, 82, 84, 85, 93, 96, 99, 100, 103, 108, 109, 114, 116, 117], "ga": 110, "gain": 93, "gawk": 86, "gb": [13, 45, 53], "gb_gb": 69, "gd": [3, 110], "ge": 112, "gecko": 82, "geckodriv": 82, "geizhal": 33, "gen": 112, "gen_userag": [94, 110], "gener": [1, 2, 4, 6, 7, 10, 11, 13, 15, 18, 19, 27, 31, 33, 34, 38, 45, 64, 69, 72, 75, 77, 79, 93, 96, 98, 100, 103, 110, 111, 113, 114], "genesi": [77, 112], "geniu": 112, "genr": 57, "gentlemen": 80, "gentoo": 112, "geojson": 30, "german": [1, 19, 44, 50, 57, 66], "gesg2kvx": 74, "get": [3, 4, 6, 8, 9, 10, 11, 14, 22, 26, 27, 28, 29, 30, 37, 39, 43, 45, 47, 49, 53, 64, 69, 71, 74, 80, 81, 82, 84, 85, 87, 92, 96, 97, 99, 103, 104, 105, 110, 111, 114, 116, 117], "get_attribut": 71, "get_ctx": 99, "get_ddg_lang": 49, "get_embeded_stream_url": [94, 110], "get_engine_from_set": [94, 110], "get_engine_local": [31, 94, 100, 110], "get_engines_stat": 85, "get_google_info": 53, "get_languag": 31, "get_language_nam": 100, "get_local": [94, 100], "get_network": [94, 96], "get_official_languag": 100, "get_official_local": [94, 100], "get_pag": 99, "get_param": 107, "get_ping_kei": 96, "get_real_ip": [94, 96], "get_region": 31, "get_resolv": 98, "get_sc_cod": 69, "get_set": 117, "get_territory_nam": 100, "get_thumbnail": 74, "get_token": 96, "get_torznab_attribut": 71, "get_transl": [94, 100], "get_translation_local": [94, 100], "get_user_cfg_fold": [94, 108], "get_valu": 99, "get_vqd": 49, "get_wiki_param": 74, "get_xpath": [94, 110], "get_yaml_cfg": [94, 108], "gh": [27, 53, 91, 112], "gid": 11, "gif": 78, "gil": 11, "git": [3, 7, 9, 10, 16, 23, 27, 30, 31, 33, 67, 81, 82, 83, 84, 85, 86, 88, 90, 91, 95, 100, 108, 115, 116, 117], "git_branch": [81, 117], "git_url": [81, 117], "gitea": [33, 112], "github": [7, 9, 10, 17, 59, 75, 81, 82, 83, 84, 85, 86, 87, 91, 109, 112, 116, 117], "gitlab": [33, 112], "gitmoji": 27, "give": [6, 8, 11, 13, 82, 93, 111, 114], "given": [13, 22, 33, 85, 96, 101, 103, 105, 110], "gl": [52, 53, 82, 110, 112], "glob": 11, "global": [19, 21, 30, 47, 75, 86, 98, 100, 105], "global_ip": 116, "globe": 100, "gluetun": 59, "glyph": 85, "gn": [52, 110], "gnome": 52, "gnu": 82, "go": [19, 36, 39, 43, 49, 53, 80, 84, 85, 93, 96, 112], "goal": 31, "goe": 82, "goi": [1, 112], "golang": [82, 86], "gom": 110, "gon": 112, "goo": 112, "good": [8, 81, 100, 110], "googl": [1, 10, 13, 16, 19, 23, 31, 33, 82, 87, 98, 101, 111, 112], "google_complet": 53, "google_domain": 53, "google_imag": [53, 112], "google_new": [53, 82, 112], "google_plai": 112, "google_scholar": [53, 112], "google_video": [53, 112], "googlebot": 96, "googleimageproxi": 96, "googleusercont": [10, 25], "gosl": 57, "gov": 112, "government": 44, "gpa": 112, "gpg": 86, "gpm": 112, "gr": 53, "grandma": 73, "grant": [6, 11], "granular": 82, "graphviz": 3, "great": 37, "greatli": 13, "green": [53, 83], "grep": [11, 81, 82, 86, 116], "group": [7, 11, 19, 22, 82, 85, 93, 103], "group_bang": 85, "group_engines_in_tab": 85, "grow": [5, 13, 26, 98], "grumpi": 85, "gsw": 74, "gu": 110, "gubergren": 85, "guess": [49, 69], "guest": 81, "guid": [8, 37, 85], "guidanc": [6, 8], "guidelin": [19, 84], "guilabel": 85, "gv": 110, "gz": [6, 11], "gzip": [11, 96], "h": [3, 6, 7, 8, 9, 10, 11, 22, 26, 34, 35, 81, 85, 98, 115, 116, 117], "ha": [11, 13, 14, 16, 19, 26, 27, 30, 35, 39, 41, 43, 46, 51, 52, 53, 54, 58, 63, 65, 66, 68, 71, 75, 77, 81, 85, 86, 91, 92, 93, 97, 98, 99, 100, 101, 103, 105, 109, 110, 116], "habr": 112, "habrahabr": 112, "hack": [27, 84], "hackabl": 80, "hackernew": 112, "had": [11, 49], "han": [53, 100], "handi": 116, "handl": [19, 31, 36, 53, 81, 85, 93, 107, 110, 116], "hant": [53, 100], "happen": 96, "happi": [27, 84], "hard": [14, 30, 85, 109], "hardcod": 14, "harmon": [43, 110], "hash": [10, 12, 96, 98, 105, 114], "hash_plugin": 87, "hashtag": 112, "hat": 85, "have": [0, 5, 6, 7, 8, 9, 10, 11, 13, 19, 26, 27, 30, 34, 36, 37, 38, 39, 43, 45, 57, 59, 64, 69, 72, 74, 81, 82, 84, 85, 86, 93, 96, 98, 100, 111, 116], "hbar": 85, "he": [53, 76, 85, 100, 110], "head": [10, 82], "header": [14, 19, 24, 30, 31, 49, 53, 59, 64, 69, 74, 79, 85, 94, 98], "headers_modul": 6, "headlesschrom": 96, "headlin": 110, "heard": 85, "height": [78, 85], "held": 68, "hello": 11, "help": [7, 22, 27, 53, 59, 72, 80, 86, 92, 111, 115], "helper": 85, "henc": 57, "here": [3, 11, 18, 21, 26, 27, 30, 31, 37, 38, 43, 48, 73, 74, 79, 81, 82, 84, 85, 116], "herein": 2, "hesit": [84, 92], "heterogen": 81, "hex": [10, 112], "hi": [13, 53, 110], "hidden": [1, 19, 93], "hierarchi": 67, "hif": 110, "high_prior": 101, "higher": [13, 74, 82, 101], "highest": 103, "hindranc": 109, "hint": [2, 11, 31, 81, 85], "histori": [10, 44], "hit": [10, 64, 74, 103], "hk": [53, 74, 76, 100], "hl": [53, 82], "hmac": 98, "hn": 112, "ho": 112, "hold": 98, "hold_tim": [13, 98], "hole": 112, "holland": 114, "home": [10, 14, 31, 69, 81, 82, 86, 91, 98, 108], "homepag": 30, "hong": 100, "hoogl": 112, "hook": 83, "host": [0, 3, 6, 7, 8, 10, 11, 17, 27, 36, 38, 52, 58, 61, 81, 92, 101, 116], "hostabl": 56, "hoster": 13, "hostnam": [10, 12, 38, 92, 94, 116], "hostnames_plugin": 87, "hotkei": [10, 25], "hour": [43, 79, 97], "hous": 30, "house_numb": 30, "housekeep": 7, "hovercard": 74, "how": [4, 5, 6, 7, 8, 9, 11, 13, 16, 19, 38, 49, 74, 78, 80, 81, 82, 84, 85, 92, 113], "howev": [13, 30, 53, 56, 87, 98], "hr": [70, 76, 110], "href": [49, 79, 96], "hsb": 110, "ht": 110, "html": [1, 3, 6, 10, 11, 13, 19, 23, 27, 30, 31, 38, 46, 49, 53, 65, 69, 74, 81, 82, 85, 96, 98, 99, 110], "html_math_render": 3, "html_str": 110, "html_to_text": [94, 110], "html_url": 30, "htmlelement": [59, 110], "http": [0, 1, 2, 3, 4, 7, 9, 10, 11, 13, 14, 17, 19, 21, 23, 24, 25, 26, 27, 30, 31, 34, 37, 38, 39, 43, 47, 48, 49, 51, 52, 53, 54, 57, 58, 59, 62, 63, 65, 67, 69, 74, 75, 78, 79, 81, 82, 83, 84, 85, 86, 91, 94, 98, 102, 109, 110, 116, 117], "http2": [10, 21], "http_connect": 8, "http_digest_auth_pass": 75, "http_digest_auth_us": 75, "http_host": 8, "http_protocol_vers": 10, "http_x_forwarded_for": 8, "http_x_real_ip": 8, "http_x_scheme": 8, "http_x_script_nam": 8, "httpclient": 96, "httpd": 6, "httpx": [10, 21, 71, 85], "hu": [53, 110], "hub": 112, "huge": [71, 85], "human": [30, 110], "humanize_byt": [94, 110], "humanize_numb": [94, 110], "hy": 110, "i": [0, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 53, 54, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 81, 82, 83, 84, 85, 86, 87, 91, 92, 94, 95, 96, 97, 98, 100, 101, 102, 103, 105, 107, 108, 109, 110, 113, 114, 116, 117], "i18n": [91, 92, 94], "i18n_origin": 99, "i686": 72, "ia": [110, 112], "iana": 69, "icon": 112, "id": [7, 10, 30, 47, 51, 53, 64, 69, 71, 82, 103, 110], "idea": 60, "ident": [43, 62, 69, 72, 116], "identif": 110, "identifi": [46, 49, 57, 78, 116], "ie": [53, 82, 110], "iframe_src": 47, "ignor": [11, 14, 28, 47, 49, 53, 96, 100], "il": 53, "illustr": 5, "ilo": 110, "imag": [1, 3, 4, 9, 10, 18, 24, 26, 29, 40, 45, 64, 65, 68, 74, 75, 78, 80, 81, 82, 87, 98, 113, 114, 116], "image_proxi": [2, 10, 24, 87], "image_url": 78, "imagemagick": [3, 85], "imagin": 35, "imdb": 57, "img": [53, 98, 112], "img_format": 30, "img_src": [30, 74], "imgmath": 3, "imgmath_font_s": 3, "imgmath_image_format": 3, "imgmath_latex": 3, "imgur": 112, "immedi": [10, 25, 105], "implement": [4, 9, 11, 13, 19, 26, 27, 28, 29, 30, 31, 42, 43, 53, 55, 57, 59, 60, 69, 74, 78, 80, 82, 83, 84, 92, 94, 95, 96, 98, 104, 105, 108, 109, 110, 116], "impli": 19, "import": [85, 99, 100, 104], "imposs": 97, "improp": 65, "improv": [92, 111], "ina": 112, "inact": [19, 31], "inbound": [2, 10, 24], "incl": 82, "includ": [6, 7, 8, 9, 13, 18, 19, 35, 38, 71, 74, 81, 82, 85, 100, 108, 110, 116], "includeopt": 6, "inclus": 114, "incom": [6, 13, 96], "incoming_links_asc": 34, "incoming_links_desc": 34, "inconsist": [96, 109], "incr": 105, "incr_count": [94, 105], "incr_sliding_window": [94, 105], "increas": [13, 26, 98, 109], "increment": 105, "indent": [31, 85, 116], "independ": [54, 69], "index": [6, 36, 37, 45, 60, 62, 67, 78, 110], "indic": [13, 37, 74, 78], "individu": [37, 108], "infinit": 105, "infinite_scrol": [10, 25, 63, 68], "infinitescrollajax": 43, "influenc": 50, "info": [10, 20, 21, 74, 81, 82, 92, 94, 116], "info_fold": 99, "info_msg": 116, "infobox": 74, "infopag": [94, 99], "infopageset": [94, 99], "inform": [10, 12, 19, 21, 23, 27, 30, 71, 81, 82, 92, 98, 99, 101, 102, 106, 111, 116], "infrastructur": [2, 4, 11, 26], "inherit": [85, 106], "ini": [6, 7, 8, 11, 26, 81, 117], "init": [11, 28, 29, 39, 41, 58, 71, 77, 81, 98, 100, 109, 116], "initgroup": 11, "initi": [4, 10, 11, 14, 16, 19, 28, 29, 31, 32, 35, 36, 37, 38, 58, 71, 81, 85, 98, 100, 104, 105, 109, 116], "inlin": 80, "inod": 116, "input": [1, 19, 69, 85], "insecur": 10, "insert": [85, 116], "insid": [10, 35, 81, 97, 116], "insight": 93, "inspect": [4, 9, 81, 117], "inspir": [105, 111], "instagram": 110, "instal": [2, 3, 4, 6, 7, 8, 11, 13, 14, 22, 27, 36, 37, 38, 39, 59, 72, 80, 81, 83, 84, 85, 86, 92, 108, 115], "instanc": [0, 1, 2, 5, 6, 7, 8, 10, 11, 14, 19, 22, 24, 25, 26, 31, 34, 35, 36, 37, 38, 39, 51, 53, 54, 56, 62, 63, 64, 66, 71, 75, 78, 81, 82, 83, 87, 92, 99, 105, 109, 111, 116, 117], "instance_nam": [1, 2, 7, 10, 20], "instant": 82, "instanti": [31, 105], "instead": [11, 19, 25, 37, 43, 56, 79, 85, 105], "institut": [29, 44], "instruct": [59, 85, 111], "int": [30, 51, 85, 97, 98, 105, 106, 109, 110], "int_or_zero": [94, 110], "integ": [98, 109], "integr": [13, 35, 37, 82, 91, 92], "intend": [7, 31, 47, 109], "intent": [14, 27, 116], "intention": 64, "interact": [7, 10, 115, 116], "intercept": 96, "interest": [6, 7, 8, 77], "interfac": [6, 10, 18, 19, 21, 23, 25, 53, 54, 67], "interfer": 27, "intermedi": 82, "intern": [31, 34, 53, 57, 100, 110], "internet": [10, 25, 39, 48, 81, 92, 111], "internet_archive_scholar": 112, "internetarchivescholar": 112, "interpret": [11, 53, 82, 85], "intersect": 100, "intersphinx_map": 85, "interv": [13, 43, 98], "introduc": [39, 74, 80, 85, 116], "introduct": 82, "intuit": 85, "inv": 85, "invalid": [14, 96], "inventori": 85, "investig": 96, "invidi": [101, 112], "invidunt": 85, "io": [11, 36, 82, 85, 110, 112], "ip": [4, 6, 8, 12, 14, 21, 49, 69, 81, 92, 93, 94, 102, 116], "ip_limit": 14, "ip_list": 14, "ipecho": 0, "ipf": 41, "ipsum": [85, 114], "iptabl": 116, "ipv4": [14, 19, 21, 96, 116], "ipv4_prefix": 14, "ipv4address": 96, "ipv4network": 96, "ipv6": [14, 19, 21, 81, 96, 116], "ipv6_prefix": 14, "ipv6address": 96, "ipv6network": 96, "ir": 100, "is_broken_text": 49, "is_created_for_kid": 47, "is_ddg_captcha": 49, "is_instal": [4, 14], "is_locale_support": 31, "is_missing_required_attribut": [32, 33], "is_suspici": 96, "is_valid_lang": [94, 110], "is_vpn_connect": 59, "isbn": 30, "isn": 73, "iso": [19, 25, 30, 34, 69, 79, 110], "isol": [10, 81, 82], "issn": 30, "issu": [0, 10, 11, 17, 19, 30, 81, 96, 109, 111, 116], "issue_url": [10, 17], "ist": 109, "ital": [30, 85], "item": [7, 29, 30, 31, 38, 57, 71, 78, 79, 85, 94, 103, 105], "iter": [31, 99], "iter_pag": 99, "its": [13, 27, 28, 29, 32, 34, 36, 45, 49, 53, 74, 77, 78, 85, 86, 87, 93, 109, 110, 111, 116], "itself": [11, 14, 27, 43, 67], "iv": 112, "j": [12, 49, 54, 80, 84], "ja": [45, 53, 76, 110, 112], "jackett": 71, "jahr": 57, "jahrzehnt": 57, "jahrzent": 57, "jakarta": 96, "jame": 96, "java": 96, "javafx": 96, "javascript": [49, 84, 110], "jbo": 110, "jersei": 96, "jim": 98, "jinja": [85, 98, 99], "jinja2": 82, "jinja_context": 85, "job": [91, 115], "join": [92, 98, 110, 111], "joinpeertub": 62, "jon": 10, "journal": [30, 41, 53, 77], "jp": [45, 53], "jpeg": 78, "js_variabl": 110, "js_variable_to_python": [94, 110], "json": [10, 23, 28, 31, 34, 36, 37, 48, 53, 57, 59, 62, 63, 65, 70, 78, 82, 87, 100, 110], "json_engin": 112, "jsonencod": 31, "jspb": 53, "jump": [9, 10, 81, 82, 114], "just": [0, 1, 14, 26, 28, 29, 36, 37, 38, 43, 51, 65, 81, 82, 84, 85, 93, 98, 111, 116], "just_match": 34, "justo": 85, "jv": 110, "k": 11, "ka": 110, "kasd": 85, "kavin": 63, "kb": 13, "kbd": 85, "kc": 112, "ke": 53, "keep": [6, 8, 10, 16, 21, 81, 82, 83, 114], "keep_onli": 16, "keepalive_expiri": [19, 21], "kei": [7, 10, 19, 30, 31, 35, 36, 38, 48, 53, 68, 71, 73, 91, 96, 98, 100, 105, 109], "kelvin": 103, "kernel": [40, 72], "keyerror": 96, "keyword": [36, 38, 95, 102, 114], "kickass": 112, "kid": 47, "kind": [6, 45, 69, 85, 93], "kiss_": 85, "kk": 110, "kl": 49, "km": 110, "kn": 110, "know": [6, 11, 19, 69, 81, 85, 91, 93], "knowledg": 85, "known": [11, 14, 74, 82, 96, 100, 103, 111], "ko": [53, 76, 110, 112], "kong": 100, "kr": 53, "krc": 110, "ku": 110, "kv": 110, "kw": 110, "ky": 110, "l": [7, 22, 35, 49, 81, 82, 85, 103, 112, 116], "l19": 81, "la": [22, 85, 110, 116], "label": [85, 110], "labor": 85, "labori": 85, "lack": 27, "lambda": 103, "land": 57, "lang": [1, 11, 76, 79, 82, 106, 110], "lang2domain": 76, "lang_al": 79, "lang_en": [53, 82], "lang_zh": 53, "languag": [1, 10, 11, 19, 23, 25, 30, 31, 34, 41, 42, 43, 47, 49, 53, 59, 60, 61, 62, 66, 74, 76, 77, 79, 82, 85, 87, 96, 99, 100, 106, 110, 113], "language_support": [31, 85], "language_tag": [94, 100], "languageconvert": 74, "larg": [11, 56, 116, 117], "larger": 98, "largest": 41, "last": [11, 30, 43, 53, 82, 84, 85, 98, 109], "last_edit_asc": 34, "last_edit_desc": 34, "lat": 30, "later": [13, 37, 116], "latest": [7, 10, 11, 21, 30, 48, 82, 86], "latest_top": 48, "latex": 3, "latexextra": 3, "latexmk": 3, "latitud": 30, "latn": 69, "latter": [63, 74, 75, 85], "launch": 116, "layout": [25, 36, 38], "lazi": 11, "lb": [53, 110], "lc": 74, "lc_all": 11, "ld": 81, "lead": [14, 30, 49], "leak": [35, 71], "learn": 85, "least": [43, 49, 53, 69, 81, 96, 110], "leav": [10, 23, 116], "leco": 112, "lecom": 112, "leech": 30, "leecher": [30, 46], "left": [25, 26, 85, 98, 100], "legal_nam": 10, "legal_url": 10, "lemmi": [33, 112], "lemmy_typ": 54, "length": [27, 30, 85], "lepo": 112, "less": [6, 8, 37, 46, 62, 82, 85, 93, 96], "let": [81, 85, 93], "leta": 33, "letter": 69, "leu": 112, "level": [0, 27, 78, 85, 96], "lez": 110, "lg": 112, "li": [110, 116], "lib": [11, 77, 112], "lib_r": 112, "libbz2": 86, "libffi": [3, 10, 86], "liblzma": 86, "libncursesw5": 86, "libr": 60, "librari": [33, 38, 41, 80, 92, 94, 98, 109, 110, 112], "libreadlin": 86, "libretransl": 112, "librsvg": 3, "librsvg2": 3, "libsqlite3": 86, "libssl": [3, 10, 86], "libwww": 96, "libxml2": [3, 10, 86], "libxmlsec1": 86, "libxslt": [3, 10], "licens": [30, 36, 116], "license_nam": 30, "license_url": 30, "life": 82, "light": [10, 25], "like": [3, 6, 7, 10, 12, 19, 21, 25, 27, 30, 36, 37, 38, 43, 45, 46, 48, 49, 51, 56, 66, 73, 82, 84, 85, 98, 101, 102, 110], "like_hotkei": 87, "limit": [2, 4, 6, 7, 8, 10, 11, 13, 19, 21, 24, 26, 30, 35, 36, 37, 38, 39, 45, 53, 73, 74, 79, 85, 92, 94, 98, 105], "limit_total_byt": [13, 98], "limiter_cfg_schema": [4, 14], "line": [4, 6, 8, 27, 33, 39, 82, 91, 116], "lingva": 112, "link": [2, 10, 11, 14, 17, 20, 24, 25, 30, 43, 46, 49, 53, 63, 64, 71, 74, 75, 78, 79, 80, 81, 96, 111], "link_nam": 30, "link_src": 116, "link_token": [14, 24], "linkdexbot": 96, "linkloc": [14, 96], "lint": [4, 82], "linux": [1, 3, 6, 7, 8, 10, 11, 16, 19, 33, 59, 80, 85, 92, 112, 116], "linuxcontain": 116, "linuxcontainers_org_nam": 116, "linuxdoc": 85, "list": [6, 7, 13, 14, 18, 19, 23, 26, 28, 29, 30, 31, 33, 34, 35, 38, 39, 43, 45, 46, 47, 49, 53, 57, 62, 63, 64, 66, 69, 71, 74, 75, 78, 79, 80, 82, 86, 87, 92, 94, 98, 99, 100, 101, 102, 103, 106, 110, 111, 114], "list_of_wikipedia": 74, "listen": [0, 6, 8, 11, 34, 116], "lite": 65, "liter": [31, 80, 96, 98], "literalinclud": 85, "littl": [60, 109], "live": [81, 84, 85, 105, 116], "live_them": [82, 84], "livespac": 112, "livetim": 96, "ll": 96, "lmo": 110, "ln": [6, 8, 11, 81], "lo": [110, 112], "load": [6, 10, 11, 13, 16, 21, 25, 28, 31, 32, 97, 100, 101, 108, 110, 116], "load_engin": [31, 32, 33], "load_set": [94, 108], "load_user_set": 108, "load_yaml": [94, 108], "loader": [31, 33, 80, 92, 94], "loadmodul": 6, "lobst": 112, "loc": 112, "local": [0, 1, 2, 6, 7, 8, 10, 11, 14, 19, 21, 22, 24, 25, 26, 28, 30, 31, 33, 45, 47, 49, 53, 67, 69, 74, 75, 81, 82, 83, 85, 92, 93, 94, 99, 104, 108, 110, 112, 116, 117], "local_address": 19, "local_imag": 116, "locale_best_match": [94, 100], "locale_default": 99, "locale_nam": [74, 94, 100], "locale_tag": 100, "locale_tag_list": 100, "locales_initi": [94, 100], "localhost": [0, 6, 7, 8, 22, 37], "localtest": 117, "locat": [2, 6, 8, 10, 11, 13, 15, 24, 30, 42, 67, 69, 74, 85, 91, 99, 101, 108], "lock": [10, 110], "log": [4, 7, 11, 14, 20, 65, 81, 93, 96, 111, 117], "log_msg": 96, "logger": [11, 96], "logic": 27, "login": [0, 9, 10, 22, 81], "logout": 22, "lokal": 14, "lomig": 75, "lon": 30, "long": [13, 31, 49, 93, 98], "long_max": 96, "long_max_suspici": 96, "long_window": 96, "longer": [26, 43, 49, 82, 96, 98, 116], "longhand": 34, "longitud": 30, "look": [6, 10, 11, 28, 29, 36, 43, 55, 82, 84, 86, 101, 103], "loop": [85, 105], "lorem": [85, 114], "loremlorem": 85, "lot": [43, 66, 81, 105], "love": 84, "low": 45, "low_prior": 101, "lower": [10, 23, 101, 105], "lower_prior": 101, "lowercas": 32, "lowest": [50, 103], "lr": [53, 82, 112], "lrc": 110, "lrwxrwxrwx": 81, "lsb": 11, "lt": [53, 82, 110, 112, 116], "lua": 105, "lua_script_storag": [94, 105], "lucen": 37, "lucki": 114, "luizm": 86, "lunch": 60, "lv": [53, 110, 112], "lxc": [81, 92, 115], "lxc_host_prefix": 116, "lxc_repo_root": 116, "lxc_set_suite_env": 116, "lxc_suit": [81, 116], "lxc_suite_info": 116, "lxc_suite_instal": 116, "lxc_suite_install_info": 116, "lxc_suite_nam": 116, "lxd": [81, 115], "lxml": [3, 10, 110], "m": [10, 13, 34, 53, 85, 110], "m_time": [98, 109], "ma": 53, "machin": [0, 93], "macrolanguag": 69, "made": [0, 21, 43, 81, 98, 109], "magazin": [30, 41], "magna": 85, "magnet": [46, 71], "magnetlink": 30, "mah": 112, "mai": [10, 11, 21, 49, 70, 71, 78, 81, 85, 86, 93, 96, 98, 110, 111, 116], "mailto": [10, 20], "mainli": [53, 100], "mainlin": 8, "maintain": [2, 7, 10, 11, 13, 14, 26, 30, 41, 46, 59, 77, 81, 85, 88, 92, 115], "mainten": [4, 9, 81, 92, 98, 117], "maintenance_mod": [13, 98], "maintenance_period": [13, 98], "major": 11, "make": [3, 7, 13, 19, 27, 31, 33, 49, 53, 59, 79, 80, 81, 84, 85, 86, 91, 93, 96, 109, 113, 116], "makefil": [27, 80, 81, 84, 92, 116], "man": [85, 112], "manag": [22, 27, 38, 80, 81, 84, 92, 98, 100, 108, 109, 117], "mandatori": [51, 52, 53, 58, 98], "mani": [7, 10, 23, 38, 40, 54, 64, 96, 97], "manipul": 116, "mankier": 112, "manli": 53, "manual": [10, 19, 26, 31, 82, 85], "map": [1, 11, 18, 31, 32, 35, 42, 45, 49, 53, 69, 74, 76, 79, 85, 98, 100, 101, 110, 113, 114], "margin": 43, "mariadb_serv": 38, "mark": [10, 85], "markdown": [99, 110], "markdown_str": 110, "markdown_to_text": [94, 110], "market": 43, "marku": 116, "markup": [80, 99], "mass": 27, "massiv": 13, "master": [11, 26, 27, 81, 85, 91, 117], "mastodon": [33, 112], "match": [36, 37, 40, 72, 78, 96, 100, 101, 103, 107, 109], "match_json": 78, "match_local": [94, 100], "materi": 112, "material_icon": 112, "math": [3, 80], "mathemat": [12, 85], "mathrm": 85, "matrix": [33, 111], "matter": [30, 81, 93], "mau": 112, "max": [10, 13, 23, 30, 45, 69, 98, 105], "max_ag": [13, 98], "max_ban_time_on_fail": [10, 23], "max_connect": [19, 21], "max_keepalive_connect": [19, 21], "max_pag": [10, 43, 45, 65, 69], "max_redirect": [21, 30], "max_request_timeout": [10, 21], "maxim": 27, "maximum": [10, 13, 21, 27, 30, 43, 45, 51, 65, 69, 79, 96, 98], "mayb": 35, "mb": [13, 30], "mc": [85, 112], "md": [10, 20, 36], "md5": 114, "mdn": 112, "me": [37, 45, 75, 85, 116], "mean": [10, 11, 23, 39, 43, 81, 85, 93, 105], "meaning": [27, 84, 85], "meant": [7, 23, 85], "measur": [74, 103], "media": [1, 18, 48, 56, 70, 112], "mediathekview": 38, "mediathekviewweb": 112, "mediawiki": [33, 42, 112], "medium": 30, "meet": 98, "mem": 98, "member": [22, 96, 100], "membership": 7, "memori": [24, 36, 69, 98], "mention": [69, 114], "menu": 45, "menuselect": 85, "merg": [11, 16, 26, 72, 81, 91], "mess": 69, "messag": [19, 20, 27, 30, 31, 59, 78, 84, 85, 91, 92, 94, 96, 97], "met": 82, "meta": [59, 64, 74, 85], "metacpan": 112, "metadata": [46, 85], "metasearch": [10, 30, 41, 92, 111], "method": [1, 5, 10, 11, 13, 14, 26, 30, 37, 48, 63, 68, 85, 95, 99, 110], "metr": 103, "metric": 20, "mg": 110, "mhr": 110, "mi": [103, 112], "microsoft": 111, "middl": 92, "might": [6, 7, 8, 11, 19, 27, 37, 49, 73, 79, 81, 85, 87, 93, 116], "migrat": [4, 5, 98, 109], "mile": 103, "million": 37, "mime": 98, "mimetyp": [96, 98], "min": [25, 30, 110], "min_len": 110, "mind": [98, 114], "minim": [10, 13, 74, 82, 84, 85], "minimun": 10, "minu": [53, 105], "minut": [7, 96], "mirror": [77, 112], "misbehav": 27, "misinform": 44, "miss": [11, 39, 85, 96, 97], "mistletoepag": 99, "misus": 109, "mitig": 13, "mitmproxi": [10, 21], "mix": [81, 111], "mixcloud": 112, "mj12bot": 96, "mjk": 112, "mjkimg": 112, "mjknew": 112, "mk": 110, "mkdir": [6, 7, 8, 10, 13], "ml": [53, 54, 110], "mn": 110, "mo": [74, 91], "mod": 85, "mod_autoindex": 6, "mod_head": 6, "mod_proxi": 6, "mod_proxy_http": 6, "mod_proxy_uwsgi": 6, "mod_setenvif": 6, "mod_ssl": 6, "mod_uwsgi": 6, "mode": [4, 6, 10, 38, 75, 85, 98, 109, 116], "model": [98, 100, 110], "moder": [10, 23, 30, 79], "modif": [81, 109], "modifi": [7, 10, 11, 19, 56, 59, 82, 84, 85, 98, 100, 109, 114], "modul": [11, 28, 29, 31, 32, 74, 83, 85, 95, 97, 98, 112], "modular": 31, "moduletyp": [31, 32], "mojeek": 112, "moment": [37, 38, 60], "monet": 93, "monitor": [11, 14, 81, 91], "monkei": 100, "mono": 3, "monolith": 72, "month": [1, 30, 43, 53, 79, 87], "more": [10, 11, 13, 19, 20, 21, 27, 30, 31, 38, 45, 47, 53, 55, 60, 62, 65, 66, 69, 71, 82, 85, 87, 92, 93, 96, 98, 105, 109, 110, 111, 114, 116], "morecol": 85, "moreov": 111, "morerow": 85, "morti": [10, 26], "morty_kei": 7, "morty_url": 7, "most": [3, 6, 13, 19, 23, 31, 37, 38, 41, 45, 49, 50, 64, 69, 77, 81, 82, 93, 110, 117], "mostli": [11, 40, 74, 85], "motiv": [14, 80], "mount": [7, 13, 67], "mount_prefix": 67, "move": [26, 27, 31, 85, 105], "movi": [38, 46, 57, 112], "moviepilot": 33, "mozhi": 112, "mozilla": [96, 110], "mp": 57, "mr": [33, 53, 110], "mrj": 110, "msg": [95, 96], "msnbot": 96, "mt": 110, "much": [27, 85], "mullvad": 33, "mullvad_leta": 59, "multi": [11, 109], "multilingu": 15, "multipl": [10, 19, 21, 25, 30, 31, 74, 82, 85, 93, 109, 112], "multipli": 103, "multithread": [11, 109], "multius": 10, "music": [18, 63, 113], "music_song": 63, "musl": [40, 72], "must": [11, 13, 14, 20, 21, 27, 30, 32, 35, 36, 38, 49, 58, 64, 67, 83, 85, 98, 101, 109, 110, 111], "mutablemap": 110, "mv": 81, "mvw": 112, "mwl": 110, "mwm": 112, "mwmbl": [10, 23, 33, 87, 112], "mx": 53, "my": [7, 19, 28, 29, 37, 49, 53, 74, 81, 85, 110, 113], "my_arg": 85, "my_column": 38, "my_databas": 38, "my_funct": 85, "my_other_arg": 85, "my_tabl": 38, "myinstanc": 108, "mymemori": 112, "mymongo": 36, "myredi": 36, "mysql_serv": 38, "mysxng": 108, "myv": 110, "mz": 112, "mzn": 110, "n": [0, 13, 35, 81, 98, 109, 116], "na": 53, "nah": 110, "name": [1, 6, 8, 10, 11, 12, 13, 16, 19, 25, 26, 28, 29, 31, 32, 35, 36, 37, 38, 39, 41, 45, 46, 48, 51, 52, 54, 58, 63, 64, 65, 66, 68, 69, 75, 77, 79, 80, 81, 83, 94, 96, 97, 98, 99, 100, 101, 102, 103, 105, 106, 108, 109, 110, 111, 112, 114, 116], "namespac": [30, 31, 32, 101], "nap": 110, "narrow": [64, 100], "naver": 112, "navig": 111, "nb": [69, 110], "nd": 110, "ndr": 70, "ne": 110, "nearmatch": 34, "necessari": [19, 26, 38, 109], "need": [6, 7, 8, 9, 10, 11, 13, 14, 19, 22, 24, 25, 26, 27, 29, 34, 36, 38, 39, 43, 47, 48, 49, 53, 64, 69, 74, 79, 81, 82, 83, 84, 85, 86, 87, 91, 92, 93, 96, 100, 114, 116], "neither": [92, 110], "net": [0, 59, 74, 75], "netflix": 57, "netloc": [74, 98], "netvib": 96, "network": [0, 10, 14, 19, 21, 63, 65, 75, 96, 116], "never": [11, 31, 81, 111], "new": [6, 7, 8, 9, 10, 11, 18, 19, 25, 26, 31, 38, 45, 51, 64, 65, 68, 69, 70, 82, 86, 87, 96, 105, 109, 110, 113], "new_issue_url": 10, "newest": 41, "next": [10, 25, 63, 68, 85, 98], "next_maintenance_tim": 98, "nextpag": [63, 68], "ng": 53, "nginx": [2, 4, 9, 14, 26, 81, 92, 115, 116, 117], "nielsen": 98, "nightmar": 85, "nil": 116, "nisi": 85, "nl": [53, 100, 110], "nlnet": [19, 35, 36, 37, 38], "nn": 110, "no_no": 69, "no_result_for_http_statu": 79, "no_signature_error": 78, "noconfirm": [3, 10], "node": [12, 80, 84, 102, 110], "nodej": 86, "nofollow": [10, 24], "noindex": [10, 24], "non": [41, 60], "none": [6, 10, 23, 28, 30, 31, 32, 34, 37, 39, 41, 48, 53, 65, 66, 71, 77, 79, 82, 83, 85, 96, 97, 98, 99, 100, 105, 106, 107, 108, 109, 110], "nonumi": 85, "noopen": [10, 24], "nor": [92, 110], "normal": [13, 30, 57, 85, 110], "normalize_url": [94, 110], "norwegian": 69, "nosniff": [10, 24], "nosql": [33, 39], "nostrud": 85, "notat": [10, 30, 45], "note": [10, 15, 27, 37, 66, 81, 82, 87, 98, 109, 114], "noth": [10, 91, 98, 110], "notic": 81, "now": [0, 6, 8, 10, 26, 37, 81, 82, 83, 84, 98, 109, 110], "npm": [82, 112], "nsfw": [43, 73], "nt": 112, "null": [6, 8, 21, 98], "nullcach": 98, "nullif": 38, "num": [53, 110], "number": [7, 10, 11, 13, 14, 21, 24, 30, 38, 51, 53, 63, 68, 69, 71, 78, 79, 85, 87, 98, 105, 107, 109, 110, 116], "number_of_result": 30, "number_str": 110, "numer": [37, 85], "numref": 85, "nvm": 84, "nvr": 112, "nw": 85, "nyaa": 112, "nz": 53, "o": [31, 85, 86, 110, 117], "oad": 112, "oap": 112, "oauth": 56, "obj": [74, 85, 110], "object": [30, 31, 45, 59, 78, 83, 85, 96, 98, 100, 105, 109, 110], "objets_globaux": 110, "observ": 57, "obtain": [13, 19, 98], "oc": [100, 110], "occitan": 100, "oct": 11, "od": 112, "odyse": [33, 112], "oe": [53, 82], "off": [6, 8, 10, 13, 23, 27, 73, 98, 116], "offer": [11, 43, 46, 48, 49, 53, 67, 70, 79, 111], "offic": 43, "offici": [42, 54, 56, 57, 63, 78, 100], "official_api_document": [19, 31], "officiat": 45, "offlin": [19, 30, 35, 85, 94], "offlineprocessor": 107, "offload": 11, "offset": [38, 45, 79], "often": [30, 31, 49, 64, 81, 85, 115], "ok": [10, 26, 82], "okhttp": 96, "old": [6, 7, 26, 81, 84, 98], "old_redis_url_default_url": [94, 104], "oldest": [13, 41, 98], "omit": 39, "on_result": 83, "onc": [3, 10, 26, 81, 82, 105, 109, 110, 116], "one": [6, 8, 10, 11, 16, 18, 19, 21, 27, 31, 32, 38, 53, 54, 57, 68, 69, 72, 74, 81, 82, 83, 85, 92, 95, 96, 100, 103, 109, 110, 116], "ones": [30, 37], "onli": [3, 7, 9, 10, 11, 13, 14, 16, 19, 25, 27, 30, 31, 35, 38, 43, 45, 46, 47, 49, 54, 64, 71, 74, 77, 78, 79, 82, 83, 84, 85, 91, 96, 98, 100, 101, 105, 109, 110, 111, 116], "onlin": [41, 57, 85, 92, 94], "online_curr": [33, 107, 112], "online_dictionari": [33, 107, 112], "online_url_search": [33, 78, 107, 112], "onlinecurrencyprocessor": 107, "onlinedictionaryprocessor": 107, "onlineprocessor": 107, "onlineurlsearchprocessor": 107, "only_search_languag": 110, "only_show_green_result": [10, 83], "open": [0, 6, 7, 10, 12, 25, 27, 36, 38, 48, 53, 56, 70, 81, 82, 85, 87, 92, 93, 111, 116], "open_access_doi_rewrit": 87, "openairedataset": 112, "openairepubl": 112, "openapi": 70, "openli": 45, "openrc": 40, "openrepo": 112, "opensearch": 111, "openssl": [3, 10, 21], "openstreetmap": [1, 112], "openvers": 112, "oper": [40, 59, 72, 75, 85, 93, 116], "opportun": 26, "optim": [100, 109], "option": [6, 7, 10, 11, 13, 14, 16, 19, 24, 27, 31, 35, 36, 38, 41, 46, 49, 51, 52, 69, 74, 77, 81, 82, 85, 87, 92, 93, 95, 109, 110], "opv": 112, "order": [6, 10, 21, 27, 34, 36, 37, 38, 46, 48, 50, 51, 85, 96], "ordered_plugin_list": 106, "org": [0, 1, 3, 10, 11, 12, 14, 17, 21, 24, 25, 30, 34, 38, 42, 49, 51, 52, 62, 67, 74, 79, 85, 91, 96, 101, 102, 110, 111, 116], "org_bot": 96, "organ": [14, 96], "orient": 6, "origin": [4, 14, 19, 26, 28, 31, 36, 38, 53, 69, 77, 78, 81, 85, 91], "orphan": 91, "os_str": 110, "osm": [1, 30, 112], "other": [7, 9, 13, 14, 18, 19, 21, 27, 30, 34, 40, 41, 43, 46, 53, 56, 69, 74, 77, 82, 85, 93, 101, 108, 110, 111], "otherwis": [23, 30, 32, 59, 84, 111, 116], "our": [2, 5, 7, 9, 27, 81, 82, 84, 85, 94, 115, 116], "out": [7, 13, 27, 28, 29, 36, 37, 38, 47, 49, 66, 82, 83, 85, 86, 98], "outdat": 43, "outgo": [4, 10, 13, 15, 19, 98], "output": [3, 19, 82, 85, 87, 116, 117], "outsid": [81, 86], "outstand": 85, "over": [0, 14, 26, 47, 68, 69, 78, 81, 85, 92, 99, 100, 101, 116], "overlai": 78, "overlin": 85, "overlook": 81, "overrid": [10, 16, 21], "overview": [7, 19, 33, 79, 80, 82, 87, 112], "overwrit": [7, 14, 19], "overwritten": [2, 10, 21, 30], "own": [6, 7, 9, 10, 13, 17, 20, 27, 36, 38, 39, 45, 49, 53, 73, 81, 82, 92, 109, 113, 114], "owner": [11, 111, 116], "p": [6, 7, 8, 10, 11, 65, 79, 110, 112, 116], "p2p": 75, "pa": 110, "pack": 112, "packag": [3, 4, 7, 11, 31, 33, 36, 38, 39, 81, 82, 85, 95, 116, 117], "package_nam": 30, "packagist": 112, "pacman": [3, 6, 8, 10, 85], "paddl": 48, "page": [6, 8, 10, 16, 18, 19, 20, 21, 25, 27, 30, 31, 37, 38, 43, 45, 46, 49, 51, 53, 63, 64, 65, 68, 69, 74, 79, 85, 87, 91, 93, 99, 107, 111, 112, 114], "page_class": 99, "page_s": [51, 79], "pagenam": 99, "pageno": [30, 79, 87, 106], "pagenumb": 30, "pagin": 56, "pai": 84, "pair": 53, "palletsproject": 85, "pam": 110, "pap": 100, "papiamento": 100, "paragraph": 74, "param": [29, 30, 39, 43, 49, 53, 62, 65, 69, 71, 74, 76, 78, 79, 85, 107], "paramet": [13, 23, 31, 32, 38, 39, 47, 53, 79, 80, 83, 97, 99, 100, 105, 106, 107, 110], "parameter": 13, "parent": 85, "pari": [49, 114], "pars": [29, 31, 34, 35, 46, 49, 53, 62, 65, 71, 76, 78, 97, 100, 102], "parse_gs_a": 53, "parse_regex": 35, "parse_tineye_match": 78, "parse_url": 76, "parse_web_api": 65, "parse_web_lit": 65, "parsed_url": [83, 98], "parser": 99, "parser_r": 107, "parsererror": 110, "part": [13, 14, 19, 67, 85, 96, 98, 116], "parti": [93, 111], "partial": [36, 85, 94, 105], "particular": 53, "pass": [6, 14, 27, 28, 49, 53, 87, 96, 98, 100, 110], "pass_ip": [14, 96], "pass_searxng_org": 14, "passlist": [14, 96], "password": [19, 22, 36, 37, 38, 75], "past": 1, "patch": [27, 85, 86, 100], "path": [6, 10, 13, 16, 21, 22, 26, 34, 35, 48, 52, 57, 81, 82, 85, 86, 96, 98, 108, 109, 110, 111, 116], "pathlib": 96, "pathnam": 98, "pattern": [34, 101, 109], "payload": 37, "paywal": 12, "pb": 53, "pc": 53, "pd": 112, "pdb": 112, "pdbe": 112, "pdf": [3, 30, 41, 77], "pdf_url": 30, "pe": 53, "peer": [62, 75], "peertub": [33, 112], "peopl": [45, 73, 93, 111], "pep": 85, "pep517": [10, 82], "pep8": [27, 82], "per": [11, 27, 30, 51, 85], "perfect": 81, "perform": [10, 11, 14, 25, 30, 34, 39, 78, 86, 98, 105, 114], "period": [13, 98], "perl": 96, "permiss": [11, 13], "persist": 31, "person": [57, 111, 114], "petalbot": 96, "pfl": 110, "pgo": 112, "ph": [53, 112], "photo": 55, "photon": 112, "php": 34, "phrase": 85, "pi": 112, "pictur": 43, "pid": 11, "piec": 85, "pin": 112, "ping": 96, "ping_kei": 96, "ping_live_tim": 96, "pinterest": 112, "pip": [3, 10, 36, 38, 39, 82, 83], "pipe": [33, 112], "piped_filt": 63, "pipedapi": 63, "piratebai": 112, "pitfal": 4, "pixel": [30, 78], "pixrai": 96, "pk": 53, "pkg": 112, "pkg_go_dev": 112, "pl": [53, 100, 110], "pl_pl": 100, "place": [6, 8, 11, 27, 30, 31, 36, 38, 64, 85, 91, 93], "plai": [63, 68, 112], "plain": [0, 74], "plaintext": 85, "plan": 7, "platform": [51, 52, 56, 61, 111], "pleas": [26, 27, 37, 38, 82, 84, 85, 87, 114], "plenti": 27, "plugin": [1, 3, 4, 10, 11, 27, 38, 80, 85, 86, 87, 92, 94, 106], "plugin1": 10, "plugin2": 10, "pm": 110, "pnb": 110, "png": [30, 78, 98], "po": 91, "poc": 98, "pocket": [6, 8], "point": [7, 8, 10, 11, 78, 80, 81, 84, 85, 93, 96, 108], "pointer": 85, "polici": [10, 20, 24, 116], "polit": [43, 44], "poltisch": 44, "polygon": 85, "pool": [10, 19, 21], "pool_connect": [10, 19, 21], "pool_maxs": [10, 19, 21], "popular": [30, 37, 38, 68, 85], "popup": 74, "port": [0, 7, 10, 24, 27, 30, 31, 36, 38, 116], "portal": 70, "posix": 7, "posixpath": [14, 31, 108], "possibl": [7, 13, 16, 19, 30, 35, 41, 43, 51, 53, 74, 79, 81, 85, 87, 98, 109], "post": [1, 10, 27, 48, 49, 54, 56, 69, 81, 83, 87, 96, 112], "post_search": 83, "postcod": 30, "pot": 91, "pov": 85, "power": [35, 37, 38, 85], "ppc64le": 40, "ppd": 112, "ppdm": [63, 112], "pr": [26, 27, 74, 82, 84, 85, 91, 101], "pr1071": 47, "practic": 27, "pre": 109, "pre_request": [4, 14], "pre_search": 83, "preasearch": 64, "prebuild": 82, "precis": 110, "prefer": [5, 6, 8, 9, 10, 18, 19, 20, 43, 49, 53, 85, 87, 93, 99, 102, 114], "preference_sect": [94, 102], "prefix": [10, 14, 19, 25, 53, 96, 105, 114], "preinstal": 81, "prepar": 116, "prerequ": 38, "prerequisit": [14, 81, 85], "presarch": 64, "presearch": [33, 112], "present": [19, 39], "preserv": [27, 85], "press": 81, "pretti": 19, "prevent": 109, "preview": [30, 74], "previous": 82, "price": 50, "primari": [69, 98, 109], "prime": 80, "primer": [80, 92], "principl": [75, 85], "print": [55, 59], "priorit": [12, 68], "prioriti": [14, 100, 101], "privaci": [6, 7, 8, 10, 11, 13, 20, 25, 63, 75, 80, 85, 92, 96, 111, 114], "privacypolicy_url": [10, 20], "privat": [14, 15, 31, 35, 36, 37, 38, 48, 68, 71, 92, 96], "pro": 85, "probabl": 110, "probe": [14, 94], "problem": [6, 8, 10, 111, 116], "proc": 11, "procedur": [9, 26, 116], "process": [3, 7, 11, 13, 19, 39, 81, 82, 98], "processor": [31, 33, 39, 78, 85, 92, 94], "produc": 85, "product": [13, 20, 50, 80, 84, 98], "profession": 92, "profil": [10, 82, 92, 93, 108, 111], "profit": [41, 60], "prog": 53, "program": [36, 70, 82], "project": [11, 30, 52, 77, 81, 82, 85, 86, 92, 111], "prompt": [81, 82, 115], "proof": [60, 105], "proper": 93, "properti": [31, 34, 53, 98, 99, 109, 110], "property_nam": 71, "protect": [7, 10, 13, 14, 26, 27, 49, 92, 114], "protobuf": 53, "protocol": [0, 7, 21, 110], "provid": [13, 19, 27, 30, 34, 35, 37, 41, 42, 44, 46, 54, 57, 59, 71, 72, 85, 98, 109, 111], "prowlarr": 71, "proxi": [0, 2, 4, 6, 7, 10, 19, 21, 24, 26, 30, 31, 63, 81, 87, 93, 94, 96, 115, 116], "proxif": 10, "proxify_result": 10, "proxy1": [10, 19, 21], "proxy2": [10, 19, 21], "proxy3": 19, "proxy4": 19, "proxy_add_x_forwarded_for": 8, "proxy_buff": 8, "proxy_buffer_s": 8, "proxy_http": 6, "proxy_http_modul": 6, "proxy_modul": 6, "proxy_pass": 8, "proxy_request_buff": 8, "proxy_set_head": 8, "proxy_uwsgi": 6, "proxy_uwsgi_modul": 6, "proxyfix": 96, "proxypass": 6, "proxypreservehost": 6, "proxyq": [10, 21], "prune": 7, "psi": 85, "psimg": 112, "psnew": 112, "psvid": 112, "psychopg2": 38, "psycopg2": 38, "pt": [45, 53, 69, 100, 110], "pt_br": 69, "pt_pt": 100, "ptb": 112, "pub": 112, "public": [2, 7, 10, 12, 24, 30, 35, 36, 37, 38, 53, 57, 85, 111], "public_inst": [10, 17, 24], "publicli": 39, "publish": [30, 43, 45, 53], "publishedd": 30, "pubm": 112, "pull": [7, 27, 75, 84, 85, 91], "purg": 105, "purge_by_prefix": [94, 105], "puriti": 73, "purpos": [24, 30, 72], "push": [27, 82, 91], "put": [35, 38, 49, 69], "pwd": [7, 81, 116], "py": [3, 6, 8, 10, 23, 24, 30, 31, 35, 36, 37, 38, 39, 53, 67, 74, 80, 82, 85, 88, 99, 100, 104, 117], "py3": 82, "pybabel": 91, "pyenv": [10, 11, 36, 38, 39, 81, 82, 83, 117], "pygment": [82, 85], "pylintrc": 82, "pymongo": 36, "pyobj": 96, "pypi": [85, 112], "pyright": 82, "python": [3, 10, 11, 13, 19, 21, 24, 30, 31, 36, 38, 39, 80, 81, 84, 85, 86, 95, 96, 98, 100, 109, 110, 112, 117], "python2": 11, "python3": [3, 10, 11], "pythonhom": 11, "pythonpath": [11, 81], "pyyaml": 10, "q": [0, 1, 7, 10, 25, 49, 69, 82, 87], "q11573": 103, "q11579": 103, "q16639197": 52, "q253276": 103, "q306656": [19, 31], "q44316": 52, "q69362731": 103, "q712226": 49, "q99490479": 103, "qdm12": 59, "qu": 110, "qualiffi": 96, "qualifi": [13, 98], "qualiti": [3, 45, 74, 82, 85, 92], "queri": [10, 12, 19, 23, 25, 28, 29, 30, 34, 35, 36, 37, 38, 39, 40, 43, 45, 49, 53, 55, 57, 60, 62, 65, 69, 71, 72, 74, 76, 78, 79, 85, 87, 93, 97, 102, 103, 105, 106, 107, 110, 111, 112, 113], "query_enum": 35, "query_exampl": [94, 102], "query_in_titl": [10, 25], "query_keyword": [94, 102], "query_str": 38, "query_typ": [35, 37], "question": [85, 93, 111], "qui": 85, "quickli": 72, "quickstart": [27, 45, 80, 82, 92], "quit": [6, 7, 11, 27, 73, 81], "quot": 116, "qw": 112, "qwant": [0, 10, 23, 33, 87, 112], "qwant_categ": 65, "qwi": 112, "qwn": 112, "qwv": 112, "r": [10, 53, 110, 112, 116], "radio": 66, "radio_brows": [66, 112], "radiobrows": 33, "rais": [30, 58, 96, 97, 108, 110], "raise_for_httperror": 30, "rand": 10, "random": [30, 34, 93, 96, 110, 114], "randomli": [63, 75, 96], "rang": [11, 30, 31, 43, 45, 53, 60, 79, 85, 87, 96, 105, 107, 112], "rangl": 85, "rank": 45, "rapidli": [5, 26], "rate": [10, 14, 24, 30, 73, 74, 94], "rather": 19, "raw": [85, 99], "raw_cont": 99, "rb": 112, "rbg": 112, "rd": [36, 112], "rdbm": 38, "re": [5, 7, 26, 40, 72, 82, 109, 112], "re_search_url": 107, "reach": [13, 67, 85, 98, 105], "reactiv": 21, "read": [5, 10, 13, 22, 23, 27, 65, 73, 78, 79, 109], "readability_": 85, "readabl": [9, 30, 110], "reader": [81, 85], "readi": 81, "readm": [6, 11, 82], "readthedoc": 11, "real": [6, 8, 14, 64, 96], "real_ip": [14, 96], "realiz": 74, "realli": [41, 63, 68], "reason": [11, 32, 85, 98, 105], "rebas": 59, "reboot": [13, 116], "rebuild": [27, 82, 100], "rebum": 85, "recaptcha": 10, "recaptcha_searxenginecaptcha": [10, 23], "receiv": [14, 84, 98], "recent": 82, "reclaim": 111, "recogn": 11, "recol": 33, "recommend": [3, 5, 10, 11, 26, 27, 69, 82, 85, 86, 98, 109], "reconfigur": 26, "reconsid": 27, "record": [10, 20, 25, 30, 79, 85], "recreat": [98, 109], "red": 110, "reddit": 112, "redefin": 30, "redesign": 62, "redi": [2, 4, 7, 10, 11, 14, 15, 24, 26, 80, 81, 92, 94, 96, 117], "redirect": [12, 21, 30, 49, 53, 65, 74, 79, 82, 113], "redirect_to_first_result": 106, "redirectmatch": 6, "redis_serv": 36, "redisdb": [11, 22, 26, 104], "redislib": 105, "redispi": 105, "rediss": 22, "reduc": [13, 27, 44, 74, 96, 110], "ref": [30, 81, 83, 116], "refactor": 62, "refer": [2, 6, 8, 9, 44, 67, 69, 85, 93, 96, 106, 110], "referenc": 85, "referr": [10, 24], "refnam": 85, "refresh": 105, "regard": [9, 111], "regardless": [19, 93], "regex": 35, "regexp": [109, 110], "region": [19, 31, 43, 49, 53, 59, 60, 66, 74, 100, 110], "region_tag": [94, 100], "regist": [32, 66, 86, 98], "register_funct": 109, "register_script": 105, "registri": 69, "regular": [13, 35, 40, 72, 96, 101], "regularli": [5, 13, 26], "reinstal": 26, "rel": [81, 85, 96, 110, 116], "relat": [31, 38, 49], "releas": [11, 26, 30, 41, 75, 82, 116], "releng": 116, "relev": [34, 41, 46, 82], "reli": [16, 38], "reliabl": 38, "reload": 11, "remain": [13, 84], "remark": 45, "rememb": [11, 27, 81], "remot": [0, 96, 116], "remote_addr": [6, 8], "remov": [7, 10, 11, 12, 16, 19, 23, 31, 72, 74, 76, 81, 82, 83, 93, 98, 101, 105, 111, 116, 117], "renam": [7, 87], "render": [3, 99], "renew": 96, "replac": [26, 79, 81, 82, 83, 85, 91, 96, 98, 101, 105, 108], "repo": 79, "report": [30, 70, 81, 92, 111], "repositori": [7, 9, 81, 86, 91, 116], "repres": 100, "represent": [31, 39, 100, 110], "reqbin": 74, "request": [0, 6, 10, 12, 13, 14, 19, 21, 23, 24, 27, 29, 31, 33, 34, 37, 39, 42, 43, 47, 49, 53, 57, 59, 62, 64, 65, 69, 71, 74, 75, 76, 78, 79, 82, 83, 84, 85, 91, 93, 94, 97, 98, 99, 102, 106, 107], "request_param": 28, "request_schem": 6, "request_timeout": [10, 19, 21, 98], "request_uri": 6, "requesthead": [6, 14], "requir": [3, 6, 11, 13, 14, 24, 26, 27, 30, 32, 36, 37, 38, 39, 59, 73, 78, 79, 82, 85, 87, 96, 97, 98, 109, 117], "require_api_kei": [19, 31], "reset": [93, 96, 116, 117], "resolut": 30, "resolv": [10, 23, 94], "resolver_map": [13, 98], "resolver_timeout": 98, "resourc": [8, 13, 37, 41, 44], "resp": [29, 43, 53, 59, 62, 65, 71, 72, 76, 78, 79], "respect": [10, 27, 93], "respons": [13, 19, 29, 30, 31, 39, 43, 47, 49, 53, 59, 62, 71, 72, 74, 76, 78, 79, 96], "rest": [7, 19, 47, 52, 53, 62, 63, 68, 80, 82, 92, 98], "rest_v1": 74, "rest_v1_summary_url": 74, "restart": [6, 7, 8, 11, 81], "restor": [82, 84], "restrict": [19, 53, 75], "restructuredtext": 85, "result": [3, 10, 12, 13, 14, 19, 21, 23, 25, 28, 29, 31, 33, 34, 35, 36, 37, 38, 39, 41, 43, 45, 46, 47, 49, 50, 51, 53, 54, 57, 59, 62, 64, 65, 71, 72, 74, 77, 78, 79, 83, 85, 87, 92, 93, 97, 98, 100, 101, 103, 106, 109, 110, 111, 114], "result_contain": [83, 106], "result_field": 47, "result_proxi": [7, 10], "result_separ": 35, "result_templ": [36, 38], "resultcontain": 106, "results_on_new_tab": [10, 25, 87], "results_per_pag": 36, "results_xpath": 79, "retri": [19, 21], "retriev": [39, 47], "retry_on_http_error": 19, "return": [12, 14, 19, 28, 30, 31, 32, 34, 35, 38, 39, 43, 45, 47, 49, 53, 59, 65, 71, 74, 79, 83, 85, 93, 96, 97, 98, 99, 100, 103, 105, 107, 108, 109, 110], "return42": [83, 85], "revers": [2, 7, 49, 53, 65, 68, 78, 116], "review": 36, "rewind": 84, "rewrit": [1, 10, 12, 34, 101], "rfc": [85, 98], "rhel": [3, 6, 8, 10, 11, 85], "rid": [7, 49, 82, 116], "right": [11, 19, 22, 83, 84, 85, 100, 112], "rightmost": 85, "riscv64": 40, "risk": 114, "rm": [7, 11, 110], "rmgrp": 82, "rmi": 7, "ro": [53, 110], "road": 30, "robin": 21, "robot": [10, 24, 49, 53, 82], "robot_test": 82, "robust": 38, "rock": 63, "role": 80, "rolenam": 85, "roll": [26, 116], "room": 33, "root": [6, 9, 13, 81, 82, 116], "rotat": 85, "rough": 74, "round": [21, 27], "roundtripp": 98, "rout": [85, 96, 98, 99], "row": [85, 109], "rowspan": 85, "rr": 96, "rspan": 85, "rss": [10, 23, 46, 87], "rst": [27, 82, 85], "rst_titl": 116, "rtl": 25, "rtl_local": [94, 100], "ru": [53, 110, 112], "rubi": 96, "rubygem": 112, "rue": 110, "rule": [13, 27, 31, 45, 74, 100, 108, 116], "rumbl": 112, "run": [2, 3, 6, 8, 9, 10, 11, 13, 14, 20, 22, 24, 26, 27, 35, 37, 49, 59, 80, 81, 83, 84, 85, 104, 111, 115, 117], "runner": [14, 31, 82, 98, 108], "runtim": [80, 92], "rw": 116, "ryan": 57, "s390x": 40, "sa": [53, 110], "sadipsc": 85, "safari": 111, "safe": [60, 73, 79, 85, 87, 112], "safe_search": [1, 2, 10, 23, 79], "safe_search_map": 79, "safe_search_support": 79, "safes_search_map": 79, "safesearch": [30, 31, 43, 53, 79, 85, 87, 106], "safesearch_map": 73, "safesearch_param": 47, "sah": 110, "sai": 49, "said": 38, "same": [10, 30, 38, 62, 68, 72, 74, 81, 85, 110, 111, 116], "sampl": 85, "san": 3, "sanctu": 85, "satisfi": [36, 38], "save": [6, 7, 10, 26, 45, 53, 69, 98, 116], "save_data": 31, "sbin": [7, 11], "sc": [69, 110, 112], "sc2031": 116, "sc2034": 116, "sc_code_cache_sec": 69, "scalabl": 85, "scale": [37, 81, 85, 116], "scan": 11, "scc": 112, "scenario": [67, 108, 110], "schema": [13, 14, 62, 96, 98, 105, 109], "schemaissu": 96, "scheme": [6, 8, 53], "scholar": 112, "scholarli": 77, "schroeding": 85, "schr\u00f6dinger": 85, "scienc": [18, 113], "scientif": 53, "scn": 110, "sco": 110, "scope": [27, 69], "score": [68, 78, 105], "scrap": [69, 79], "scrapi": 96, "scratch": 3, "screen": 25, "screenshot": 0, "script": [2, 4, 5, 6, 7, 8, 10, 11, 26, 69, 74, 81, 82, 90, 92, 100, 105, 115, 116, 117], "scroll": [10, 25], "sd": 110, "se": [53, 112], "sea": 85, "search": [0, 2, 4, 7, 10, 12, 13, 14, 15, 16, 18, 21, 25, 27, 28, 30, 31, 34, 35, 36, 38, 39, 41, 43, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 56, 57, 59, 60, 62, 65, 66, 67, 68, 69, 70, 71, 72, 74, 75, 76, 77, 78, 79, 80, 83, 85, 92, 93, 94, 97, 100, 102, 103, 109, 110, 112, 113], "search_dir": 67, "search_endpoint": 48, "search_favicon": 98, "search_form_xpath": 69, "search_language_cod": [94, 110], "search_mod": 75, "search_on_category_select": [10, 25], "search_queri": [106, 107], "search_typ": [34, 64, 75], "search_url": [30, 47, 78, 79, 110], "searchcod": 112, "searchcode_cod": 112, "searchlab": 75, "searchmysit": 112, "searchqueri": [94, 106], "searchwithplugin": [83, 94, 106], "searx": [1, 5, 6, 8, 10, 11, 13, 14, 16, 17, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 38, 39, 40, 41, 42, 43, 45, 46, 47, 48, 49, 51, 52, 53, 54, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 81, 82, 83, 85, 90, 92, 95, 96, 97, 98, 99, 100, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 116, 117], "searx_userag": [10, 94, 110], "searxengineaccessdeni": [10, 23, 97], "searxengineaccessdeniedexcept": [94, 97], "searxengineapiexcept": [94, 97], "searxenginecaptcha": [10, 23, 97], "searxenginecaptchaexcept": [94, 97], "searxengineexcept": [94, 97], "searxengineresponseexcept": [94, 97], "searxenginetoomanyrequest": [10, 23, 97], "searxenginetoomanyrequestsexcept": [94, 97], "searxenginexpathexcept": [94, 97, 110], "searxexcept": [94, 97], "searxng": [0, 1, 2, 3, 4, 5, 9, 11, 12, 13, 14, 16, 17, 19, 20, 21, 22, 23, 24, 25, 27, 30, 31, 33, 34, 36, 38, 39, 41, 43, 45, 46, 47, 49, 53, 59, 63, 64, 68, 70, 72, 74, 77, 78, 80, 82, 83, 84, 85, 86, 87, 91, 94, 95, 96, 98, 99, 101, 102, 104, 105, 108, 110, 112, 113, 114, 115], "searxng_": 105, "searxng_bind_address": [10, 24, 81, 117], "searxng_check": 117, "searxng_counter_": 105, "searxng_debug": [10, 20, 82], "searxng_extra": [80, 82, 92], "searxng_image_proxi": [10, 24], "searxng_lang": 31, "searxng_limit": [10, 24, 96], "searxng_local": [30, 31, 53, 69, 100], "searxng_msg": 95, "searxng_org": 96, "searxng_port": [10, 24, 81, 117], "searxng_public_inst": [10, 24], "searxng_redis_url": [2, 10, 22, 82], "searxng_region": 31, "searxng_secret": [2, 10, 24], "searxng_settings_path": [10, 11, 16, 81, 108], "searxng_static_use_hash": [10, 25], "searxng_url": [2, 10, 24, 81, 116, 117], "searxng_uwsgi_socket": [81, 117], "searxnggfedora35": 116, "searxparameterexcept": [94, 97], "searxsettingsexcept": [94, 97], "searxxpathsyntaxexcept": [94, 97, 110], "sec": [13, 96, 97, 98, 105, 109, 110], "second": [10, 13, 21, 23, 69, 85, 98, 100, 103, 105, 110], "secondli": 13, "secret": [19, 31, 105], "secret_hash": [94, 105], "secret_kei": [2, 10, 16, 24, 98, 105], "section": [5, 6, 8, 9, 10, 16, 19, 21, 33, 35, 36, 37, 38, 43, 79, 81, 82, 83, 85, 102, 116], "sectiontitl": 34, "secur": [0, 10, 11, 35, 40, 92], "sed": [10, 85], "see": [0, 3, 5, 6, 7, 8, 10, 11, 14, 16, 19, 21, 22, 24, 26, 27, 31, 32, 34, 36, 38, 43, 45, 47, 49, 53, 62, 63, 64, 69, 71, 72, 74, 79, 81, 82, 83, 85, 87, 92, 95, 98, 100, 101, 105, 107, 109, 110, 111, 114, 116], "seed": 30, "seeder": [30, 46], "seek": 111, "seeker": 68, "seekr": [33, 112], "seekr_categori": 68, "seem": [43, 45, 49, 69], "seimg": 112, "sekr": 68, "select": [10, 13, 19, 23, 25, 30, 31, 36, 37, 38, 39, 45, 47, 49, 53, 63, 66, 68, 69, 75, 79, 82, 84, 85, 93, 95, 98, 100, 109, 113, 116], "selector": [69, 79], "self": [10, 12, 31, 53, 56, 92, 96, 109, 116, 117], "self_inform": 87, "semant": [27, 112], "semantic_scholar": 112, "semrushbot": 96, "send": [0, 11, 19, 21, 23, 31, 48, 49, 64, 69, 84, 93, 96, 97, 98, 111], "send_accept_language_head": [19, 31, 49, 64, 69, 74], "senew": 112, "sens": [49, 85], "sensibli": 13, "sensit": 49, "sent": [49, 93], "sep": [31, 112], "separ": [13, 19, 27, 31, 35, 84, 85, 87, 109, 114], "sepiasearch": 112, "seri": 82, "serial": 109, "serializ": 31, "serif": 3, "seriou": 81, "serv": [6, 8, 11, 13, 27, 82, 93, 116], "server": [2, 4, 7, 9, 10, 13, 14, 15, 16, 21, 38, 40, 78, 81, 87, 92, 98, 105, 108, 111, 115, 116, 117], "server_nam": 8, "servic": [6, 8, 9, 10, 11, 24, 49, 53, 58, 81, 82, 85, 87, 92, 93, 98, 110, 116, 117], "session": [10, 96, 100], "set": [0, 2, 3, 4, 6, 7, 8, 10, 11, 14, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 34, 35, 36, 37, 38, 39, 41, 45, 46, 47, 48, 51, 52, 53, 54, 58, 63, 64, 65, 67, 68, 69, 70, 71, 74, 75, 77, 79, 81, 82, 83, 85, 87, 92, 93, 94, 96, 97, 98, 100, 101, 102, 103, 104, 105, 107, 109, 110, 112, 113, 114, 115, 116, 117], "set_trait": 31, "setenvif": 6, "setenvif_modul": 6, "settings_load": 108, "settings_redi": 10, "setup": [0, 3, 4, 5, 6, 7, 8, 9, 10, 13, 14, 19, 26, 39, 81, 82, 84, 85, 98, 104, 115], "setuptool": 10, "sever": [13, 19, 72, 74, 81, 109], "sevid": 112, "seznam": [10, 112], "seznambot": 96, "sfw": [43, 73], "sg": [53, 74], "sh": [3, 6, 7, 8, 9, 26, 36, 38, 39, 81, 82, 83, 85, 86, 92, 110, 115], "sha256": [82, 98], "sha512": 114, "shadow": [41, 77], "share": [6, 11, 19, 43, 53, 62, 71, 72, 74, 77, 81, 82, 111, 116], "sheet": 7, "shell": [4, 10, 35, 81, 86, 116], "shellcheck": [3, 85, 86, 116], "shop": 50, "short": 30, "shortcut": [1, 19, 28, 29, 30, 31, 32, 35, 36, 37, 41, 46, 48, 51, 52, 63, 75, 77, 85, 108], "shorten": 11, "should": [5, 6, 8, 11, 13, 19, 26, 27, 31, 34, 49, 52, 53, 69, 71, 74, 81, 84, 85, 86, 98, 100, 101], "show": [3, 6, 10, 11, 26, 48, 71, 74, 81, 82, 85, 98, 114, 116], "show_avatar": 48, "show_magnet_link": 71, "show_torrent_fil": 71, "shown": [6, 9, 10, 11, 14, 18, 19, 23, 31, 48, 81, 85, 102, 116], "si": [53, 100, 103, 110], "si_nam": 103, "side": [0, 9, 25, 85], "sighup": 11, "sign": 85, "signal": [11, 81], "signifi": 85, "significantli": 13, "sigterm": 11, "silesian": 100, "similar": [11, 16, 38, 57, 85, 100], "simpl": [1, 10, 25, 28, 29, 30, 32, 36, 37, 38, 40, 53, 78, 79, 81, 82, 84, 87, 105, 109, 116], "simple_query_str": 37, "simple_styl": [10, 25], "simplest": 85, "simpli": [0, 27, 78, 81, 82, 84, 87, 117], "simplifi": [16, 74, 117], "sinc": [10, 11, 14, 25, 43, 45, 49, 54, 56, 64, 68, 85, 96, 116], "singl": [11, 59, 93, 109, 116], "singleton": 109, "sit": 85, "site": [1, 4, 19, 26, 30, 50, 71, 73, 79, 85, 87, 117], "size": [7, 11, 13, 26, 30, 46, 51, 78, 98, 110], "sk": [53, 76, 110], "skeleton": 39, "sketchi": 73, "skill": 80, "skipkei": 31, "sl": [53, 76, 110], "slash": [6, 10, 25, 110], "sleep": 105, "slide": [49, 96, 105], "slightli": 53, "slow": 21, "slr": 37, "slurp": 96, "sm": 112, "small": [30, 37, 38, 40, 45, 60, 82, 116, 117], "smallest": 41, "smtbot": 96, "sn": 53, "snap": [81, 116], "snapcraft": 116, "snapshot": 116, "snippet": 34, "so": [6, 7, 11, 13, 20, 27, 30, 36, 37, 39, 81, 83, 85, 98, 101, 110, 111], "social": [1, 18, 48, 56], "social_media": 113, "sock": [0, 2, 10, 11, 14, 21, 22, 26, 104, 117], "socket": [0, 6, 7, 8, 11, 22, 24, 81, 117], "socks5": [0, 19, 30, 31], "socks5h": 19, "soft": [30, 79, 80], "soft_max_redirect": [30, 79], "softwar": [51, 52, 72, 81, 111, 112], "sogou": 96, "sold": 93, "solid": 112, "solidtorr": 112, "solut": [35, 49, 98, 116], "solv": [0, 19], "some": [2, 6, 7, 8, 9, 10, 11, 14, 16, 19, 23, 24, 26, 27, 34, 43, 45, 48, 49, 53, 69, 74, 79, 81, 82, 84, 85, 88, 96, 111, 115, 116, 117], "someon": 93, "someth": [27, 35, 49, 82, 84, 98, 101], "sometim": [26, 53, 72], "somewhat": 11, "somewher": 49, "soon": [33, 96, 98, 109], "sorri": 53, "sort": [34, 37, 41, 46, 50, 51, 103, 105], "sort_kei": 31, "soundcloud": 112, "sourc": [7, 10, 13, 14, 21, 28, 29, 30, 31, 32, 33, 35, 36, 38, 41, 42, 43, 45, 47, 48, 49, 53, 56, 58, 59, 60, 61, 62, 65, 66, 69, 70, 71, 72, 74, 76, 77, 78, 79, 81, 82, 84, 85, 90, 92, 93, 95, 96, 97, 99, 100, 103, 105, 106, 107, 108, 109, 110, 111, 116], "source_code_url": 30, "source_ip": [10, 21], "sourcehut": 112, "sp": 112, "space": [10, 14, 17, 24, 82, 92, 96, 114], "span": [85, 110], "spanish": 110, "spars": 85, "spdx": 116, "speak": 11, "speaker": 19, "special": [5, 6, 8, 11, 30, 31, 35, 42, 53, 71, 86, 113], "specif": [11, 19, 21, 24, 25, 30, 31, 35, 41, 43, 46, 47, 69, 71, 76, 77, 98], "specifi": [0, 7, 11, 16, 19, 21, 31, 53, 54, 87, 98, 101], "speed": 60, "spell": [34, 45], "spellcheck": 45, "spezial": 42, "sphinx": 27, "sphinxopt": 27, "spinn3r": 96, "splash": 96, "split": 27, "spoilt": 5, "sponsor": [19, 35, 36, 37, 38], "sport": 48, "sq": [45, 110], "sql": [33, 39, 109], "sql_drop_leftover_blob": 98, "sqlite": [13, 92, 94, 98], "sqlite3": [38, 109], "sqlite_connect_arg": 109, "sqlite_cursor": 38, "sqlite_threading_mod": 109, "sqliteappl": [94, 98, 109], "sqlitedb": [98, 109], "sqliteproperti": [94, 109], "sr": [53, 110], "src": [6, 8, 10, 11, 53, 81, 82, 98, 117], "srenablerewrit": 34, "srh1": 68, "srht": 112, "srprop": 34, "srsort": 34, "srv": 6, "srwhat": 34, "srwxrwx": 22, "ssl": [6, 10, 21, 30], "ssl_cert_dir": 21, "ssl_cert_fil": 21, "ssl_modul": 6, "st": 112, "stabl": [19, 46, 82], "stack": [81, 116], "stackexchang": 112, "stackoverflow": [74, 112], "stage": 85, "stai": [4, 5], "stamp": 69, "stand": 73, "standalon": 58, "standalone_searx": [80, 88], "standard": [6, 11, 13, 27, 30, 71, 110, 116], "standards_docu": 41, "start": [2, 6, 7, 8, 9, 10, 11, 27, 30, 32, 39, 78, 80, 82, 84, 92, 116], "startpag": [10, 23, 33, 87, 112], "startpage_categ": 69, "stat": [10, 20, 85, 111], "state": [13, 34, 98, 100, 107, 116], "static": [3, 6, 8, 10, 11, 25, 26, 80, 84, 90, 96, 98], "static_path": 10, "static_use_hash": [2, 6, 8, 10, 11, 25], "station": 66, "station_filt": 66, "statist": [85, 111], "statu": [11, 19, 79, 84, 97, 98, 100, 117], "stealth": 75, "step": [2, 4, 5, 9, 26, 27, 81, 84, 92, 117], "stet": 85, "still": [18, 36, 37, 38, 43, 49, 68, 74], "stimmung": 57, "stock": 78, "stone": 19, "stop": [7, 10, 11, 30, 47, 79, 81, 82, 83, 97, 105, 116], "storag": [13, 116], "store": [13, 30, 31, 36, 37, 45, 46, 49, 93, 96, 98, 109, 111, 112], "str": [30, 31, 34, 41, 48, 51, 52, 53, 63, 68, 71, 75, 77, 96, 97, 98, 99, 100, 105, 106, 107, 108, 109, 110, 112], "stract": [10, 87, 112], "strang": 11, "stream": 64, "street": 30, "strftime": [98, 109], "strict": [10, 19, 23, 30, 79], "string": [10, 12, 19, 28, 30, 31, 34, 40, 41, 43, 53, 72, 79, 87, 96, 100, 105, 110, 114], "stroke": 85, "strong": 85, "structur": [27, 36, 65, 80, 96], "stub": 85, "stuck": 82, "stuff": [82, 85], "style": [10, 25, 82, 84, 110], "stylesheet": 96, "su": [110, 112], "sub": [85, 98], "subdomain": 53, "subject": 85, "submit": [27, 35, 37], "subnet": 96, "subscript": 85, "subsect": 85, "subset": [37, 110], "subshel": 116, "substitut": 80, "subtag": 69, "successfulli": [7, 78, 82], "sudo": [3, 6, 7, 8, 9, 10, 11, 13, 22, 26, 36, 38, 39, 81, 83, 85, 86, 115, 116, 117], "sudoer": 9, "suffix": [7, 10, 21], "suggest": [2, 14, 57, 79, 83, 92], "suggestion_xpath": 79, "suit": [80, 109, 115], "suitabl": [13, 85, 108], "sum": 82, "summari": [74, 79, 80], "sup": 85, "superscript": 85, "superus": 112, "support": [3, 8, 10, 11, 19, 21, 27, 30, 31, 36, 37, 38, 40, 45, 49, 53, 56, 60, 63, 64, 68, 71, 74, 76, 78, 79, 83, 85, 87, 93, 98, 99, 100, 107, 109, 110, 111, 112, 114, 116], "suppress": 69, "sure": [7, 49, 73, 81], "surround": 85, "suspend": [97, 107], "suspend_time_set": 97, "suspended_tim": [10, 23, 97], "suspendedstatu": 107, "suspens": [10, 23], "suspici": [14, 96], "suspicious_ip_max": 96, "suspicious_ip_window": 96, "sv": [53, 110], "svg": [3, 98, 112], "svg_imag": 85, "svgrepo": 112, "sw": 110, "swisscow": [10, 23, 87], "switch": [6, 13, 26, 27, 36, 38, 39, 45, 98], "swr": 70, "sxng_local": [49, 53, 74, 82, 100, 110], "symbol": [11, 103], "symbol_to_si": [94, 103], "symlink": [6, 8, 81], "sync": 91, "synchron": 91, "synhttpclient": 96, "syntax": [18, 57, 87, 92, 97, 110, 112, 113], "system": [7, 10, 11, 13, 27, 38, 40, 48, 72, 74, 81, 82, 85, 86, 98, 116], "systemctl": [6, 8, 11, 81], "systemctl_skip_redirect": 11, "systemd": [11, 82], "sz": 34, "szl": 100, "szn": 112, "t": [6, 7, 10, 11, 13, 14, 16, 22, 23, 24, 25, 26, 27, 30, 32, 38, 45, 46, 56, 57, 64, 73, 79, 83, 84, 85, 92, 98, 100, 110, 111, 112, 114, 116], "ta": [53, 110], "tab": [10, 18, 19, 25, 80, 82, 87, 113, 116], "tabl": [80, 98, 101, 109], "tablet": 25, "tag": [7, 10, 24, 30, 45, 69, 74, 75, 78, 100], "tag_list": 100, "tagesschau": [33, 112], "tailor": 93, "taiwan": 100, "take": [9, 11, 21, 26, 27, 78, 86, 91, 96, 105, 111, 116], "taken": [10, 19, 21, 79, 85, 96, 101], "takimata": 85, "tale": 7, "target": [27, 47, 82, 84, 85], "task": [3, 9, 10, 11, 14, 81, 82, 84, 85, 116], "tcp": 7, "tcp_nodelai": 10, "te": [53, 110], "team": 41, "technologi": 60, "tell": [30, 35], "templat": [10, 11, 33, 36, 38, 39, 47, 64, 72, 79, 80, 81, 82, 83, 96, 98], "template_nam": [36, 38], "templates_path": 10, "tempor": 85, "temporarili": 49, "term": [6, 28, 31, 35, 37, 41, 49, 50, 53, 79, 81, 85, 103], "termin": [10, 81], "territori": [69, 100], "test": [0, 3, 6, 7, 8, 10, 22, 27, 38, 45, 69, 70, 74, 80, 81, 84, 86, 92, 96, 104, 108, 110, 116, 117], "texliv": 3, "text": [1, 30, 34, 37, 49, 53, 67, 74, 75, 77, 85, 96, 98, 109, 110], "text_cont": 110, "textstyl": 85, "tfrac": 85, "tg": 110, "tgwf": 83, "th": [53, 110], "than": [10, 21, 37, 46, 53, 60, 66, 69, 74, 85, 92, 110, 111], "thats": 43, "thei": [10, 11, 19, 85, 93, 96, 112], "them": [11, 12, 13, 19, 36, 37, 38, 81, 85, 108], "theme": [10, 25, 36, 38, 80, 84, 87, 98], "theme_arg": [10, 25], "theme_nam": [36, 38], "themselv": [19, 37], "therefor": [13, 72, 85, 93, 109], "thi": [0, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 28, 29, 31, 32, 33, 34, 35, 37, 38, 39, 41, 42, 43, 45, 46, 47, 48, 49, 53, 54, 57, 59, 63, 64, 65, 67, 68, 69, 70, 71, 74, 77, 78, 81, 82, 83, 84, 85, 86, 87, 91, 93, 94, 95, 96, 97, 98, 100, 101, 102, 103, 104, 105, 108, 109, 111, 114, 116], "thing": [11, 43, 85], "think": [27, 82, 84, 85], "third": [85, 93, 105, 111], "those": [7, 39, 47, 74, 81, 93], "though": [53, 67], "thought": 34, "thread": [7, 11, 109, 110], "threadsafeti": 109, "three": [13, 27, 69, 83, 85, 93], "threshold": 110, "through": [10, 14, 19, 43, 85, 87, 93], "throw": 79, "thu": [14, 87, 93], "thumbnail": [30, 74, 79], "thumbnail_360_url": 47, "thumbnail_src": 30, "thumbnail_xpath": 79, "tiekoett": [10, 117], "tiff": 78, "tiktok": 110, "time": [10, 14, 21, 23, 27, 30, 31, 34, 38, 45, 46, 53, 60, 69, 79, 81, 82, 85, 87, 93, 96, 97, 98, 105, 107, 109, 110, 112, 116], "time_map": 43, "time_rang": [1, 30, 46, 53, 79, 87, 106], "time_range_arg": 53, "time_range_map": 79, "time_range_support": [30, 31, 45, 79, 85], "time_range_url": 79, "time_range_v": 79, "timedelta": 30, "timeout": [10, 19, 21, 30, 31, 49, 85, 98, 112, 115], "timeout_limit": 106, "timestamp": [11, 34], "timestamp_format": 34, "timezon": 116, "tin": 112, "tiney": [33, 112], "tini": 7, "tip": 85, "titl": [10, 25, 30, 34, 35, 38, 42, 47, 74, 79, 99], "title_xpath": 79, "tk": [86, 110], "tl": [49, 81, 110, 112], "tm": 85, "tmdb": 57, "tmp": [13, 98], "to_lang": 30, "to_nam": 30, "to_si": 103, "to_str": [94, 110], "toc": 99, "todai": [25, 78], "todo": 31, "togeth": [60, 71], "token": [15, 16, 31, 35, 36, 37, 38, 39, 96], "token_kei": 96, "token_live_tim": 96, "tokyotoshokan": 112, "tom": 57, "toml": [4, 13, 98], "toml_cache_cfg": 98, "too": [10, 13, 20, 23, 78, 83, 85, 93, 96, 97, 98], "too_many_request": [94, 96], "tool": [2, 4, 9, 10, 26, 27, 39, 67, 80, 81, 82, 84, 85, 86, 92, 98, 116], "toot": 112, "tootfind": [56, 112], "top": 85, "tor": [10, 12, 19, 21, 31, 32, 92, 93, 94], "tor_check": 102, "tor_check_plugin": 87, "torproject": [12, 102], "torrent": [46, 71], "torrentfil": 30, "torznab": 33, "torznab_categori": 71, "touch": [6, 8, 11, 19], "tpb": 112, "tr": [53, 110], "track": [76, 92, 93, 111], "tracker": [10, 12, 17, 46, 71], "tracker_url_remov": 87, "trademark": 85, "tradeoff": 46, "tradit": 74, "trail": [6, 10, 25, 110], "train": 85, "trait": [33, 53, 59, 66, 74, 82, 100], "traits_v1": 31, "transact": 109, "transalt": 100, "transform": 85, "translat": [42, 43, 66, 80, 82, 92, 100, 102, 111], "transpar": [81, 116], "tree": [10, 81, 82, 84], "trend": 57, "tri": [45, 49, 69, 96, 100], "trick": 110, "trigger": 13, "true": [1, 2, 6, 8, 11, 14, 19, 20, 21, 24, 25, 30, 31, 32, 34, 36, 37, 39, 43, 45, 47, 48, 49, 53, 59, 69, 70, 71, 74, 75, 79, 83, 85, 87, 96, 98, 100, 104, 108, 109, 110], "trust": [14, 19, 92, 93], "trustworthi": 114, "try": [10, 11, 26, 45, 65, 69, 86, 93], "tt": [110, 112], "ttf": 3, "tube": 62, "tune": [4, 5], "tunnel": 0, "tupl": [96, 98, 100, 103, 108, 110], "turn": [10, 23, 27, 47, 73, 78, 105], "tw": [53, 74, 76, 100], "tw_hk": 69, "tw_tw": 69, "twice": 10, "twitter": [56, 64], "two": [6, 7, 8, 11, 13, 16, 19, 21, 27, 45, 65, 74, 85, 87, 98, 110], "txt": [82, 85, 110], "type": [1, 9, 10, 24, 27, 31, 32, 34, 35, 37, 53, 56, 69, 74, 75, 79, 80, 82, 83, 87, 93, 96, 97, 98, 99, 107, 108, 110, 116], "typedur": 105, "typeerror": 110, "typic": [2, 82, 85], "typo": [45, 85], "tyrant": 4, "tyv": 110, "tz": 53, "u": [10, 19, 23, 30, 45, 53, 69, 81, 82, 84, 85, 92, 100, 111, 112], "u5409": 110, "ua": 53, "ubu2004": [82, 116], "ubu2110": 116, "ubu2204": 116, "ubuntu": [3, 6, 8, 10, 11, 82, 85, 112, 116], "ud": 6, "ug": [53, 110], "ugli": 85, "ugo": 116, "ui": [2, 4, 6, 8, 10, 11, 15, 18, 19, 30, 31, 43, 45, 53, 63, 64, 68, 69, 85, 91, 92, 100, 112], "ui_async": 53, "ui_lang": 45, "uid": [11, 81], "uk": [53, 110], "ukrainian": 110, "ullamco": 85, "ultrasecretkei": [2, 10, 16, 24], "un": 10, "uncom": [6, 10, 21], "uncomfort": 73, "uncommon": [27, 53], "uncontrol": [13, 98], "under": [13, 18, 19, 30, 33, 47, 81, 109, 116], "underlin": [30, 32, 82], "underscor": [32, 100], "understand": [85, 100], "undo": 26, "undocu": 65, "unescap": 110, "unfortun": [27, 43, 56, 109], "unicod": [80, 100], "uniform": 69, "uninstal": [26, 82], "union": 110, "unit": [11, 12, 27, 49, 82, 92, 94, 100], "unit_convert": 103, "universalfeedpars": 96, "unix": [2, 6, 8, 10, 11, 14, 22, 98, 104, 109], "unixepoch": 38, "unknown": [66, 69, 93, 96], "unknownlocaleerror": 69, "unless": 19, "unlik": [74, 93], "unlimit": [10, 14], "unpack": 38, "unrestrict": 14, "unset": [11, 23, 68, 69, 96, 100], "unspecifi": 30, "unsplash": 112, "unsuit": 13, "unsupport": 78, "until": [13, 105], "untouch": 82, "unusu": 11, "unwant": 9, "up": [2, 4, 5, 6, 7, 8, 10, 11, 19, 22, 26, 29, 43, 81, 82, 85, 86, 92, 98, 100, 103, 109], "upd_cfg": 96, "updat": [4, 7, 10, 19, 27, 30, 32, 51, 59, 72, 74, 80, 82, 83, 86, 88, 91, 96, 109, 117], "update_ahmia_blacklist": 88, "update_curr": 88, "update_engine_descript": 88, "update_engine_trait": 88, "update_external_bang": 88, "update_firefox_vers": 88, "update_local": [88, 100], "update_osm_keys_tag": 88, "update_pyg": 88, "update_wikidata_unit": 88, "upgrad": [5, 13, 26], "upload": [74, 78], "upon": 116, "upper": 85, "upstream": [6, 8, 11], "uptim": 10, "ur": 110, "uri": 38, "url": [1, 2, 6, 7, 10, 12, 13, 14, 17, 19, 22, 24, 25, 27, 29, 30, 34, 38, 43, 47, 48, 49, 51, 52, 53, 57, 62, 63, 65, 70, 71, 72, 74, 75, 76, 78, 79, 81, 82, 83, 86, 93, 94, 96, 98, 101, 104, 110, 116], "url_for": 96, "url_str": 76, "url_video": 38, "url_video_hd": 38, "url_video_sd": 38, "url_xpath": 79, "urlencod": 53, "urllib": 53, "urlpars": 83, "us": [0, 3, 5, 6, 7, 8, 9, 10, 11, 13, 14, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 47, 49, 51, 53, 54, 56, 57, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 74, 75, 76, 78, 79, 81, 82, 84, 85, 86, 88, 91, 92, 96, 98, 99, 100, 104, 105, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117], "usag": [24, 32, 81, 82, 85, 99, 111, 116, 117], "use_ac": 53, "use_cach": 98, "use_default_set": [2, 15], "use_local_search_result": 64, "use_official_api": [19, 31], "use_source_url": 70, "useabl": 60, "user": [0, 4, 7, 9, 11, 12, 13, 14, 16, 18, 19, 21, 22, 23, 27, 30, 31, 35, 45, 48, 49, 53, 54, 56, 64, 66, 69, 75, 79, 81, 82, 85, 92, 93, 96, 100, 102, 109, 110, 111, 112, 114, 116, 117], "user_ag": 96, "user_random": 34, "useradd": [10, 82], "userag": [82, 110], "useragent_suffix": [10, 21], "userdel": 82, "usermod": 7, "usernam": [22, 37, 38, 48], "using_tor_proxi": [10, 19, 21, 31, 32, 33], "usr": [2, 6, 7, 8, 10, 11, 14, 22, 26, 81, 82, 104, 117], "usual": [11, 28, 34, 43, 52, 79, 80, 84, 93, 98, 116], "ut": 85, "utf": [6, 11, 85, 116], "utf8": [53, 82], "util": [3, 6, 8, 9, 10, 26, 36, 38, 39, 81, 83, 86, 92, 94, 115], "uu": 96, "uuid": 114, "uwsgi": [3, 4, 5, 7, 8, 9, 10, 26, 81, 92, 117], "uwsgi_param": 8, "uwsgi_pass": 8, "uwsgi_thread": 7, "uwsgi_work": 7, "uz": 110, "v": [7, 10, 11, 27, 49], "v0": 82, "v10": 82, "v16": 82, "v2": 38, "v3": [54, 65], "v4": 52, "val": [96, 103], "valid": [30, 38, 39, 48, 66, 72, 73, 87, 96], "valu": [1, 7, 10, 14, 19, 20, 23, 30, 31, 32, 34, 35, 36, 38, 39, 41, 43, 48, 49, 51, 53, 63, 64, 69, 72, 74, 75, 79, 85, 87, 96, 97, 98, 99, 100, 103, 105, 109, 110, 117], "valueerror": [58, 110], "var": [6, 13], "vari": 11, "variabl": [7, 16, 21, 30, 85, 100, 108, 110], "variant": [74, 85], "varieti": 41, "variou": [13, 20, 27, 36, 53, 81, 83], "vassal": 11, "ve": 53, "vec": 110, "vector": 85, "vendor": 27, "veniam": 85, "venv": [3, 10], "vep": 110, "verbos": 10, "veri": [13, 30, 45, 116], "verif": [10, 21, 31, 43], "verifi": [10, 21, 30, 114], "vero": 85, "versa": 103, "version": [10, 12, 13, 30, 34, 80, 82, 85, 98, 100, 109], "vi": [53, 110], "via": [12, 13, 14, 41, 70, 84, 86, 98], "vice": 103, "video": [18, 45, 46, 61, 63, 65, 68, 69, 75, 110, 113], "video_id": 47, "video_respons": 62, "videolanguag": 62, "view": [30, 48, 80, 93], "viewbox": 85, "vim": [10, 25, 87], "vimeo": 112, "vintag": 53, "virtual": [6, 36, 38, 39], "virtualenv": [10, 11, 81, 82, 117], "visit": [7, 10, 37, 69, 85, 86, 93, 111], "visual": 78, "vl": 110, "vm": [86, 112], "vn": 53, "vo": 110, "void": [33, 112], "void_arch": 72, "voidlinux": [72, 112], "volum": [7, 13, 30], "voluptua": 85, "vpn": [59, 93], "vqd": 49, "vulner": 93, "w": [13, 34, 112], "w3": [69, 85], "w3c": 69, "wa": [10, 19, 26, 27, 30, 74, 78, 81, 82, 104, 105, 109, 110, 111, 112], "wai": [11, 14, 16, 27, 30, 37, 43, 46, 71, 85, 93], "wait": [21, 105], "wallhaven": [33, 112], "wallpap": 73, "want": [5, 7, 10, 11, 19, 21, 25, 27, 37, 38, 54, 64, 82, 85, 86, 87, 91, 93, 111, 115, 116], "war": 110, "warn": [3, 45, 82, 85, 96, 116], "watch": 27, "wau": 114, "wb": 112, "wc": 112, "wca": 112, "wcf": 112, "wcv": 112, "wd": 112, "wdr": 70, "we": [0, 2, 3, 6, 8, 9, 10, 11, 13, 16, 19, 28, 29, 43, 45, 47, 49, 53, 55, 56, 57, 64, 69, 78, 81, 82, 83, 84, 85, 88, 91, 94, 100, 111, 115, 116], "web": [0, 7, 10, 20, 23, 24, 25, 30, 31, 37, 45, 49, 64, 65, 67, 69, 74, 76, 78, 81, 82, 83, 96, 98, 110, 116], "web_lite_url": 65, "webapi": 33, "webapp": [10, 11, 24, 82], "webcach": [10, 25], "weblat": [27, 82, 91, 111], "webp": 78, "webproject": 75, "webserv": 8, "websit": [1, 19, 31, 49, 50, 52, 78, 85, 97, 111], "website_nam": 10, "website_url": 10, "webui": 67, "week": [7, 30, 43, 53, 79], "weight": [19, 85, 103, 112], "weird": 27, "welcom": [6, 8, 75, 111], "well": [7, 13, 63, 68, 69, 74, 85, 92, 109, 111], "were": 74, "werkzeug": 96, "west": 84, "wfr": 114, "wh": 112, "what": [6, 8, 11, 14, 19, 26, 36, 49, 69, 73, 78, 81, 85, 100, 105, 111, 116], "whatev": [9, 116], "wheel": 10, "when": [3, 6, 7, 9, 10, 12, 19, 22, 25, 31, 32, 35, 39, 45, 46, 53, 57, 66, 69, 70, 83, 84, 85, 93, 94, 97, 98, 100, 107, 109, 110, 111, 114], "whenev": [0, 100, 116], "where": [0, 11, 24, 30, 35, 38, 39, 45, 67, 70, 74, 81, 85, 98, 102, 105, 108, 109, 111], "whether": [14, 19, 71, 78, 93, 96, 98], "which": [2, 9, 10, 11, 13, 14, 19, 21, 27, 28, 29, 30, 31, 33, 34, 35, 38, 39, 44, 47, 54, 56, 57, 63, 65, 71, 77, 79, 81, 82, 84, 85, 87, 91, 92, 93, 96, 98, 100, 101, 105, 108, 109, 111, 112], "while": [11, 28, 45, 81, 82, 84, 85, 86, 97, 105, 110, 111], "whitepap": 45, "whitespac": 82, "who": [7, 11, 48, 73, 93], "whole": 83, "whose": [13, 101, 110], "why": [56, 85, 92, 113], "wib": 112, "wibi": 112, "wich": 98, "wide": 27, "widen": 85, "width": [25, 78, 85], "wiki": [1, 7, 8, 10, 16, 17, 19, 34, 74, 82, 85, 112, 116], "wiki_lc_locale_vari": 74, "wiki_netloc": [42, 74], "wiki_url": [10, 17], "wikibook": 112, "wikicommon": 112, "wikidata": [49, 103, 112], "wikidata_id": [19, 31, 52], "wikidata_unit": 103, "wikimedia": [33, 34], "wikimini": 112, "wikinew": 112, "wikipedia": [10, 23, 34, 87, 101, 112, 114], "wikipedia_article_depth": 74, "wikipedia_languag": 74, "wikiquot": 112, "wikisourc": 112, "wikispeci": 112, "wikivers": 112, "wikivoyag": 112, "wild": 84, "wildcard": 38, "win": [14, 101], "window": [49, 96, 105], "wish": [21, 36, 38], "within": [28, 29, 59, 85, 114], "without": [3, 7, 11, 13, 19, 23, 30, 31, 36, 56, 69, 71, 82, 92, 93, 99, 100, 101, 111, 116], "wkmn": 112, "wlc": 80, "wn": 112, "wolframalpha": 112, "wolframalpha_noapi": 112, "won": [7, 11, 45], "word": [82, 83, 85, 87], "work": [0, 7, 10, 14, 25, 27, 30, 31, 34, 35, 41, 49, 52, 73, 80, 82, 84, 93, 98, 108, 113, 116], "workaround": [19, 109], "worker": 11, "workflow": [84, 91], "working_dir": 35, "world": [27, 85, 93], "worri": 84, "worst": 110, "worth": 11, "would": [13, 19, 28, 43, 51, 81, 93, 101, 109], "wp": [74, 112, 114], "wq": 112, "wrap": [80, 116], "wrapper": 82, "write": [13, 22, 74, 96], "written": [10, 20, 53, 81], "wrong": [49, 82], "wsgi": 11, "wsp": 112, "wt": 49, "wt_wt": 49, "wuu": 110, "wv": 112, "ww": 96, "www": [3, 6, 10, 21, 38, 43, 47, 49, 57, 65, 85, 110, 116], "www1x": 112, "wy": 112, "wysiwyg": 27, "x": [0, 6, 8, 10, 11, 14, 24, 30, 56, 64, 85, 96, 116], "x1": 85, "x12y": 109, "x1y": 109, "x2": 85, "x86": 40, "x86_64": [40, 72], "x_for": [14, 96], "xal": 110, "xapian": 67, "xbp": 72, "xdg": [7, 10, 82], "xetex": 3, "xmf": 110, "xml": [11, 46, 53, 71, 85, 98, 110], "xmln": 85, "xpath": [33, 69, 97, 110, 112], "xpath_result": 110, "xpath_spec": [97, 110], "xpath_str": 110, "xpathxslt": 110, "xxxx": [49, 85], "xz": 86, "y": [3, 10, 12, 34, 85, 112], "y1": 85, "y2": 85, "ya": [75, 112], "yaci": [33, 112], "yacy_search_serv": 75, "yacybot": 96, "yahoo": [33, 96, 112], "yahoo_new": 112, "yai": [75, 112], "yaml": [10, 13, 19, 22, 31, 32, 82, 108], "yamllint": 82, "yamllint_fil": 82, "yandex": [10, 13, 98], "yandexbot": 96, "yandexmobilebot": 96, "ye": 81, "year": [30, 43, 53, 77, 79, 87], "yep": 112, "yepi": 112, "yepn": 112, "yet": [27, 30, 33, 69, 75, 86, 116], "yh": 112, "yhn": 112, "yi": 110, "yield": 95, "yml": [2, 4, 6, 7, 8, 10, 11, 13, 15, 19, 26, 28, 29, 36, 37, 38, 39, 54, 65, 68, 69, 81, 82, 83, 85, 87, 101, 102, 103, 104, 108, 110, 112, 117], "yn": 116, "yo": 110, "you": [0, 2, 3, 5, 6, 7, 8, 9, 10, 11, 14, 16, 17, 19, 20, 21, 22, 24, 25, 26, 27, 28, 34, 35, 36, 37, 38, 39, 43, 45, 48, 51, 54, 67, 69, 71, 72, 73, 74, 78, 81, 82, 84, 85, 86, 87, 91, 92, 93, 101, 103, 111, 114, 115, 116, 117], "your": [0, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 19, 20, 22, 24, 25, 26, 27, 28, 29, 34, 35, 36, 37, 38, 39, 45, 48, 67, 74, 78, 80, 82, 83, 84, 85, 86, 91, 92, 98, 111, 114, 116], "your_morty_proxy_kei": 10, "yourself": [7, 27, 111], "youtu": 101, "youtub": [63, 101, 110, 112], "youtube_noapi": 112, "yt": 112, "yue": 110, "yyyi": 85, "z": [33, 85, 110, 112], "za": [53, 110], "zadd": 105, "zcount": 105, "zero": [105, 116], "zgrab": 96, "zh": [42, 53, 69, 74, 100, 110], "zh_ch": 76, "zh_cht": 76, "zh_han": [100, 110], "zh_hans_cn": [69, 99], "zh_hant": [100, 110], "zh_hant_hk": 69, "zh_hant_tw": 69, "zh_tw": 100, "zip": 110, "zlib": 112, "zlib1g": [3, 10, 86], "zlib2010": 77, "zlib_ext": 77, "zlib_year_from": 77, "zlib_year_to": 77, "zlibrari": [77, 112], "zmeu": 96, "zremrangebyscor": 105, "zw": 53, "zz": 110, "zzzz": 85, "\u00f3": 110, "\u015bl\u014dnski": 100, "\u0780": 100, "\u0788": 100, "\u078b": 100, "\u51fa\u79df\u8eca": 74, "\u51fa\u79df\u8f66": 74, "\u5409": 110, "\u5fb7\u58eb": 74, "\u641c\u7d22": 42, "\u7684\u58eb": 74, "\u8a08\u7a0b\u8eca": 74}, "titles": ["Answer CAPTCHA from server\u2019s IP", "Administration API", "Architecture", "Buildhosts", "Administrator documentation", "Installation", "Apache", "Docker Container", "NGINX", "Installation Script", "Step by step installation", "uWSGI", "Plugins builtin", "Favicons", "Limiter", "Settings", "settings.yml", "brand:", "categories_as_tabs:", "engine:", "general:", "outgoing:", "redis:", "search:", "server:", "ui:", "SearXNG maintenance", "How to contribute", "Demo Offline Engine", "Demo Online Engine", "Engine Overview", "Engine Library", "SearXNG\u2019s engines loader", "Engine Implementations", "MediaWiki Engine", "Command Line Engines", "NoSQL databases", "Local Search APIs", "SQL Engines", "Offline Concept", "Alpine Linux Packages", "Anna\u2019s Archive", "Arch Linux", "Bing Engines", "Bpb", "Brave Engines", "BT4G", "Dailymotion", "Discourse Forums", "DuckDuckGo Engines", "Geizhals", "Gitea", "GitLab", "Google Engines", "Lemmy", "Library of Congress", "Mastodon", "Moviepilot", "Matrix Rooms Search (MRS)", "Mullvad-Leta", "Mwmbl Engine", "Odysee", "Peertube Engines", "Piped", "Presearch Engine", "Qwant", "RadioBrowser", "Recoll Engine", "Seekr Engines", "Startpage Engines", "Tagesschau API", "Torznab WebAPI", "Void Linux binary packages", "Wallhaven", "Wikimedia", "Yacy", "Yahoo Engine", "Z-Library", "Tineye", "XPath Engine", "Developer documentation", "Developing in Linux Containers", "Makefile & ./manage", "Plugins", "Development Quickstart", "reST primer", "Runtime Management", "Search API", "Tooling box searxng_extra", "searxng_extra/standalone_searx.py", "searxng_extra/update/", "Translation", "Welcome to SearXNG", "Why use a private instance?", "Source-Code", "Custom message extractor (i18n)", "Bot Detection", "SearXNG Exceptions", "Favicons (source)", "Online /info", "Locales", "Hostnames plugin", "Tor check plugin", "Unit converter plugin", "Redis DB", "Redis Library", "Search", "Search processors", "Settings Loader", "SQLite DB", "Utility functions for the engines", "About SearXNG", "Configured Engines", "User information", "Search syntax", "DevOps tooling box", "utils/lxc.sh", "utils/searxng.sh"], "titleterms": {"": [0, 6, 8, 11, 32, 41, 100], "If": 30, "In": 81, "The": [6, 8, 27, 30, 81], "about": [85, 93, 111], "abstract": 107, "activ": 82, "addit": 30, "administr": [1, 4], "admonit": 85, "after": 26, "aka": 85, "alpin": 40, "anchor": 85, "anna": 41, "answer": [0, 49], "apach": 6, "api": [1, 37, 49, 53, 70, 87], "app": 112, "ar": [30, 93], "arbitrari": 30, "arch": 42, "architectur": 2, "archiv": 41, "archlinux": 81, "argument": 30, "articl": 85, "ascii": 85, "asdf": 86, "audienc": 81, "autocomplet": [53, 60], "automat": 114, "bang": 114, "bar": 1, "bashism": 7, "basic": 85, "bibliograph": 85, "bibtex": 30, "binari": 72, "bing": 43, "block": 85, "bot": 96, "box": [88, 115], "bpb": 44, "brand": 17, "brave": 45, "bt4g": 46, "build": [3, 7, 27, 82, 85], "buildhost": [3, 116], "built": 12, "builtin": 12, "bullet": 85, "cach": [13, 98], "can": 111, "captcha": 0, "categori": [69, 114], "categories_as_tab": 18, "check": [10, 26, 102], "checker": 82, "class": 107, "clean": [27, 82, 116], "code": [27, 85, 94, 100], "command": [7, 35, 115, 116, 117], "commit": 27, "common": [30, 115], "compon": 33, "concept": 39, "conclus": 93, "config": [96, 98, 116], "configur": [1, 10, 12, 13, 14, 30, 34, 35, 36, 38, 41, 46, 51, 52, 54, 58, 63, 65, 67, 68, 71, 75, 77, 79, 112], "congress": 55, "connect": 116, "consequ": 93, "contain": [7, 81], "content": [45, 46, 53, 54, 58, 63, 65, 68, 75, 77, 85], "contribut": 27, "convert": 103, "creat": [10, 27], "csp": 53, "csv": 85, "currenc": [33, 107], "custom": 95, "dailymot": 47, "data": [1, 100], "databas": 36, "db": [104, 109], "debian": [6, 11], "debug": 26, "default": [12, 30, 111], "definit": 85, "demo": [28, 29], "depend": [10, 36, 38, 39], "deploi": 27, "design": 27, "detect": 96, "develop": [3, 22, 80, 81, 84], "devop": 115, "dictionari": [33, 107], "direct": 27, "disabl": [6, 8], "discours": 48, "distributor": 11, "do": 111, "doc": [3, 27, 82], "docker": [7, 116], "document": [4, 27, 80], "doe": [93, 111], "dot": 85, "drop": 82, "duckduckgo": 49, "elasticsearch": 37, "emb": 1, "enabl": 14, "engin": [19, 28, 29, 30, 31, 32, 33, 34, 35, 36, 38, 39, 43, 45, 49, 53, 60, 62, 64, 67, 68, 69, 76, 79, 81, 82, 110, 111, 112, 114], "engine_typ": 30, "entri": 83, "env": 82, "environ": [82, 85, 115], "equat": 85, "exampl": [19, 35, 36, 37, 38, 48, 67, 79, 83, 85], "except": 97, "ext": 85, "extern": [83, 114], "extlink": 85, "extra": [36, 38, 39, 49], "extractor": 95, "favicon": [13, 98], "featur": 92, "field": [30, 85], "figur": 85, "file": [30, 85, 112], "first": 9, "flask": 96, "flat": 85, "foo": 85, "format": [30, 82], "forum": 48, "framework": 33, "from": 0, "fulli": 81, "function": [81, 110], "further": [2, 6, 8, 9, 11, 12, 15, 16, 19, 26, 30, 36, 37, 38, 81, 82, 83, 84, 85, 87, 112, 116, 117], "gate": 85, "geizhal": 50, "gener": [20, 30, 85, 112], "gentlemen": 81, "get": [1, 7, 86], "gh": 82, "gitea": 51, "github": 27, "gitlab": 52, "go": 82, "goggl": 45, "good": [27, 116], "googl": 53, "graphviz": 85, "grid": 85, "group": 112, "hackabl": 27, "head": 85, "header": [6, 96], "hello": 85, "help": [82, 116, 117], "highlight": 85, "hint": [7, 116], "hlist": 85, "horizont": 85, "hostnam": 101, "how": [26, 27, 93, 111], "http": [6, 8, 96], "http_accept": 96, "http_accept_encod": 96, "http_accept_languag": 96, "http_connect": 96, "http_user_ag": 96, "hyperlink": 85, "i": [30, 93, 111], "i18n": 95, "imag": [7, 30, 43, 49, 53, 85, 112], "implement": [14, 33, 34, 35, 36, 38, 41, 45, 46, 48, 51, 52, 54, 58, 63, 64, 65, 67, 68, 71, 75, 77, 79, 100], "info": [7, 14, 19, 26, 33, 35, 36, 37, 38, 48, 67, 99], "inform": 113, "infrastructur": 13, "inlin": 85, "insid": 7, "inspect": 26, "instal": [5, 9, 10, 26, 82, 116, 117], "instanc": 93, "instant": 49, "interfac": 39, "internet": 116, "intersphinx": 85, "introduc": 86, "io": 27, "ip": [0, 96], "ip_limit": 96, "ip_list": 96, "j": 82, "kernel": 85, "kiss": 85, "know": 116, "known": [63, 68], "languag": [45, 64, 69, 114], "latex": 85, "layout": [6, 11], "lemmi": 54, "leta": 59, "librari": [31, 55, 77, 105], "limit": [14, 96], "line": [7, 35, 85], "link": 85, "link_token": 96, "lint": 3, "linux": [40, 42, 72, 81], "list": [85, 96], "lite": 49, "liter": 85, "live": [27, 82], "loader": [32, 108], "local": [37, 100], "locat": 16, "log": [6, 8], "lxc": 116, "lxd": 116, "lyric": 112, "mainten": [11, 13, 26], "make": [30, 82, 111], "makefil": 82, "manag": [82, 86], "manual": 0, "map": [30, 112], "mariadb": 38, "markup": 85, "mastodon": 56, "math": 85, "matrix": 58, "matter": 85, "media": 30, "mediawiki": 34, "meilisearch": 37, "messag": 95, "method": 96, "migrat": 26, "mode": 11, "modul": [6, 30], "mongodb": 36, "motiv": 81, "moviepilot": 57, "mr": 58, "mullvad": 59, "multilingu": 19, "music": 112, "mwmbl": 60, "my": [93, 111], "mysql": 38, "name": [30, 82, 85], "need": 3, "nest": 85, "new": [43, 49, 53, 112], "nginx": 8, "node": 82, "nodej": 82, "nosql": 36, "note": [22, 85], "nvm": 82, "o": 9, "obsolet": 26, "odyse": 61, "offlin": [28, 33, 39, 107], "onlin": [29, 30, 33, 99, 107], "online_curr": 30, "online_dictionari": 30, "online_url_search": 30, "option": 30, "ordinari": 85, "origin": [11, 92], "outgo": 21, "overrid": 30, "overview": 30, "own": [93, 111], "packag": [10, 30, 40, 72, 112], "page": 82, "paper": 30, "paragraph": 85, "paramet": [30, 87], "part": 92, "pass": 30, "peertub": 62, "pipe": 63, "pitfal": 11, "plugin": [12, 83, 101, 102, 103], "point": 83, "polici": 53, "postgresql": 38, "presearch": 64, "prime": 27, "primer": 85, "privaci": [27, 93], "privat": [19, 39, 93], "probe": 96, "process": 85, "processor": 107, "product": 81, "program": 39, "protect": 93, "proxi": [13, 98], "public": 93, "py": [89, 90], "pylint": 82, "python": 82, "q": 112, "queri": 114, "quickstart": 84, "quirk": [63, 68], "quot": 85, "qwant": 65, "radio": 112, "radiobrows": 66, "rate": 96, "read": [2, 6, 8, 9, 11, 12, 15, 16, 19, 26, 30, 36, 37, 38, 81, 82, 83, 84, 85, 87, 112, 116, 117], "readabl": 85, "recol": 67, "recommend": 30, "redi": [22, 36, 82, 104, 105], "redirect": 114, "ref": 85, "region": [45, 64, 69], "regist": 13, "remote_addr": 96, "remov": 26, "render": 85, "repo": 112, "request": [30, 96], "resolv": [13, 98], "respons": 1, "rest": [27, 85], "result": 30, "role": 85, "room": 58, "run": [7, 82, 93, 116], "runtim": 86, "sampl": 1, "scholar": 53, "scienc": 112, "scientific_publ": 112, "script": [3, 9], "search": [1, 19, 23, 33, 37, 58, 64, 82, 87, 106, 107, 111, 114], "searxng": [6, 7, 8, 10, 26, 32, 81, 92, 93, 97, 100, 111, 116, 117], "searxng_extra": [88, 89, 90], "secur": [39, 53], "see": [30, 93], "seekr": 68, "select": 114, "sepiasearch": 62, "server": [0, 6, 8, 24, 36], "servic": 26, "set": [13, 15, 16, 30, 108, 111], "setup": [2, 11, 30, 116], "sh": [116, 117], "shell": [3, 7, 82], "sidebar": 85, "simpl": 85, "site": [6, 8], "skill": 85, "smart": 85, "social_media": 112, "soft": 85, "software_wiki": 112, "solr": 37, "sourc": [27, 94, 98], "space": 85, "special": 114, "specif": 85, "specifi": 30, "sphinx": [3, 85], "sql": 38, "sqlite": [38, 109], "ssh": 0, "stai": 26, "standalone_searx": 89, "start": [81, 86], "startpag": 69, "static": 82, "statu": 82, "step": 10, "structur": 85, "subgroup": 112, "substitut": 85, "suit": [81, 116], "summari": 81, "svg": 85, "syntax": [85, 114], "tab": [85, 112], "tabl": 85, "tagesschau": 70, "templat": [30, 85], "test": 82, "theme": 82, "time": 12, "tiney": 78, "titl": 85, "token": 19, "toml": 14, "tool": [3, 88, 115], "tor": 102, "torrent": 30, "torznab": 71, "trait": 31, "translat": [27, 91, 112], "true": [10, 16], "truth": 85, "tune": 26, "type": [30, 33, 64], "tyrant": 11, "ui": 25, "unicod": 85, "unit": 103, "up": [13, 116], "updat": [9, 26, 90], "update_ahmia_blacklist": 90, "update_curr": 90, "update_engine_descript": 90, "update_engine_trait": 90, "update_external_bang": 90, "update_firefox_vers": 90, "update_local": 90, "update_osm_keys_tag": 90, "update_pyg": 90, "update_wikidata_unit": 90, "url": [33, 85, 107], "us": [93, 111], "use_default_set": [10, 16], "user": [10, 113], "usual": 81, "util": [110, 116, 117], "uwsgi": [2, 6, 11], "version": 86, "video": [30, 43, 47, 49, 53, 62, 64, 112], "view": 85, "void": 72, "wallhaven": 73, "warn": [7, 13], "weather": 49, "web": [43, 53, 60, 112], "webapi": 71, "welcom": 92, "what": 93, "why": [93, 111], "wiki": 42, "wikidata": 74, "wikimedia": [74, 112], "wikipedia": 74, "without": 112, "wlc": 91, "work": [81, 111], "worth": 93, "wrap": 81, "xpath": 79, "yaci": 75, "yahoo": 76, "yml": [16, 30], "your": 81, "z": 77}}) \ No newline at end of file diff --git a/src/index.html b/src/index.html index 90e78ad555b9..844bf59b5d6c 100644 --- a/src/index.html +++ b/src/index.html @@ -5,13 +5,14 @@ - Source-Code — SearXNG Documentation (2024.10.4+bebb5f57) + Source-Code — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

        Navigation

      • previous |
      • - + @@ -76,6 +77,15 @@

        Source-CodeSearxXPathSyntaxException +
      • Favicons (source) +
      • Online /info
      • +
      • SQLite DB +
      • Utility functions for the engines
      • @@ -266,11 +283,8 @@

        This Page

        - - - \ No newline at end of file diff --git a/src/searx.babel_extract.html b/src/searx.babel_extract.html index 43ad24638550..65a9105900a1 100644 --- a/src/searx.babel_extract.html +++ b/src/searx.babel_extract.html @@ -5,13 +5,14 @@ - Custom message extractor (i18n) — SearXNG Documentation (2024.10.4+bebb5f57) + Custom message extractor (i18n) — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

        Navigation

      • previous |
      • - + @@ -100,6 +101,7 @@

        Table of Contents

      • Bot Detection
      • SearXNG Exceptions
      • +
      • Favicons (source)
      • Online /info
      • Locales
      • Hostnames plugin
      • @@ -110,6 +112,7 @@

        Table of Contents

      • Search
      • Search processors
      • Settings Loader
      • +
      • SQLite DB
      • Utility functions for the engines
      • @@ -157,11 +160,8 @@

        This Page

        - - - \ No newline at end of file diff --git a/src/searx.botdetection.html b/src/searx.botdetection.html index 3e83705d66ff..aa210d31dcd9 100644 --- a/src/searx.botdetection.html +++ b/src/searx.botdetection.html @@ -5,13 +5,14 @@ - Bot Detection — SearXNG Documentation (2024.10.4+bebb5f57) + Bot Detection — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

        Navigation

      • previous |
      • - + @@ -73,18 +74,18 @@

        Navigation

        Implementations used for bot detection.

        -searx.botdetection.get_network(real_ip: IPv4Address | IPv6Address, cfg: Config) IPv4Network | IPv6Network[source]
        +searx.botdetection.get_network(real_ip: IPv4Address | IPv6Address, cfg: Config) IPv4Network | IPv6Network[source]

        Returns the (client) network of whether the real_ip is part of.

        -searx.botdetection.get_real_ip(request: Request) str[source]
        +searx.botdetection.get_real_ip(request: Request) str[source]

        Returns real IP of the request. Since not all proxies set all the HTTP headers and incoming headers can be faked it may happen that the IP cannot be determined correctly.

        This function tries to get the remote IP in the order listed below, @@ -94,13 +95,13 @@

        Navigation

        -searx.botdetection.too_many_requests(network: IPv4Network | IPv6Network, log_msg: str) Response | None[source]
        +searx.botdetection.too_many_requests(network: IPv4Network | IPv6Network, log_msg: str) Response | None[source]

        Returns a HTTP 429 response object and writes a ERROR message to the ‘botdetection’ logger. This function is used in part by the filter methods to return the default Too Many Requests response.

        @@ -128,14 +129,14 @@

        Navigation

        -searx.botdetection.ip_lists.block_ip(real_ip: IPv4Address | IPv6Address, cfg: Config) Tuple[bool, str][source]
        +searx.botdetection.ip_lists.block_ip(real_ip: IPv4Address | IPv6Address, cfg: Config) Tuple[bool, str][source]

        Checks if the IP on the subnet is in one of the members of the botdetection.ip_lists.block_ip list.

        -searx.botdetection.ip_lists.pass_ip(real_ip: IPv4Address | IPv6Address, cfg: Config) Tuple[bool, str][source]
        +searx.botdetection.ip_lists.pass_ip(real_ip: IPv4Address | IPv6Address, cfg: Config) Tuple[bool, str][source]

        Checks if the IP on the subnet is in one of the members of the botdetection.ip_lists.pass_ip list.

        @@ -262,14 +263,14 @@

        Navigation

        +searx.botdetection.link_token.get_ping_key(network: IPv4Network | IPv6Network, request: Request) str[source]

        Generates a hashed key that fits (more or less) to a WEB-browser session in a network.

        +searx.botdetection.link_token.get_token() str[source]

        Returns current token. If there is no currently active token a new token is generated randomly and stored in the redis DB.

      • SearXNG Exceptions
      • +
      • Favicons (source)
      • Online /info
      • Locales
      • Hostnames plugin
      • @@ -526,6 +528,7 @@

        Table of Contents

      • Search
      • Search processors
      • Settings Loader
      • +
      • SQLite DB
      • Utility functions for the engines
      • @@ -573,11 +576,8 @@

        This Page

        - - - \ No newline at end of file diff --git a/src/searx.exceptions.html b/src/searx.exceptions.html index 3a1f437eaf9d..06aaa2e445f9 100644 --- a/src/searx.exceptions.html +++ b/src/searx.exceptions.html @@ -5,16 +5,17 @@ - SearXNG Exceptions — SearXNG Documentation (2024.10.4+bebb5f57) + SearXNG Exceptions — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + - +
        - - - \ No newline at end of file diff --git a/src/searx.favicons.html b/src/searx.favicons.html new file mode 100644 index 000000000000..a70c98078922 --- /dev/null +++ b/src/searx.favicons.html @@ -0,0 +1,720 @@ + + + + + + + + Favicons (source) — SearXNG Documentation (2024.10.31+5f50d2d5) + + + + + + + + + + + + + + +
        +
        +
        +
        + +
        +

        Favicons (source)

        + +

        Implementations for providing the favicons in SearXNG

        +
        +
        +searx.favicons.favicon_proxy()[source]
        +

        REST API of SearXNG’s favicon proxy service

        +
        /favicon_proxy?authority=<...>&h=<...>
        +
        +
        +
        +
        authority:

        Domain name RFC 3986 / see favicon_url

        +
        +
        h:

        HMAC RFC 2104, build up from the server.secret_key setting.

        +
        +
        +
        + +
        +
        +searx.favicons.favicon_url(authority: str) str[source]
        +

        Function to generate the image URL used for favicons in SearXNG’s result +lists. The authority argument (aka netloc / RFC 3986) is usually a +(sub-) domain name. This function is used in the HTML (jinja) templates.

        +
        <div class="favicon">
        +   <img src="{{ favicon_url(result.parsed_url.netloc) }}">
        +</div>
        +
        +
        +

        The returned URL is a route to favicon_proxy REST API.

        +

        If the favicon is already in the cache, the returned URL is a data URL +(something like data:image/png;base64,...). By generating a data url from +the cache.FaviconCache, additional HTTP roundtripps via the +favicon_proxy are saved. However, it must also be borne in mind +that data urls are not cached in the client (web browser).

        +
        + +
        +

        Favicons Config

        +
        +
        +class searx.favicons.config.FaviconConfig(cfg_schema: int, cache: ~searx.favicons.cache.FaviconCacheConfig = <factory>, proxy: ~searx.favicons.proxy.FaviconProxyConfig = <factory>)[source]
        +

        The class aggregates configurations of the favicon tools

        +
        +
        +classmethod from_toml_file(cfg_file: Path, use_cache: bool) FaviconConfig[source]
        +

        Create a config object from a TOML file, the use_cache argument +specifies whether a cache should be used.

        +
        + +
        +
        +cache: FaviconCacheConfig
        +

        Setup of the cache.FaviconCacheConfig.

        +
        + +
        +
        +cfg_schema: int
        +

        Config’s schema version. The specification of the version of the schema +is mandatory, currently only version CONFIG_SCHEMA is supported. +By specifying a version, it is possible to ensure downward compatibility in +the event of future changes to the configuration schema

        +
        + +
        +
        +proxy: FaviconProxyConfig
        +

        Setup of the proxy.FaviconProxyConfig.

        +
        + +
        + +
        +
        +searx.favicons.config.CONFIG_SCHEMA: int = 1
        +

        Version of the configuration schema.

        +
        + +
        +
        +searx.favicons.config.TOML_CACHE_CFG: dict[str, FaviconConfig] = {}
        +

        Cache config objects by TOML’s filename.

        +
        + +
        +
        +

        Favicons Proxy

        +

        Implementations for a favicon proxy

        +
        +
        +class searx.favicons.proxy.FaviconProxyConfig(max_age: int = 604800, secret_key: str = '', resolver_timeout: int = 3.0, resolver_map: dict[str, str] = <factory>, favicon_path: str = '/home/runner/work/searxng/searxng/searx/static/themes/{theme}/img/empty_favicon.svg', favicon_mime_type: str = 'image/svg+xml')[source]
        +

        Configuration of the favicon proxy.

        +
        +
        +favicon(**replacements)[source]
        +

        Returns pathname and mimetype of the default favicon.

        +
        + +
        +
        +favicon_data_url(**replacements)[source]
        +

        Returns data image URL of the default favicon.

        +
        + +
        +
        +get_resolver(name: str) Callable | None[source]
        +

        Returns the callable object (function) of the resolver with the +name. If no resolver is registered for the name, None is +returned.

        +
        + +
        +
        +max_age: int
        +

        HTTP header Cache-Control max-age

        +
        + +
        +
        +resolver_map: dict[str, str]
        +

        The resolver_map is a key / value dictionary where the key is the name of +the resolver and the value is the fully qualifying name (fqn) of resolver’s +function (the callable). The resolvers from the python module +searx.favicons.resolver are available by default.

        +
        + +
        +
        +resolver_timeout: int
        +

        Timeout which the resolvers should not exceed, is usually passed to the +outgoing request of the resolver. By default, the value from +outgoing.request_timeout setting is used.

        +
        + +
        +
        +secret_key: str
        +

        By default, the value from server.secret_key +setting is used.

        +
        + +
        + +
        +
        +searx.favicons.proxy.favicon_proxy()[source]
        +

        REST API of SearXNG’s favicon proxy service

        +
        /favicon_proxy?authority=<...>&h=<...>
        +
        +
        +
        +
        authority:

        Domain name RFC 3986 / see favicon_url

        +
        +
        h:

        HMAC RFC 2104, build up from the server.secret_key setting.

        +
        +
        +
        + +
        +
        +searx.favicons.proxy.favicon_url(authority: str) str[source]
        +

        Function to generate the image URL used for favicons in SearXNG’s result +lists. The authority argument (aka netloc / RFC 3986) is usually a +(sub-) domain name. This function is used in the HTML (jinja) templates.

        +
        <div class="favicon">
        +   <img src="{{ favicon_url(result.parsed_url.netloc) }}">
        +</div>
        +
        +
        +

        The returned URL is a route to favicon_proxy REST API.

        +

        If the favicon is already in the cache, the returned URL is a data URL +(something like data:image/png;base64,...). By generating a data url from +the cache.FaviconCache, additional HTTP roundtripps via the +favicon_proxy are saved. However, it must also be borne in mind +that data urls are not cached in the client (web browser).

        +
        + +
        +
        +searx.favicons.proxy.search_favicon(resolver: str, authority: str) tuple[None | bytes, None | str][source]
        +

        Sends the request to the favicon resolver and returns a tuple for the +favicon. The tuple consists of (data, mime), if the resolver has not +determined a favicon, both values are None.

        +
        +
        data:

        Binary data of the favicon.

        +
        +
        mime:

        Mime type of the favicon.

        +
        +
        +
        + +
        +
        +

        Favicons Resolver

        +

        Implementations of the favicon resolvers that are available in the favicon +proxy by default. A resolver is a function that obtains the favicon from an +external source. The resolver function receives two arguments (domain, +timeout) and returns a tuple (data, mime).

        +
        +
        +searx.favicons.resolvers.allesedv(domain: str, timeout: int) tuple[None | bytes, None | str][source]
        +

        Favicon Resolver from allesedv.com / https://favicon.allesedv.com/

        +
        + +
        +
        +searx.favicons.resolvers.duckduckgo(domain: str, timeout: int) tuple[None | bytes, None | str][source]
        +

        Favicon Resolver from duckduckgo.com / https://blog.jim-nielsen.com/2021/displaying-favicons-for-any-domain/

        +
        + +
        +
        +searx.favicons.resolvers.google(domain: str, timeout: int) tuple[None | bytes, None | str][source]
        +

        Favicon Resolver from google.com

        +
        + +
        +
        +searx.favicons.resolvers.yandex(domain: str, timeout: int) tuple[None | bytes, None | str][source]
        +

        Favicon Resolver from yandex.com

        +
        + +
        +
        +

        Favicons Cache

        +

        Implementations for caching favicons.

        +
        +
        FaviconCacheConfig:

        Configuration of the favicon cache

        +
        +
        FaviconCache:

        Abstract base class for the implementation of a favicon cache.

        +
        +
        FaviconCacheSQLite:

        Favicon cache that manages the favicon BLOBs in a SQLite DB.

        +
        +
        FaviconCacheNull:

        Fallback solution if the configured cache cannot be used for system reasons.

        +
        +
        +
        +
        +
        +class searx.favicons.cache.FaviconCache(cfg: FaviconCacheConfig)[source]
        +

        Abstract base class for the implementation of a favicon cache.

        +
        +
        +abstract maintenance(force=False)[source]
        +

        Performs maintenance on the cache

        +
        + +
        +
        +abstract set(resolver: str, authority: str, mime: str | None, data: bytes | None) bool[source]
        +

        Set data and mime-type in the cache. If data is None, the +FALLBACK_ICON is registered. in the cache.

        +
        + +
        +
        +abstract state() FaviconCacheStats[source]
        +

        Returns a FaviconCacheStats (key/values) with information +on the state of the cache.

        +
        + +
        + +
        +
        +class searx.favicons.cache.FaviconCacheConfig(db_type: Literal['sqlite', 'mem'] = 'sqlite', db_url: str = '/tmp/faviconcache.db', HOLD_TIME: int = 2592000, LIMIT_TOTAL_BYTES: int = 52428800, BLOB_MAX_BYTES: int = 20480, MAINTENANCE_PERIOD: int = 3600, MAINTENANCE_MODE: Literal['auto', 'off'] = 'auto')[source]
        +

        Configuration of the favicon cache.

        +
        +
        +BLOB_MAX_BYTES: int
        +

        The maximum BLOB size in bytes that a favicon may have so that it can be +saved in the cache. If the favicon is larger, it is not saved in the cache +and must be requested by the client via the proxy.

        +
        + +
        +
        +HOLD_TIME: int
        +

        Hold time (default in sec.), after which a BLOB is removed from the cache.

        +
        + +
        +
        +LIMIT_TOTAL_BYTES: int
        +

        Maximum of bytes (default) stored in the cache of all blobs. Note: The +limit is only reached at each maintenance interval after which the oldest +BLOBs are deleted; the limit is exceeded during the maintenance period. If +the maintenance period is too long or maintenance is switched off +completely, the cache grows uncontrollably.

        +
        + +
        +
        +MAINTENANCE_MODE: Literal['auto', 'off']
        +

        Type of maintenance mode

        +
        +
        auto:

        Maintenance is carried out automatically as part of the maintenance +intervals (MAINTENANCE_PERIOD); no external process is required.

        +
        +
        off:

        Maintenance is switched off and must be carried out by an external process +if required.

        +
        +
        +
        + +
        +
        +MAINTENANCE_PERIOD: int
        +

        Maintenance period in seconds / when MAINTENANCE_MODE is set to +auto.

        +
        + +
        +
        +db_type: Literal['sqlite', 'mem']
        +

        Type of the database:

        +
        +
        sqlite:

        cache.FaviconCacheSQLite

        +
        +
        mem:

        cache.FaviconCacheMEM (not recommended)

        +
        +
        +
        + +
        +
        +db_url: str
        +

        URL of the SQLite DB, the path to the database file.

        +
        + +
        + +
        +
        +class searx.favicons.cache.FaviconCacheMEM(cfg)[source]
        +

        Favicon cache in process’ memory. Its just a POC that stores the +favicons in the memory of the process.

        +
        +

        Attention

        +

        Don’t use it in production, it will blow up your memory!!

        +
        +
        +
        +maintenance(force=False)[source]
        +

        Performs maintenance on the cache

        +
        + +
        +
        +set(resolver: str, authority: str, mime: str | None, data: bytes | None) bool[source]
        +

        Set data and mime-type in the cache. If data is None, the +FALLBACK_ICON is registered. in the cache.

        +
        + +
        +
        +state()[source]
        +

        Returns a FaviconCacheStats (key/values) with information +on the state of the cache.

        +
        + +
        + +
        +
        +class searx.favicons.cache.FaviconCacheNull(cfg: FaviconCacheConfig)[source]
        +

        A dummy favicon cache that caches nothing / a fallback solution. The +NullCache is used when more efficient caches such as the +FaviconCacheSQLite cannot be used because, for example, the SQLite +library is only available in an old version and does not meet the +requirements.

        +
        +
        +maintenance(force=False)[source]
        +

        Performs maintenance on the cache

        +
        + +
        +
        +set(resolver: str, authority: str, mime: str | None, data: bytes | None) bool[source]
        +

        Set data and mime-type in the cache. If data is None, the +FALLBACK_ICON is registered. in the cache.

        +
        + +
        +
        +state()[source]
        +

        Returns a FaviconCacheStats (key/values) with information +on the state of the cache.

        +
        + +
        + +
        +
        +class searx.favicons.cache.FaviconCacheSQLite(cfg: FaviconCacheConfig)[source]
        +

        Favicon cache that manages the favicon BLOBs in a SQLite DB. The DB +model in the SQLite DB is implemented using the abstract class +sqlitedb.SQLiteAppl.

        +

        The following configurations are required / supported:

        + +
        +
        +maintenance(force=False)[source]
        +

        Performs maintenance on the cache

        +
        + +
        +
        +set(resolver: str, authority: str, mime: str | None, data: bytes | None) bool[source]
        +

        Set data and mime-type in the cache. If data is None, the +FALLBACK_ICON is registered. in the cache.

        +
        + +
        +
        +state() FaviconCacheStats[source]
        +

        Returns a FaviconCacheStats (key/values) with information +on the state of the cache.

        +
        + +
        +
        +DB_SCHEMA: int = 1
        +

        As soon as changes are made to the DB schema, the version number must be +increased. Changes to the version number require the DB to be recreated (or +migrated / if an migration path exists and is implemented).

        +
        + +
        +
        +DDL_BLOBS = 'CREATE TABLE IF NOT EXISTS blobs (\n  sha256     TEXT,\n  bytes_c    INTEGER,\n  mime       TEXT NOT NULL,\n  data       BLOB NOT NULL,\n  PRIMARY KEY (sha256))'
        +

        Table to store BLOB objects by their sha256 hash values.

        +
        + +
        +
        +DDL_BLOB_MAP = "CREATE TABLE IF NOT EXISTS blob_map (\n    m_time     INTEGER DEFAULT (strftime('%s', 'now')),  -- last modified (unix epoch) time in sec.\n    sha256     TEXT,\n    resolver   TEXT,\n    authority  TEXT,\n    PRIMARY KEY (resolver, authority))"
        +

        Table to map from (resolver, authority) to sha256 hash values.

        +
        + +
        +
        +SQL_DROP_LEFTOVER_BLOBS = 'DELETE FROM blobs WHERE sha256 IN ( SELECT b.sha256   FROM blobs b   LEFT JOIN blob_map bm     ON b.sha256 = bm.sha256  WHERE bm.sha256 IS NULL)'
        +

        Delete blobs.sha256 (BLOBs) no longer in blob_map.sha256.

        +
        + +
        +
        +property next_maintenance_time: int
        +

        Returns (unix epoch) time of the next maintenance.

        +
        + +
        + +
        +
        +class searx.favicons.cache.FaviconCacheStats(favicons: int | None = None, bytes: int | None = None, domains: int | None = None, resolvers: int | None = None)[source]
        +

        Dataclass wich provides information on the status of the cache.

        +
        + +
        +
        +searx.favicons.cache.init(cfg: FaviconCacheConfig)[source]
        +

        Initialization of a global CACHE

        +
        + +
        +
        +searx.favicons.cache.maintenance(force: bool = True, debug: bool = False)[source]
        +

        perform maintenance of the cache

        +
        + +
        +
        +searx.favicons.cache.state()[source]
        +

        show state of the cache

        +
        + +
        +
        + + +
        +
        +
        +
        + + +
        +
        + + + \ No newline at end of file diff --git a/src/searx.infopage.html b/src/searx.infopage.html index e1460dbf48b7..cfb7940c1e35 100644 --- a/src/searx.infopage.html +++ b/src/searx.infopage.html @@ -5,17 +5,18 @@ - Online /info — SearXNG Documentation (2024.10.4+bebb5f57) + Online /info — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + - +
        - - - \ No newline at end of file diff --git a/src/searx.locales.html b/src/searx.locales.html index 570051516dbb..dcfbbf50e7f4 100644 --- a/src/searx.locales.html +++ b/src/searx.locales.html @@ -5,13 +5,14 @@ - Locales — SearXNG Documentation (2024.10.4+bebb5f57) + Locales — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

        Navigation

      • previous |
      • - + @@ -109,7 +110,7 @@

        SearXNG’s locale im
        -searx.locales.build_engine_locales(tag_list: list[str])[source]
        +searx.locales.build_engine_locales(tag_list: list[str])[source]

        From a list of locale tags a dictionary is build that can be passed by argument engine_locales to get_engine_locale. This function is mainly used by match_locale and is similar to what the @@ -193,14 +194,14 @@

        SearXNG’s locale im
        -searx.locales.get_locale(locale_tag: str) Locale | None[source]
        +searx.locales.get_locale(locale_tag: str) Locale | None[source]

        Returns a babel.Locale object parsed from argument locale_tag

        -searx.locales.get_official_locales(territory: str, languages=None, regional: bool = False, de_facto: bool = True) set[Locale][source]
        +searx.locales.get_official_locales(territory: str, languages=None, regional: bool = False, de_facto: bool = True) set[Locale][source]

        Returns a list of babel.Locale with languages from babel.languages.get_official_languages.

        @@ -222,7 +223,7 @@

        SearXNG’s locale im
        -searx.locales.get_translation_locales() list[str][source]
        +searx.locales.get_translation_locales() list[str][source]

        Returns the list of transaltion locales (underscore). The list is generated from the translation folders in git://searx/translations

        @@ -235,7 +236,7 @@

        SearXNG’s locale im
        -searx.locales.language_tag(locale: Locale) str[source]
        +searx.locales.language_tag(locale: Locale) str[source]

        Returns SearXNG’s language tag from the locale and if exits, the tag includes the script name (e.g. en, zh_Hant).

        @@ -252,15 +253,15 @@

        SearXNG’s locale im
        -searx.locales.match_locale(searxng_locale: str, locale_tag_list: list[str], fallback: str | None = None) str | None[source]
        +searx.locales.match_locale(searxng_locale: str, locale_tag_list: list[str], fallback: str | None = None) str | None[source]

        Return tag from locale_tag_list that best fits to searxng_locale.

        Parameters:
          -
        • searxng_locale (str) – SearXNG’s internal representation of locale (de, +

        • searxng_locale (str) – SearXNG’s internal representation of locale (de, de-DE, fr-BE, zh, zh-CN, zh-TW ..).

        • -
        • locale_tag_list (list) – The list of locale tags to select from

        • -
        • fallback (str) – fallback locale tag (if unset –> None)

        • +
        • locale_tag_list (list) – The list of locale tags to select from

        • +
        • fallback (str) – fallback locale tag (if unset –> None)

        @@ -276,7 +277,7 @@

        SearXNG’s locale im
        -searx.locales.region_tag(locale: Locale) str[source]
        +searx.locales.region_tag(locale: Locale) str[source]

        Returns SearXNG’s region tag from the locale (e.g. zh-TW , en-US).

        @@ -306,7 +307,7 @@

        SearXNG’s locale im
        -searx.locales.RTL_LOCALES: set[str] = {'ar', 'fa-IR', 'he'}
        +searx.locales.RTL_LOCALES: set[str] = {'ar', 'fa-IR', 'he'}

        List of Right-To-Left locales e.g. ‘he’ or ‘fa-IR’ (see locales_initialize).

        @@ -339,6 +340,7 @@

        Table of Contents

      • Custom message extractor (i18n)
      • Bot Detection
      • SearXNG Exceptions
      • +
      • Favicons (source)
      • Online /info
      • Locales
      • @@ -418,11 +421,8 @@

        This Page

        - - - \ No newline at end of file diff --git a/src/searx.plugins.hostnames.html b/src/searx.plugins.hostnames.html index 80ef41e4433c..46e82a5b60c1 100644 --- a/src/searx.plugins.hostnames.html +++ b/src/searx.plugins.hostnames.html @@ -5,13 +5,14 @@ - Hostnames plugin — SearXNG Documentation (2024.10.4+bebb5f57) + Hostnames plugin — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

        Navigation

      • previous |
      • - + @@ -154,6 +155,7 @@

        Table of Contents

      • Custom message extractor (i18n)
      • Bot Detection
      • SearXNG Exceptions
      • +
      • Favicons (source)
      • Online /info
      • Locales
      • Hostnames plugin
      • @@ -164,6 +166,7 @@

        Table of Contents

      • Search
      • Search processors
      • Settings Loader
      • +
      • SQLite DB
      • Utility functions for the engines
      • @@ -211,11 +214,8 @@

        This Page

        - - - \ No newline at end of file diff --git a/src/searx.plugins.tor_check.html b/src/searx.plugins.tor_check.html index 21393b8c8a33..705cdfc7795f 100644 --- a/src/searx.plugins.tor_check.html +++ b/src/searx.plugins.tor_check.html @@ -5,13 +5,14 @@ - Tor check plugin — SearXNG Documentation (2024.10.4+bebb5f57) + Tor check plugin — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

        Navigation

      • previous |
      • - + @@ -113,6 +114,7 @@

        Table of Contents

      • Custom message extractor (i18n)
      • Bot Detection
      • SearXNG Exceptions
      • +
      • Favicons (source)
      • Online /info
      • Locales
      • Hostnames plugin
      • @@ -130,6 +132,7 @@

        Table of Contents

      • Search
      • Search processors
      • Settings Loader
      • +
      • SQLite DB
      • Utility functions for the engines
      • @@ -177,11 +180,8 @@

        This Page

        - - - \ No newline at end of file diff --git a/src/searx.plugins.unit_converter.html b/src/searx.plugins.unit_converter.html index 0f7523621b8d..6cd8bb839ba0 100644 --- a/src/searx.plugins.unit_converter.html +++ b/src/searx.plugins.unit_converter.html @@ -5,13 +5,14 @@ - Unit converter plugin — SearXNG Documentation (2024.10.4+bebb5f57) + Unit converter plugin — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

        Navigation

      • previous |
      • - + @@ -98,7 +99,7 @@

        Navigation

        }, -

        The values of to_si and from_si can be of float (a multiplier) +

        The values of to_si and from_si can be of float (a multiplier) or a callable (val in / converted value returned).

        @@ -141,6 +142,7 @@

        Table of Contents

      • Custom message extractor (i18n)
      • Bot Detection
      • SearXNG Exceptions
      • +
      • Favicons (source)
      • Online /info
      • Locales
      • Hostnames plugin
      • @@ -156,6 +158,7 @@

        Table of Contents

      • Search
      • Search processors
      • Settings Loader
      • +
      • SQLite DB
      • Utility functions for the engines
      • @@ -203,11 +206,8 @@

        This Page

        - - - \ No newline at end of file diff --git a/src/searx.redisdb.html b/src/searx.redisdb.html index 0fa316757492..21237f39506c 100644 --- a/src/searx.redisdb.html +++ b/src/searx.redisdb.html @@ -5,13 +5,14 @@ - Redis DB — SearXNG Documentation (2024.10.4+bebb5f57) + Redis DB — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

        Navigation

      • previous |
      • - + @@ -93,6 +94,7 @@

        Table of Contents

      • Custom message extractor (i18n)
      • Bot Detection
      • SearXNG Exceptions
      • +
      • Favicons (source)
      • Online /info
      • Locales
      • Hostnames plugin
      • @@ -106,6 +108,7 @@

        Table of Contents

      • Search
      • Search processors
      • Settings Loader
      • +
      • SQLite DB
      • Utility functions for the engines
      • @@ -153,11 +156,8 @@

        This Page

        - - - \ No newline at end of file diff --git a/src/searx.redislib.html b/src/searx.redislib.html index 9fed404bf505..8f8297b919d8 100644 --- a/src/searx.redislib.html +++ b/src/searx.redislib.html @@ -5,13 +5,14 @@ - Redis Library — SearXNG Documentation (2024.10.4+bebb5f57) + Redis Library — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

        Navigation

      • previous |
      • - + @@ -58,7 +59,7 @@

        Navigation

        -searx.redislib.incr_counter(client, name: str, limit: int = 0, expire: int = 0)[source]
        +searx.redislib.incr_counter(client, name: str, limit: int = 0, expire: int = 0)[source]

        Increment a counter and return the new value.

        If counter with redis key SearXNG_counter_<name> does not exists it is created with initial value 1 returned. The replacement <name> is a @@ -69,7 +70,7 @@

        Navigation

        Parameters:
          -
        • name (str) – name of the counter

        • +
        • name (str) – name of the counter

        • expire (int / see EXPIRE) – live-time of the counter in seconds (default None means infinite).

        • limit (int / limit is 2^64 see INCR) – limit where the counter stops to increment (default None)

        • @@ -96,7 +97,7 @@

          Navigation

          -searx.redislib.incr_sliding_window(client, name: str, duration: int)[source]
          +searx.redislib.incr_sliding_window(client, name: str, duration: int)[source]

          Increment a sliding-window counter and return the new value.

          If counter with redis key SearXNG_counter_<name> does not exists it is created with initial value 1 returned. The replacement <name> is a @@ -105,7 +106,7 @@

          Navigation

          Parameters:
            -
          • name (str) – name of the counter

          • +
          • name (str) – name of the counter

          • duration – live-time of the sliding window in seconds

          @@ -155,7 +156,7 @@

          Navigation

          -searx.redislib.purge_by_prefix(client, prefix: str = 'SearXNG_')[source]
          +searx.redislib.purge_by_prefix(client, prefix: str = 'SearXNG_')[source]

          Purge all keys with prefix from database.

          Queries all keys in the database by the given prefix and set expire time to zero. The default prefix will drop all keys which has been set by SearXNG @@ -173,13 +174,13 @@

          Navigation

          -searx.redislib.secret_hash(name: str)[source]
          +searx.redislib.secret_hash(name: str)[source]

          Creates a hash of the name.

          Combines argument name with the secret_key from server:. This function can be used to get a more anonymized name of a Redis KEY.

          Parameters:
          -

          name (str) – the name to create a secret hash for

          +

          name (str) – the name to create a secret hash for

          @@ -219,6 +220,7 @@

          Table of Contents

        • Custom message extractor (i18n)
        • Bot Detection
        • SearXNG Exceptions
        • +
        • Favicons (source)
        • Online /info
        • Locales
        • Hostnames plugin
        • @@ -238,6 +240,7 @@

          Table of Contents

        • Search
        • Search processors
        • Settings Loader
        • +
        • SQLite DB
        • Utility functions for the engines
        @@ -285,11 +288,8 @@

        This Page

        - - - \ No newline at end of file diff --git a/src/searx.search.html b/src/searx.search.html index afe315e93993..d16bf32360c2 100644 --- a/src/searx.search.html +++ b/src/searx.search.html @@ -5,13 +5,14 @@ - Search — SearXNG Documentation (2024.10.4+bebb5f57) + Search — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

        Navigation

      • previous |
      • - + @@ -47,13 +48,13 @@

        Navigation

        Search

        -class searx.search.EngineRef(name: str, category: str)[source]
        +class searx.search.EngineRef(name: str, category: str)[source]

        Reference by names to an engine and category

        -class searx.search.SearchQuery(query: str, engineref_list: List[EngineRef], lang: str = 'all', safesearch: int = 0, pageno: int = 1, time_range: str | None = None, timeout_limit: float | None = None, external_bang: str | None = None, engine_data: Dict[str, str] | None = None, redirect_to_first_result: bool | None = None)[source]
        +class searx.search.SearchQuery(query: str, engineref_list: List[EngineRef], lang: str = 'all', safesearch: int = 0, pageno: int = 1, time_range: str | None = None, timeout_limit: float | None = None, external_bang: str | None = None, engine_data: Dict[str, str] | None = None, redirect_to_first_result: bool | None = None)[source]

        container for all the search parameters (query, language, etc…)

        @@ -80,7 +81,7 @@

        Navigation

        -class searx.search.SearchWithPlugins(search_query: SearchQuery, ordered_plugin_list, request: Request)[source]
        +class searx.search.SearchWithPlugins(search_query: SearchQuery, ordered_plugin_list, request: Request)[source]

        Inherit from the Search class, add calls to the plugins.

        @@ -94,7 +95,7 @@

        Navigation

        -ordered_plugin_list: List
        +ordered_plugin_list: List
        @@ -137,6 +138,7 @@

        Table of Contents

      • Custom message extractor (i18n)
      • Bot Detection
      • SearXNG Exceptions
      • +
      • Favicons (source)
      • Online /info
      • Locales
      • Hostnames plugin
      • @@ -165,6 +167,7 @@

        Table of Contents

      • Search processors
      • Settings Loader
      • +
      • SQLite DB
      • Utility functions for the engines
      • @@ -212,11 +215,8 @@

        This Page

        - - - \ No newline at end of file diff --git a/src/searx.search.processors.html b/src/searx.search.processors.html index 377fe337d705..1a31eb295493 100644 --- a/src/searx.search.processors.html +++ b/src/searx.search.processors.html @@ -5,13 +5,14 @@ - Search processors — SearXNG Documentation (2024.10.4+bebb5f57) + Search processors — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

        Navigation

      • previous |
      • - + @@ -60,7 +61,7 @@

        Navigation

        Abstract base classes for engine request processors.

        -class searx.search.processors.abstract.EngineProcessor(engine, engine_name: str)[source]
        +class searx.search.processors.abstract.EngineProcessor(engine, engine_name: str)[source]

        Base classes used for all types of request processors.

        @@ -88,7 +89,7 @@

        Navigation

        Processors for engine-type: offline

        -class searx.search.processors.offline.OfflineProcessor(engine, engine_name: str)[source]
        +class searx.search.processors.offline.OfflineProcessor(engine, engine_name: str)[source]

        Processor class used by offline engines

        @@ -98,7 +99,7 @@

        Navigation

        Processors for engine-type: online

        -class searx.search.processors.online.OnlineProcessor(engine, engine_name: str)[source]
        +class searx.search.processors.online.OnlineProcessor(engine, engine_name: str)[source]

        Processor class for online engines.

        @@ -121,7 +122,7 @@

        Navigation

        Processors for engine-type: online_currency

        -class searx.search.processors.online_currency.OnlineCurrencyProcessor(engine, engine_name: str)[source]
        +class searx.search.processors.online_currency.OnlineCurrencyProcessor(engine, engine_name: str)[source]

        Processor class used by online_currency engines.

        @@ -138,7 +139,7 @@

        Navigation

        Processors for engine-type: online_dictionary

        -class searx.search.processors.online_dictionary.OnlineDictionaryProcessor(engine, engine_name: str)[source]
        +class searx.search.processors.online_dictionary.OnlineDictionaryProcessor(engine, engine_name: str)[source]

        Processor class used by online_dictionary engines.

        @@ -155,7 +156,7 @@

        Navigation

        Processors for engine-type: online_url_search

        -class searx.search.processors.online_url_search.OnlineUrlSearchProcessor(engine, engine_name: str)[source]
        +class searx.search.processors.online_url_search.OnlineUrlSearchProcessor(engine, engine_name: str)[source]

        Processor class used by online_url_search engines.

        @@ -195,6 +196,7 @@

        Table of Contents

      • Custom message extractor (i18n)
      • Bot Detection
      • SearXNG Exceptions
      • +
      • Favicons (source)
      • Online /info
      • Locales
      • Hostnames plugin
      • @@ -248,6 +250,7 @@

        Table of Contents

      • Settings Loader
      • +
      • SQLite DB
      • Utility functions for the engines
      • @@ -295,11 +298,8 @@

        This Page

        - - - \ No newline at end of file diff --git a/src/searx.settings.html b/src/searx.settings.html index 19af4d850675..87dc04bc5dd6 100644 --- a/src/searx.settings.html +++ b/src/searx.settings.html @@ -5,16 +5,17 @@ - Settings Loader — SearXNG Documentation (2024.10.4+bebb5f57) + Settings Loader — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + - +

        Returns folder where the local configurations are located.

        1. If the SEARXNG_SETTINGS_PATH environment is set and points to a @@ -79,12 +80,12 @@

          Navigation

        In case none of the above path exists, None is returned. In case of environment SEARXNG_SETTINGS_PATH is set, but the (folder or file) does -not exists, a EnvironmentError is raised.

        +not exists, a EnvironmentError is raised.

        -searx.settings_loader.get_yaml_cfg(file_name: str | Path) dict[source]
        +searx.settings_loader.get_yaml_cfg(file_name: str | Path) dict[source]

        Shortcut to load a YAML config from a file, located in the

        +
      • SQLite DB
      • Utility functions for the engines
      • @@ -177,7 +180,7 @@

        Project Links

      • Source-Code +
      • Next: SQLite DB
      • @@ -203,11 +206,8 @@

        This Page

        - - - \ No newline at end of file diff --git a/src/searx.sqlitedb.html b/src/searx.sqlitedb.html new file mode 100644 index 000000000000..0a680a41a500 --- /dev/null +++ b/src/searx.sqlitedb.html @@ -0,0 +1,345 @@ + + + + + + + + SQLite DB — SearXNG Documentation (2024.10.31+5f50d2d5) + + + + + + + + + + + + + + +
        +
        +
        +
        + +
        +

        SQLite DB

        +

        Implementations to make access to SQLite databases a little more convenient.

        +
        +
        SQLiteAppl

        Abstract class with which DB applications can be implemented.

        +
        +
        SQLiteProperties:

        Class to manage properties stored in a database.

        +
        +
        +
        +
        +
        +class searx.sqlitedb.SQLiteAppl(db_url)[source]
        +

        Abstract base class for implementing convenient DB access in SQLite +applications. In the constructor, a SQLiteProperties instance is +already aggregated under self.properties.

        +
        +
        +connect() Connection[source]
        +

        Creates a new DB connection (SQLITE_CONNECT_ARGS). If not +already done, the DB schema is set up

        +
        + +
        +
        +init()[source]
        +

        Initializes the DB schema and properties, is only executed once even +if called several times.

        +
        + +
        +
        +register_functions(conn)[source]
        +

        Create user-defined SQL functions.

        +
        +
        REGEXP(<pattern>, <field>)0 | 1

        re.search returns (int) 1 for a match and 0 for none match of +<pattern> in <field>.

        +
        SELECT '12' AS field WHERE REGEXP('^[0-9][0-9]$', field)
        +-- 12
        +
        +SELECT REGEXP('[0-9][0-9]', 'X12Y')
        +-- 1
        +SELECT REGEXP('[0-9][0-9]', 'X1Y')
        +-- 0
        +
        +
        +
        +
        +
        + +
        +
        +property DB: Connection
        +

        Provides a DB connection. The connection is a singleton and +therefore well suited for read access. If +SQLITE_THREADING_MODE is serialized only one DB connection +is created for all threads.

        +
        +

        Note

        +

        For dedicated transaction control, it is recommended to create a +new connection (SQLiteAppl.connect).

        +
        +
        + +
        +
        +DB_SCHEMA: int = 1
        +

        As soon as changes are made to the DB schema, the version number must be +increased. Changes to the version number require the DB to be recreated (or +migrated / if an migration path exists and is implemented).

        +
        + +
        +
        +SQLITE_CONNECT_ARGS = {'autocommit': False, 'cached_statements': 0, 'check_same_thread': False}
        +

        Connection arguments (sqlite3.connect)

        +
        +
        check_same_thread:

        Is disabled by default when SQLITE_THREADING_MODE is +serialized. The check is more of a hindrance in this case because it +would prevent a DB connector from being used in multiple threads.

        +
        +
        autocommit:

        Is disabled by default. Note: autocommit option has been added in Python +3.12.

        +
        +
        cached_statements:

        Is set to 0 by default. Note: Python 3.12+ fetch result are not +consistent in multi-threading application and causing an API misuse error.

        +

        The multithreading use in SQLiteAppl is intended and supported if +threadsafety is set to 3 (aka “serialized”). CPython supports “serialized” +from version 3.12 on, but unfortunately only with errors:

        + +

        The workaround for SQLite3 multithreading cache inconsistency ist to set +option cached_statements to 0 by default.

        +
        +
        +
        + +
        +
        +SQLITE_THREADING_MODE = 'serialized'
        +

        Threading mode of the SQLite library. Depends on the options used at +compile time and is different for different distributions and architectures.

        +

        Possible values are 0:single-thread, 1:multi-thread, +3:serialized (see sqlite3.threadsafety). Pre- Python 3.11 +this value was hard coded to 1.

        +

        Depending on this value, optimizations are made, e.g. in “serialized” mode +it is not necessary to create a separate DB connector for each thread.

        +
        + +
        + +
        +
        +class searx.sqlitedb.SQLiteProperties(db_url: str)[source]
        +

        Simple class to manage properties of a DB application in the DB. The +object has its own DB connection and transaction area.

        +
        CREATE TABLE IF NOT EXISTS properties (
        +  name       TEXT,
        +  value      TEXT,
        +  m_time     INTEGER DEFAULT (strftime('%s', 'now')),
        +  PRIMARY KEY (name))
        +
        +
        +
        +
        +init()[source]
        +

        Initializes DB schema of the properties in the DB.

        +
        + +
        +
        +m_time(name, default: int = 0) int[source]
        +

        Last modification time of this property.

        +
        + +
        +
        +row(name, default=None)[source]
        +

        Returns the DB row of property name or default if property +not exists in DB.

        +
        + +
        +
        +set(name, value)[source]
        +

        Set value of property name in DB. If property already +exists, update the m_time (and the value).

        +
        + +
        +
        +DDL_PROPERTIES = "CREATE TABLE IF NOT EXISTS properties (\n  name       TEXT,\n  value      TEXT,\n  m_time     INTEGER DEFAULT (strftime('%s', 'now')),  -- last modified (unix epoch) time in sec.\n  PRIMARY KEY (name))"
        +

        Table to store properties of the DB application

        +
        + +
        +
        +SQLITE_CONNECT_ARGS = {'autocommit': True, 'cached_statements': 0, 'check_same_thread': False}
        +

        Connection arguments (sqlite3.connect)

        +
        +
        check_same_thread:

        Is disabled by default when SQLITE_THREADING_MODE is +serialized. The check is more of a hindrance in this case because it +would prevent a DB connector from being used in multiple threads.

        +
        +
        autocommit:

        Is disabled by default. Note: autocommit option has been added in Python +3.12.

        +
        +
        cached_statements:

        Is set to 0 by default. Note: Python 3.12+ fetch result are not +consistent in multi-threading application and causing an API misuse error.

        +

        The multithreading use in SQLiteAppl is intended and supported if +threadsafety is set to 3 (aka “serialized”). CPython supports “serialized” +from version 3.12 on, but unfortunately only with errors:

        + +

        The workaround for SQLite3 multithreading cache inconsistency ist to set +option cached_statements to 0 by default.

        +
        +
        +
        + +
        + +
        + + +
        +
        +
        +
        + + +
        +
        + + + \ No newline at end of file diff --git a/src/searx.utils.html b/src/searx.utils.html index e9b8b9fd5778..bf4e6f9bbd41 100644 --- a/src/searx.utils.html +++ b/src/searx.utils.html @@ -5,16 +5,17 @@ - Utility functions for the engines — SearXNG Documentation (2024.10.4+bebb5f57) + Utility functions for the engines — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + - + - - - \ No newline at end of file diff --git a/user/index.html b/user/index.html index 32b432f1aecb..5135c082c3f5 100644 --- a/user/index.html +++ b/user/index.html @@ -5,13 +5,14 @@ - User information — SearXNG Documentation (2024.10.4+bebb5f57) + User information — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

        Navigation

      • previous |
      • - + @@ -147,11 +148,8 @@

        This Page

        - - - \ No newline at end of file diff --git a/user/search-syntax.html b/user/search-syntax.html index 04a7c0d67ea9..4f0564dd4537 100644 --- a/user/search-syntax.html +++ b/user/search-syntax.html @@ -5,13 +5,14 @@ - Search syntax — SearXNG Documentation (2024.10.4+bebb5f57) + Search syntax — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

        Navigation

      • previous |
      • - + @@ -222,11 +223,8 @@

        This Page

        - - - \ No newline at end of file diff --git a/utils/index.html b/utils/index.html index 1266091d7ad1..f19dee222f0f 100644 --- a/utils/index.html +++ b/utils/index.html @@ -5,13 +5,14 @@ - DevOps tooling box — SearXNG Documentation (2024.10.4+bebb5f57) + DevOps tooling box — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

        Navigation

      • previous |
      • - + @@ -148,11 +149,8 @@

        This Page

        - - - \ No newline at end of file diff --git a/utils/lxc.sh.html b/utils/lxc.sh.html index 13477823094c..ffefbd994c32 100644 --- a/utils/lxc.sh.html +++ b/utils/lxc.sh.html @@ -5,13 +5,14 @@ - utils/lxc.sh — SearXNG Documentation (2024.10.4+bebb5f57) + utils/lxc.sh — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

        Navigation

      • previous |
      • - + @@ -510,11 +511,8 @@

        This Page

        - - - \ No newline at end of file diff --git a/utils/searxng.sh.html b/utils/searxng.sh.html index 358f15d06a94..e8889ab84c1f 100644 --- a/utils/searxng.sh.html +++ b/utils/searxng.sh.html @@ -5,13 +5,14 @@ - utils/searxng.sh — SearXNG Documentation (2024.10.4+bebb5f57) + utils/searxng.sh — SearXNG Documentation (2024.10.31+5f50d2d5) - - + + + @@ -32,7 +33,7 @@

        Navigation

      • previous |
      • - + @@ -101,7 +102,7 @@

        Install - - - \ No newline at end of file