summaryrefslogtreecommitdiff
path: root/searx
AgeCommit message (Collapse)Author
2025-10-10[l10n] update translations from Weblate (#5296)github-actions[bot]
bb1f7a851 - 2025-10-04 - 0ko <0ko@noreply.codeberg.org>
2025-10-10[upd] web-client (simple): bump dependencies (#5294)dependabot[bot]
* [upd] web-client (simple): bump dependencies * [build] /static --------- Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Ivan Gabaldon <igabaldon@inetol.net>
2025-10-09[fix] startpage engine - SafeSearch works in reverse (#5290)Markus Heiser
The Name of the option is *disable_family_filter* -> we have to reverse the meaning of the ascending safe-search filter level. Closes: https://github.com/searxng/searxng/issues/5287 Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-10-08[fix:py3.14] using a non-empty mutable collection as default is unsafeMarkus Heiser
Starting with Python 3.14 msgspec reports:: File "/share/searxng/searx/weather.py", line 261, in <module> class Temperature(msgspec.Struct, kw_only=True): ...<60 lines>... return template.format(value=val_str, unit=unit) TypeError: Using a non-empty mutable collection (['°C', '°F', 'K']) \ as a default value is unsafe.\ Instead configure a `default_factory` for this field. The problem is solved by the fact that there are now global constants for the units (BTW singular/plural names of the type definitions are fixed): - TEMPERATURE_UNITS - PRESSURE_UNITS - WIND_SPEED_UNITS - RELATIVE_HUMIDITY_UNITS - COMPASS_POINTS - COMPASS_UNITS Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-10-08[fix:py3.14] Struct fields aren't discovered in Python 3.14Markus Heiser
This is a temporary workaround for #5284 [1]. However, the problem must be solved at a different level, in msgspec [2]. [1] https://github.com/searxng/searxng/issues/5284 [2] https://github.com/jcrist/msgspec/issues/847 Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-10-06[fix] google scholar - detect CAPTCHA (HTTP redirects) (#5268)Markus Heiser
In the case of .. response, for example, an HTTP 302 is returned by Google Scholar:: Our systems have detected unusual traffic from your computer network. Please try again later. Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-10-05[fix] ModuleNotFoundError: No module named 'lxml' (#5254)Markus Heiser
When installing SearXNG (e.g.): pip install --use-pep517 --no-build-isolation -e . An import exception is raised: ModuleNotFoundError: No module named 'lxml' The ``setup.py`` file imports ``searx``, which in turn triggers various other imports. However, the name XPath is only needed for type checking. Closes: https://github.com/searxng/searxng/issues/5177 Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-10-04[upd] web-client (simple): Bump the minor group (#5277)dependabot[bot]
Bumps the minor group in /client/simple with 5 updates: | Package | From | To | | --- | --- | --- | | [@biomejs/biome](https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome) | `2.2.4` | `2.2.5` | | [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `24.5.2` | `24.6.2` | | [browserslist](https://github.com/browserslist/browserslist) | `4.26.2` | `4.26.3` | | [lightningcss](https://github.com/parcel-bundler/lightningcss) | `1.30.1` | `1.30.2` | | [typescript](https://github.com/microsoft/TypeScript) | `5.9.2` | `5.9.3` | Updates `@biomejs/biome` from 2.2.4 to 2.2.5 - [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.2.5/packages/@biomejs/biome) Updates `@types/node` from 24.5.2 to 24.6.2 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) Updates `browserslist` from 4.26.2 to 4.26.3 - [Release notes](https://github.com/browserslist/browserslist/releases) - [Changelog](https://github.com/browserslist/browserslist/blob/main/CHANGELOG.md) - [Commits](https://github.com/browserslist/browserslist/compare/4.26.2...4.26.3) Updates `lightningcss` from 1.30.1 to 1.30.2 - [Release notes](https://github.com/parcel-bundler/lightningcss/releases) - [Commits](https://github.com/parcel-bundler/lightningcss/compare/v1.30.1...v1.30.2) Updates `typescript` from 5.9.2 to 5.9.3 - [Release notes](https://github.com/microsoft/TypeScript/releases) - [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release-publish.yml) - [Commits](https://github.com/microsoft/TypeScript/compare/v5.9.2...v5.9.3) --- updated-dependencies: - dependency-name: "@biomejs/biome" dependency-version: 2.2.5 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: minor - dependency-name: "@types/node" dependency-version: 24.6.2 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: minor - dependency-name: browserslist dependency-version: 4.26.3 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: minor - dependency-name: lightningcss dependency-version: 1.30.2 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: minor - dependency-name: typescript dependency-version: 5.9.3 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-03[l10n] update translations from Weblate (#5278)github-actions[bot]
9e090cc25 - 2025-10-01 - Ricky-Tigg <ricky-tigg@noreply.codeberg.org> Co-authored-by: searxng-bot <searxng-bot@users.noreply.github.com>
2025-10-03[fix] engine - cppreference has no longer a search function (#5273)Markus Heiser
cppreference has replaced its search (``mwiki/index.php?title=``) with a DDG search. The engine was first introduced in SearXNG with PR-3274 [1], and even back then the mediawiki proved to be incompatible, which is why the API could not be used at the time. Now there isn't even a dedicated search function anymore.. I think the cppreference project suffers from a lack of maintenance. [1] https://github.com/searxng/searxng/pull/3247 Closes: https://github.com/searxng/searxng/issues/5271 Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-10-01[fix] searx/results.py - TypeError: object of type 'NoneType' has no len()Markus Heiser
In some engines, under certain circumstances, the content field can also have the value ``None``; in these cases, a length check results in an exception:: File "/usr/local/searxng/searx/results.py", line 360, in merge_two_main_results if len(other.content) > len(origin.content): ^^^^^^^^^^^^^^^^^^ TypeError: object of type 'NoneType' has no len() [1] https://github.com/searxng/searxng/issues/5250#issuecomment-3352863488 Reported-by: @scross01 [1] Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-10-01[fix] JSON format: serialization of the result-typesMarkus Heiser
The ``JSONEncoder`` (``format="json"``) must perform a conversion to the built-in types for the ``msgspec.Struct``:: if isinstance(o, msgspec.Struct): return msgspec.to_builtins(o) The result types are already of type ``msgspec.Struct``, so they can be converted into built-in types. The field types (in the result type) that were not yet of type ``msgspec.Struct`` have been converted to:: searx.weather.GeoLocation@dataclass -> msgspec.Struct searx.weather.DateTime -> msgspec.Struct searx.weather.Temperature -> msgspec.Struct searx.weather.PressureUnits -> msgspec.Struct searx.weather.WindSpeed -> msgspec.Struct searx.weather.RelativeHumidity -> msgspec.Struct searx.weather.Compass -> msgspec.Struct BTW: Wherever it seemed sensible, the typing was also modernized in the modified files. Closes: https://github.com/searxng/searxng/issues/5250 Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-09-30[data] update searx.data - update_engine_traits.pysearxng-bot
2025-09-29[data] update searx.data - update_currencies.py (#5261)github-actions[bot]
Co-authored-by: searxng-bot <searxng-bot@users.noreply.github.com>
2025-09-29[data] update searx.data - update_engine_descriptions.py (#5262)github-actions[bot]
Co-authored-by: searxng-bot <searxng-bot@users.noreply.github.com>
2025-09-29[data] update searx.data - update_wikidata_units.py (#5259)github-actions[bot]
Co-authored-by: searxng-bot <searxng-bot@users.noreply.github.com>
2025-09-29[data] update searx.data - update_ahmia_blacklist.py (#5257)github-actions[bot]
Co-authored-by: searxng-bot <searxng-bot@users.noreply.github.com>
2025-09-29[data] update searx.data - update_firefox_version.pysearxng-bot
2025-09-28[fix] sqlitedb: DB connector -- unset isolation_levelMarkus Heiser
A Connection object can be used as a context manager that automatically commits or rolls back open transactions when leaving the body of the context manager. If the connection attribute ``isolation_level`` is **not** ``None``, new transactions are implicitly opened before ``execute()`` and ``executemany()`` executes SQL- INSERT, UPDATE, DELETE, or REPLACE statements [1]. The old implementation set ``isolation_level`` to ``None`` and thereby prevented the context manager from opening and closing the transaction scopes. [1] https://docs.python.org/3/library/sqlite3.html#sqlite3-transaction-control-isolation-level [2] https://github.com/searxng/searxng/pull/5239#discussion_r2381416731 Reported-by: Ivan G <igabaldon@inetol.net> [2] Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-09-28[mod] ExpireCacheSQLite - implement .setmany() for bulk loadingMarkus Heiser
[1] https://github.com/searxng/searxng/issues/5223#issuecomment-3328597147 Suggested-by: Ivan G <igabaldon@inetol.net> [1] Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-09-28[fix] openstreetmap: fix CURRENCIES.iso4217_to_nameMarkus Heiser
This patch is a leftover from PR-5204 [1]. [1] https://github.com/searxng/searxng/pull/5204 Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-09-28[mod] run bootload of the CURRENCIES cache on demandMarkus Heiser
In [1] it can be seen that the bootload of the CURRENCIES cache takes about 2/3 of the time required to initialize SearXNG. Whatever the absolute durations may be, an explicit bootload during the SearXNG initialization is not required, as the bootload is already ensured by the API of the CACHE. - ``CurrenciesDB.name_to_iso4217`` - ``CurrenciesDB.iso4217_to_name`` The fact that the bootload now occurs on-demand should improve the initialization time of SearXNG. [1] https://github.com/searxng/searxng/issues/5223#issuecomment-3323083411 Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-09-28[mod] debug-log the bootload of the CURRENCIES caches (CurrenciesDB)Markus Heiser
The time for the bootload is measured and recorded. To have an eye on the bootload time is motivated by: In [1] it can be seen that the bootload of the CURRENCIES cache takes about 2/3 of the time required to initialize SearXNG:: 6.068 <module> searx/webapp.py:1 └─ 6.068 wrapper pyinstrument/context_manager.py:52 ├─ 5.538 init searx/webapp.py:1373 │ ├─ 4.822 initialize searx/search/__init__.py:34 │ │ ├─ 4.631 ProcessorMap.init searx/search/processors/__init__.py:47 │ │ │ ├─ 4.607 OnlineCurrencyProcessor.initialize searx/search/processors/online_currency.py:55 │ │ │ │ └─ 4.607 CurrenciesDB.init searx/data/currencies.py:25 │ │ │ │ ├─ 4.601 CurrenciesDB.load searx/data/currencies.py:34 │ │ │ │ │ ├─ 4.572 ExpireCacheSQLite.set searx/cache.py:334 In the example, the CurrenciesDB.init call takes 4.6 seconds... on my laptop, CurrenciesDB.init takes only 0.7 seconds. The absolute numerical values depend on external conditions, where I already find 4-5 seconds very long. Test:: $ rm /tmp/sxng_cache_*.db* $ make run 2>&1 | grep "searx.data.CURRENCIES" DEBUG searx.data : init searx.data.CURRENCIES DEBUG searx.data : init searx.data.CURRENCIES added 9089 items in 0.7623255252838135 sec. [1] https://github.com/searxng/searxng/issues/5223#issuecomment-3323083411 Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-09-26[upd] pypi: Bump black from 24.3.0 to 25.9.0 (#5251)Markus Heiser
In 25.1.0 [2] an old bug has been fixed: "Docstring formatting does not apply to module docstrings" [3]. [1] https://github.com/psf/black/blob/main/CHANGES.md#2590 [2] https://github.com/psf/black/blob/main/CHANGES.md#2510 [3] https://github.com/psf/black/issues/4094 Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-09-25[fix] ProcessorMap: fix error log, not enough arguments for format string ↵Markus Heiser
(#5241) Issue was introduced by PR-5204 [1] reported issue:: logger.error("init method of engine %s failed (%s).", eng_proc.engine.name) TypeError: not enough arguments for format string [1] https://github.com/searxng/searxng/pull/5204 Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-09-25[build] /staticMarkus Heiser
2025-09-20[mod] py: remove uvloop (#5220)Ivan Gabaldon
We get some good stuff without uvloop, 13MB~ less of dependencies, 3 minutes of build time for armv7 saved, and we are one step closer to NT compatibility. Although it's true that theoretically the raw performance have worsened on network side (we only used uvloop for that), the latest cpython versions have been improving on asyncio performance.
2025-09-20[l10n] update translations from Weblate (#5216)github-actions[bot]
a0783e1a1 - 2025-09-16 - recreationalprogamer <recreationalprogamer@noreply.codeberg.org> 130f66498 - 2025-09-13 - artnay <artnay@noreply.codeberg.org> Co-authored-by: searxng-bot <searxng-bot@users.noreply.github.com>
2025-09-20[mod] demo engines: smaller improvementMarkus Heiser
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-09-20[mod] ADS engine: revision of the engine (Paper result)Markus Heiser
Revision of the Astrophysics Data System (ADS) engine / use of the result type Paper as well as other typifications. Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-09-20[mod] Z-Library engine: revision of the engine (Paper result)Markus Heiser
Revision of the engine / use of the result type Paper as well as other typifications. The engine has been placed on inactive because no service is currently available, or at least not known in the SearXNG community [1] [1] https://github.com/searxng/searxng/issues/3610 Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-09-20[mod] Springer Nature engine: revision of the engine (Paper result)Markus Heiser
Revision of the engine / use of the result type Paper as well as other typifications. Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-09-20[mod] Semantic Scholar engine: revision of the engine (Paper result)Markus Heiser
Revision of the engine / use of the result type Paper as well as other typifications. Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-09-20[mod] PubMed engine: revision of the engine (Paper result)Markus Heiser
Revision of the engine / use of the result type Paper as well as other typifications. Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-09-20[mod] Open Library engine: revision of the engine (Paper result)Markus Heiser
Revision of the engine / use of the result type Paper as well as other typifications. Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-09-20[mod] OpenAlex engine: revision of the engine (Paper result)Markus Heiser
Revision of the engine / use of the result type Paper as well as other typifications. Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-09-20[mod] Google Scholar engine: revision of the engine (Paper result)Markus Heiser
Revision of the engine / use of the result type Paper as well as other typifications. Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-09-20[mod] Crossref engine: revision of the engine (Paper result)Markus Heiser
Revision of the engine / use of the result type Paper as well as other typifications. Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-09-20[mod] CORE engine: revision of the engine (Paper result)Markus Heiser
Revision of the engine / use of the result type Paper as well as other typifications. Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-09-20[mod] Anna's Archive engine: revision of the engine (Paper result)Markus Heiser
Revision of the engine / use of the result type Paper as well as other typifications. Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-09-20[mod] arXiv engine: revision of the engine (Paper result)Markus Heiser
Revision of the engine / use of the result type Paper as well as other typifications. Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-09-20[build] /staticMarkus Heiser
2025-09-20[mod] typification of SearXNG: add new result type PaperMarkus Heiser
This patch adds a new result type: Paper - Python class: searx/result_types/paper.py - Jinja template: searx/templates/simple/result_templates/paper.html - CSS (less) client/simple/src/less/result_types/paper.less Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-09-20[fix] image proxy: object has no attribute 'status_code' (#5212)Léon Tiekötter
Commit 8f8343d [1] introduced a bug in the network logic of SearXNG where stream requests (such as the one from the image proxy) would fail because a wrapper was returned instead of a response object with the correct attribute. This is just a quick in place fix I implemented to get it working again. It would be better to implement corresponding logic to give stream requests the correct object. [1] https://github.com/searxng/searxng/pull/5204
2025-09-19[upd] web-client (simple): Bump the minor group in /client/simple with 3 ↵dependabot[bot]
updates (#5215) * [upd] web-client (simple): Bump the minor group Bumps the minor group in /client/simple with 3 updates: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node), [browserslist](https://github.com/browserslist/browserslist) and [sharp](https://github.com/lovell/sharp). Updates `@types/node` from 24.3.1 to 24.5.2 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) Updates `browserslist` from 4.25.4 to 4.26.2 - [Release notes](https://github.com/browserslist/browserslist/releases) - [Changelog](https://github.com/browserslist/browserslist/blob/main/CHANGELOG.md) - [Commits](https://github.com/browserslist/browserslist/compare/4.25.4...4.26.2) Updates `sharp` from 0.34.3 to 0.34.4 - [Release notes](https://github.com/lovell/sharp/releases) - [Commits](https://github.com/lovell/sharp/compare/v0.34.3...v0.34.4) --- updated-dependencies: - dependency-name: "@types/node" dependency-version: 24.5.2 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: minor - dependency-name: browserslist dependency-version: 4.26.2 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: minor - dependency-name: sharp dependency-version: 0.34.4 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: minor ... Signed-off-by: dependabot[bot] <support@github.com> * update rolldown-vite --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Ivan Gabaldon <igabaldon@inetol.net>
2025-09-18[mod] demo engines: smaller corrections and improvementsMarkus Heiser
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-09-18[mod] addition of various type hints / engine processorsMarkus Heiser
Continuation of #5147 .. typification of the engine processors. BTW: - removed obsolete engine property https_support - fixed & improved currency_convert - engine instances can now implement a engine.setup method [#5147] https://github.com/searxng/searxng/pull/5147 Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-09-12[upd] web-client (simple): Bump the minor group in /client/simple with 2 ↵dependabot[bot]
updates (#5202) * [upd] web-client (simple): Bump the minor group Bumps the minor group in /client/simple with 2 updates: [@biomejs/biome](https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome) and [stylelint](https://github.com/stylelint/stylelint). Updates `@biomejs/biome` from 2.2.2 to 2.2.4 - [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.2.4/packages/@biomejs/biome) Updates `stylelint` from 16.23.1 to 16.24.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.23.1...16.24.0) --- updated-dependencies: - dependency-name: "@biomejs/biome" dependency-version: 2.2.4 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: minor - dependency-name: stylelint dependency-version: 16.24.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: minor ... Signed-off-by: dependabot[bot] <support@github.com> * update biome schema * update rolldown --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Ivan Gabaldon <igabaldon@inetol.net>
2025-09-12[l10n] update translations from Weblate (#5203)github-actions[bot]
2ea8fc600 - 2025-09-11 - eudemo <eudemo@noreply.codeberg.org> 169797e8b - 2025-09-10 - alexgabi <alexgabi@noreply.codeberg.org> 822f66416 - 2025-09-11 - grumpyoldtechie <grumpyoldtechie@noreply.codeberg.org> daba8370d - 2025-09-07 - EmilyOrSomething <emilyorsomething@noreply.codeberg.org>
2025-09-10[feat] engines yacy & piped: enable individual configuration of URLs (#5195)Markus Heiser
With this change it is possible with individual engines (yacy & piped) to configure individual URLs. Related: - https://github.com/searxng/searxng/issues/4869#issuecomment-327335928 - https://github.com/searxng/searxng/pull/3472/files#r1595586019 - https://github.com/searxng/searxng/issues/3428#issuecomment-2102142530 Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>