summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2025-12-05[upd] github-actions: Bump actions/checkout from 6.0.0 to 6.0.1dependabot[bot]
Bumps [actions/checkout](https://github.com/actions/checkout) from 6.0.0 to 6.0.1. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/1af3b93b6815bc44a9784bd300feb67ff0d1eeb3...8e8c483db84b4bee98b60c0593521ed34d9990e8) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: 6.0.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
2025-12-04[mod] setup.py package_data - use recursive globs for package_dataMarkus Heiser
To test this patch build a python wheel:: $ make clean py.build and llok out if you are missing any files in the wheel:: $ unzip -l dist/searxng-*-py3-none-any.whl Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-12-04[fix] py: sxng wheel build still brokenleaty
Directories chunk and img were not included Signed-off-by: leaty <dev@leaty.net>
2025-12-04[debug] CI - add debug to trace issue #5490 (#5519)Markus Heiser
The error only occurs in the CI action, which is why we need to commit the coded debug. As soon as the bug is identified and fixed, this commit can be reverted / the ``set -x`` can be removed from the code. Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-12-04[fix] plugin unit-converter - remove leftovers (#5517)Markus Heiser
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-12-04[fix] findthatmeme: hardening the response against KeyErrors (#5516)Austin-Olacsi
2025-12-03[fix] mojeek: first search page is rate-limitedBnyro
Mojeek blocks all requests where the page offset parameter `s` is set to 0, hence we may not set it for fetching the first results page.
2025-12-03[fix] py: sxng wheel build broken (#5510)Ivan Gabaldon
Include everything inside `static/themes/` on SearXNG wheel creation. ``` 2025-12-03 10:40:43,509 INFO:wheel: adding 'searx/static/themes/simple/manifest.json' 2025-12-03 10:40:43,509 INFO:wheel: adding 'searx/static/themes/simple/sxng-core.min.js' 2025-12-03 10:40:43,509 INFO:wheel: adding 'searx/static/themes/simple/sxng-core.min.js.map' 2025-12-03 10:40:43,510 INFO:wheel: adding 'searx/static/themes/simple/sxng-ltr.min.css' 2025-12-03 10:40:43,510 INFO:wheel: adding 'searx/static/themes/simple/sxng-rss.min.css' 2025-12-03 10:40:43,511 INFO:wheel: adding 'searx/static/themes/simple/sxng-rtl.min.css' 2025-12-03 10:40:43,511 INFO:wheel: adding 'searx/static/themes/simple/chunk/13gvpunf.min.js' 2025-12-03 10:40:43,511 INFO:wheel: adding 'searx/static/themes/simple/chunk/13gvpunf.min.js.map' 2025-12-03 10:40:43,516 INFO:wheel: adding 'searx/static/themes/simple/chunk/BAcZkB_P.min.js' 2025-12-03 10:40:43,548 INFO:wheel: adding 'searx/static/themes/simple/chunk/BAcZkB_P.min.js.map' 2025-12-03 10:40:43,551 INFO:wheel: adding 'searx/static/themes/simple/chunk/CHkLfdMs.min.js' 2025-12-03 10:40:43,561 INFO:wheel: adding 'searx/static/themes/simple/chunk/CHkLfdMs.min.js.map' 2025-12-03 10:40:43,562 INFO:wheel: adding 'searx/static/themes/simple/chunk/CyyZ9XJS.min.js' 2025-12-03 10:40:43,562 INFO:wheel: adding 'searx/static/themes/simple/chunk/CyyZ9XJS.min.js.map' 2025-12-03 10:40:43,562 INFO:wheel: adding 'searx/static/themes/simple/chunk/DBO1tjH7.min.js' 2025-12-03 10:40:43,562 INFO:wheel: adding 'searx/static/themes/simple/chunk/DBO1tjH7.min.js.map' 2025-12-03 10:40:43,562 INFO:wheel: adding 'searx/static/themes/simple/chunk/Db5v-hxx.min.js' 2025-12-03 10:40:43,563 INFO:wheel: adding 'searx/static/themes/simple/chunk/Db5v-hxx.min.js.map' 2025-12-03 10:40:43,563 INFO:wheel: adding 'searx/static/themes/simple/chunk/DxJxX49r.min.js' 2025-12-03 10:40:43,563 INFO:wheel: adding 'searx/static/themes/simple/chunk/DxJxX49r.min.js.map' 2025-12-03 10:40:43,563 INFO:wheel: adding 'searx/static/themes/simple/chunk/KPZlR0ib.min.js' 2025-12-03 10:40:43,563 INFO:wheel: adding 'searx/static/themes/simple/chunk/KPZlR0ib.min.js.map' 2025-12-03 10:40:43,563 INFO:wheel: adding 'searx/static/themes/simple/chunk/Q2SRo2ED.min.js' 2025-12-03 10:40:43,563 INFO:wheel: adding 'searx/static/themes/simple/chunk/Q2SRo2ED.min.js.map' 2025-12-03 10:40:43,563 INFO:wheel: adding 'searx/static/themes/simple/chunk/gZqIRpW1.min.js' 2025-12-03 10:40:43,563 INFO:wheel: adding 'searx/static/themes/simple/chunk/gZqIRpW1.min.js.map' 2025-12-03 10:40:43,564 INFO:wheel: adding 'searx/static/themes/simple/img/empty_favicon.svg' 2025-12-03 10:40:43,564 INFO:wheel: adding 'searx/static/themes/simple/img/favicon.png' 2025-12-03 10:40:43,564 INFO:wheel: adding 'searx/static/themes/simple/img/favicon.svg' 2025-12-03 10:40:43,564 INFO:wheel: adding 'searx/static/themes/simple/img/img_load_error.svg' 2025-12-03 10:40:43,564 INFO:wheel: adding 'searx/static/themes/simple/img/searxng.png' 2025-12-03 10:40:43,564 INFO:wheel: adding 'searx/static/themes/simple/img/searxng.svg' 2025-12-03 10:40:43,564 INFO:wheel: adding 'searx/static/themes/simple/img/select-dark.svg' 2025-12-03 10:40:43,564 INFO:wheel: adding 'searx/static/themes/simple/img/select-light.svg' ```
2025-12-03[feat] engines: add lucide icons (#5503)Bnyro
2025-12-02[mod] client/simple: client plugins (#5406)Ivan Gabaldon
* [mod] client/simple: client plugins Defines a new interface for client side *"plugins"* that coexist with server side plugin system. Each plugin (e.g., `InfiniteScroll`) extends the base `ts Plugin`. Client side plugins are independent and lazy‑loaded via `router.ts` when their `load()` conditions are met. On each navigation request, all applicable plugins are instanced. Since these are client side plugins, we can only invoke them once DOM is fully loaded. E.g. `Calculator` will not render a new `answer` block until fully loaded and executed. For some plugins, we might want to handle its availability in `settings.yml` and toggle in UI, like we do for server side plugins. In that case, we extend `py Plugin` instancing only the information and then checking client side if [`settings.plugins`](https://github.com/inetol/searxng/blob/1ad832b1dc33f3f388da361ff2459b05dc86a164/client/simple/src/js/toolkit.ts#L134) array has the plugin id. * [mod] client/simple: rebuild static
2025-12-01[fix] brave: content description also contains website URL (#5502)Bnyro
there are other classes like 'site-name-content' we don't want to match, however only using contains(@class, 'content') would e.g. also match `site-name-content` thus, we explicitly also require the spaces as class separator
2025-11-29[data] update searx.data - update_engine_descriptions.py (#5496)github-actions[bot]
2025-11-29[fix] py: missing module sniffioIvan Gabaldon
2025-11-29[data] update searx.data - update_currencies.pysearxng-bot
2025-11-29[data] update searx.data - update_wikidata_units.pysearxng-bot
2025-11-29[data] update searx.data - update_firefox_version.pysearxng-bot
2025-11-29[data] update searx.data - update_ahmia_blacklist.pysearxng-bot
2025-11-28Revert "[fix:py3.14] Struct fields aren't discovered in Python 3.14"Markus Heiser
This reverts commit 8fdc59a7604cd661638586ff0381530da86eb76c.
2025-11-28[upd] pypi: Bump the minor group with 2 updatesdependabot[bot]
Bumps the minor group with 2 updates: [msgspec](https://github.com/jcrist/msgspec) and [types-lxml](https://github.com/abelcheung/types-lxml). Updates `msgspec` from 0.19.0 to 0.20.0 - [Release notes](https://github.com/jcrist/msgspec/releases) - [Changelog](https://github.com/jcrist/msgspec/blob/main/docs/changelog.md) - [Commits](https://github.com/jcrist/msgspec/compare/0.19.0...0.20.0) Updates `types-lxml` from 2025.8.25 to 2025.11.25 - [Release notes](https://github.com/abelcheung/types-lxml/releases) - [Commits](https://github.com/abelcheung/types-lxml/compare/2025.08.25...2025.11.25) --- updated-dependencies: - dependency-name: msgspec dependency-version: 0.20.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: minor - dependency-name: types-lxml dependency-version: 2025.11.25 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: minor ... Signed-off-by: dependabot[bot] <support@github.com>
2025-11-28[upd] web-client (simple): Bump the minor groupdependabot[bot]
Bumps the minor group in /client/simple with 3 updates: [@biomejs/biome](https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome), [sort-package-json](https://github.com/keithamus/sort-package-json) and [stylelint](https://github.com/stylelint/stylelint). Updates `@biomejs/biome` from 2.3.7 to 2.3.8 - [Release notes](https://github.com/biomejs/biome/releases) - [Changelog](https://github.com/biomejs/biome/blob/main/packages/@biomejs/biome/CHANGELOG.md) - [Commits](https://github.com/biomejs/biome/commits/@biomejs/biome@2.3.8/packages/@biomejs/biome) Updates `sort-package-json` from 3.4.0 to 3.5.0 - [Release notes](https://github.com/keithamus/sort-package-json/releases) - [Commits](https://github.com/keithamus/sort-package-json/compare/v3.4.0...v3.5.0) Updates `stylelint` from 16.25.0 to 16.26.0 - [Release notes](https://github.com/stylelint/stylelint/releases) - [Changelog](https://github.com/stylelint/stylelint/blob/main/CHANGELOG.md) - [Commits](https://github.com/stylelint/stylelint/compare/16.25.0...16.26.0) --- updated-dependencies: - dependency-name: "@biomejs/biome" dependency-version: 2.3.8 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: minor - dependency-name: sort-package-json dependency-version: 3.5.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: minor - dependency-name: stylelint dependency-version: 16.26.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: minor ... Signed-off-by: dependabot[bot] <support@github.com>
2025-11-28[upd] github-actions: Bump actions/setup-python from 6.0.0 to 6.1.0dependabot[bot]
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 6.0.0 to 6.1.0. - [Release notes](https://github.com/actions/setup-python/releases) - [Commits](https://github.com/actions/setup-python/compare/e797f83bcb11b83ae66e0230d6156d7c80228e7c...83679a892e2d95755f2dac6acb0bfd1e9ac5d548) --- updated-dependencies: - dependency-name: actions/setup-python dependency-version: 6.1.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
2025-11-28[upd] github-actions: Bump peter-evans/create-pull-requestdependabot[bot]
Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 7.0.8 to 7.0.9. - [Release notes](https://github.com/peter-evans/create-pull-request/releases) - [Commits](https://github.com/peter-evans/create-pull-request/compare/271a8d0340265f705b14b6d32b9829c1cb33d45e...84ae59a2cdc2258d6fa0732dd66352dddae2a412) --- updated-dependencies: - dependency-name: peter-evans/create-pull-request dependency-version: 7.0.9 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
2025-11-28[upd] github-actions: Bump github/codeql-action from 4.31.4 to 4.31.5dependabot[bot]
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 4.31.4 to 4.31.5. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/github/codeql-action/compare/e12f0178983d466f2f6028f5cc7a6d786fd97f4b...fdbfb4d2750291e159f0156def62b853c2798ca2) --- updated-dependencies: - dependency-name: github/codeql-action dependency-version: 4.31.5 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
2025-11-25[fix] brave engines - web, images & videos (#5478)Markus Heiser
brave web: xpath selectors needed to be justified brave images & videos: The JS code with the JS object was read incorrectly; not always, but quite often, it led to exceptions when the Python data structure was created from it. BTW: A complete review was conducted and corrections or additions were made to the type definitions. To test all brave engines in once:: !br !brimg !brvid !brnews weather Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-11-25[mod] replace js_variable_to_python by js_obj_str_to_python (#2792) (#5477)Markus Heiser
This patch is based on PR #2792 (old PR from 2023) - js_obj_str_to_python handle more cases - bring tests from chompjs .. - comment out tests do not pass The tests from chompjs give some overview of what is not implemented. Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-11-25[mod] yandex engines: all egine should use one networkMarkus Heiser
- The three Yandex engines should use the same network context. - There is no reason to set these engines inactive Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-11-25[mod] yandex engine: add supported languagesAadniz
Add support for Yandex's supported languages; Russian, English, Belarusian, French, German, Indonesian, Kazakh, Tatar, Turkish and Ukrainian.
2025-11-25[fix] engines: base URL can be a list or a string, but its not None!Markus Heiser
The code injection and monkey patching examine the names in the module of the engine; if a variable there starts without an underscore and has the value None, then this variable needs to be configured. This outdated concept does not fit engines that may have multiple URLs. At least not as long as the value of the base URL (list) is None. The default is now an empty list instead of None Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-11-25[fix] engines initialization - if engine load fails, set to inactiveMarkus Heiser
- if engine load fails, set the engine to inactive - dont' load a engine, when the config says its inactive Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-11-25[fix] don't raise fatal exception when engine isn't availableMarkus Heiser
When wikidata or any other engine with a init method (is active!) raises an exception in it's init method, the engine is never registered. [1] https://github.com/searxng/searxng/issues/5456#issuecomment-3567790287 Closes: https://github.com/searxng/searxng/issues/5456 Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-11-24[fix] recoll engine: remove HTML markup from result snippets (#5472)Hermógenes Oliveira
Recoll inserts markup tags in snippets to indicate matching terms in a search query. We remove them so that they don't show to users.
2025-11-23[upd] ci: docker secret maintenanceIvan Gabaldon
I've narrowed the permissions and rotated the token for the deploy account on DockerHub registry. I replaced the secret ref in GitHub so that it's available organization wide. No further actions are necessary.
2025-11-22[fix] drop mullvad-leta engine (#5428)Grant
On 2025 November 27th, Mullvad will be shutting down the Leta servers. For this reason, we also need to remove this engine from SearXNG. [1] https://mullvad.net/en/blog/shutting-down-our-search-proxy-leta
2025-11-22[feat] engine: add grokipedia (#5396)Austin-Olacsi
2025-11-21[upd] theme/simple: bump rolldownIvan Gabaldon
(no static changes...)
2025-11-21[fix] engines: typo (#5466)Léon Tiekötter
Fix typo in engine timeout definition: 'timout' -> 'timeout'
2025-11-21[upd] web-client (simple): Bump @biomejs/biomedependabot[bot]
Bumps the minor group in /client/simple with 1 update: [@biomejs/biome](https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome). Signed-off-by: dependabot[bot] <support@github.com>
2025-11-21[upd] github-actions: Bump actions/checkout from 5.0.0 to 6.0.0dependabot[bot]
Bumps [actions/checkout](https://github.com/actions/checkout) from 5.0.0 to 6.0.0. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/08c6903cd8c0fde910a37f88322edcfb5dd907a8...1af3b93b6815bc44a9784bd300feb67ff0d1eeb3) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: 6.0.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
2025-11-21[upd] github-actions: Bump github/codeql-action from 4.31.3 to 4.31.4dependabot[bot]
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 4.31.3 to 4.31.4. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/github/codeql-action/compare/014f16e7ab1402f30e7c3329d33797e7948572db...e12f0178983d466f2f6028f5cc7a6d786fd97f4b) --- updated-dependencies: - dependency-name: github/codeql-action dependency-version: 4.31.4 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
2025-11-21[upd] pypi: Bump the minor group with 4 updates (#5462)dependabot[bot]
Bumps the minor group with 4 updates: [granian](https://github.com/emmett-framework/granian), [granian[pname]](https://github.com/emmett-framework/granian), [granian[reload]](https://github.com/emmett-framework/granian) and [basedpyright](https://github.com/detachhead/basedpyright). Updates `granian` from 2.5.7 to 2.6.0 - [Release notes](https://github.com/emmett-framework/granian/releases) - [Commits](https://github.com/emmett-framework/granian/compare/v2.5.7...v2.6.0) Updates `granian[pname]` from 2.5.7 to 2.6.0 - [Release notes](https://github.com/emmett-framework/granian/releases) - [Commits](https://github.com/emmett-framework/granian/compare/v2.5.7...v2.6.0) Updates `granian[reload]` from 2.5.7 to 2.6.0 - [Release notes](https://github.com/emmett-framework/granian/releases) - [Commits](https://github.com/emmett-framework/granian/compare/v2.5.7...v2.6.0) Updates `basedpyright` from 1.33.0 to 1.34.0 - [Release notes](https://github.com/detachhead/basedpyright/releases) - [Commits](https://github.com/detachhead/basedpyright/compare/v1.33.0...v1.34.0)
2025-11-21[fix] engines - set hard timouts in *sub-request* (#5460)Markus Heiser
The requests changed here all run outside of the network context timeout, thereby preventing the engine's timeout from being applied (the engine's timeout can become longer than it was configured). Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-11-20[l10n] update translations from Weblatesearxng-bot
2025-11-20[fix] minor type hint issues (#5459)Markus Heiser
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-11-20[fix] utils.js_variable_to_python - partial revert of 156d1eb8c (#5458)Markus Heiser
The JS string, whose encoding will be corrupted if all single quotes (followed by a comma) are replaced with double quotes. Bug was introduced in PR #4573. Here is a simple example in which the list get corrupted:: >>> s = r"""[ 'foo\'', 'bar']""" >>> print(s) [ 'foo\'', 'bar'] >>> print(s.replace("',", "\",")) [ 'foo\'", 'bar'] Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-11-20[fix] presearch engine: blocked by captcha on every requestBnyro
Presearch responds with a Cloudflare captcha on each request when using HTTP2. Using HTTP1.1, everything seems to work fine. - other engines with the same issue: pixabay, uxwing - closes https://github.com/searxng/searxng/issues/5438
2025-11-20[fix] recoll engine: fix media previewHermógenes Oliveira
The results from the recoll engine were not displaying the usual toggle for showing media previews. After the changes described bellow, the toggle is displayed and works as expected. In the JSON returned by recoll-webui, the field containing the mimetype is actually `mtype`, not `mime`. Furthermore, according to the documentation for the `File` class in `searx/result_types/file.py`, `embedded` should contain the URL to the media itself. The embedding of the media into the page for preview is done in `searx/templates/simple/result_templates/file.html`.
2025-11-20[mod] docs: add acknowledgements section (#5449)Ivan Gabaldon
* [mod] docs: add acknowledgements section Moves all images into a `assets/` folder. * [fix] docs: normalize brands svg
2025-11-18[fix] client/simple: docs typo in plg.ts (#5450)Edge-Seven
2025-11-15[upd] pypi: Bump the minor group with 3 updates (#5443)dependabot[bot]
Bumps the minor group with 3 updates: [certifi](https://github.com/certifi/python-certifi), [pylint](https://github.com/pylint-dev/pylint) and [basedpyright](https://github.com/detachhead/basedpyright). Updates `certifi` from 2025.10.5 to 2025.11.12 - [Commits](https://github.com/certifi/python-certifi/compare/2025.10.05...2025.11.12) Updates `pylint` from 4.0.2 to 4.0.3 - [Release notes](https://github.com/pylint-dev/pylint/releases) - [Commits](https://github.com/pylint-dev/pylint/compare/v4.0.2...v4.0.3) Updates `basedpyright` from 1.32.1 to 1.33.0 - [Release notes](https://github.com/detachhead/basedpyright/releases) - [Commits](https://github.com/detachhead/basedpyright/compare/v1.32.1...v1.33.0)
2025-11-15[fix] drop alexandria.org (#5446)Austin-Olacsi