summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2025-03-30[feat] engine: add bitchutenaughtymommy42069
2025-03-30[data] update searx.data - update_engine_descriptions.pyMarkus Heiser
2025-03-29[refactor] migrate plugins from "module" to class SXNGPluginMarkus Heiser
This patch brings two major changes: - ``Result.filter_urls(..)`` to pass a filter function for URL fields - The ``enabled_plugins:`` section in SearXNG's settings do no longer exists. To understand plugin development compile documentation: $ make docs.clean docs.live and read http://0.0.0.0:8000/dev/plugins/development.html There is no longer a distinction between built-in and external plugin, all plugins are registered via the settings in the ``plugins:`` section. In SearXNG, plugins can be registered via a fully qualified class name. A configuration (`PluginCfg`) can be transferred to the plugin, e.g. to activate it by default / *opt-in* or *opt-out* from user's point of view. built-in plugins ================ The built-in plugins are all located in the namespace `searx.plugins`. .. code:: yaml plugins: searx.plugins.calculator.SXNGPlugin: active: true searx.plugins.hash_plugin.SXNGPlugin: active: true searx.plugins.self_info.SXNGPlugin: active: true searx.plugins.tracker_url_remover.SXNGPlugin: active: true searx.plugins.unit_converter.SXNGPlugin: active: true searx.plugins.ahmia_filter.SXNGPlugin: active: true searx.plugins.hostnames.SXNGPlugin: active: true searx.plugins.oa_doi_rewrite.SXNGPlugin: active: false searx.plugins.tor_check.SXNGPlugin: active: false external plugins ================ SearXNG supports *external plugins* / there is no need to install one, SearXNG runs out of the box. - Only show green hosted results: https://github.com/return42/tgwf-searx-plugins/ To get a developer installation in a SearXNG developer environment: .. code:: sh $ git clone git@github.com:return42/tgwf-searx-plugins.git $ ./manage pyenv.cmd python -m \ pip install -e tgwf-searx-plugins To register the plugin in SearXNG add ``only_show_green_results.SXNGPlugin`` to the ``plugins:``: .. code:: yaml plugins: # ... only_show_green_results.SXNGPlugin: active: false Result.filter_urls(..) ====================== The ``Result.filter_urls(..)`` can be used to filter and/or modify URL fields. In the following example, the filter function ``my_url_filter``: .. code:: python def my_url_filter(result, field_name, url_src) -> bool | str: if "google" in url_src: return False # remove URL field from result if "facebook" in url_src: new_url = url_src.replace("facebook", "fb-dummy") return new_url # return modified URL return True # leave URL in field unchanged is applied to all URL fields in the :py:obj:`Plugin.on_result` hook: .. code:: python class MyUrlFilter(Plugin): ... def on_result(self, request, search, result) -> bool: result.filter_urls(my_url_filter) return True Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-03-29[data] update searx.data - update_ahmia_blacklist.pyreturn42
2025-03-29[data] update searx.data - update_firefox_version.pyreturn42
2025-03-29[data] update searx.data - update_wikidata_units.pyreturn42
2025-03-29[data] update searx.data - update_currencies.pyreturn42
2025-03-28[fix] presearch engine: Unexpected crash if duration not in videosAadniz
2025-03-28[l10n] update translations from Weblatesearxng-bot
9a0c9e142 - 2025-03-27 - return42 <return42@noreply.codeberg.org> 8e06fb05a - 2025-03-27 - return42 <return42@noreply.codeberg.org> 8e683ef69 - 2025-03-27 - return42 <return42@noreply.codeberg.org> 3588715a0 - 2025-03-27 - return42 <return42@noreply.codeberg.org> acf531db2 - 2025-03-27 - return42 <return42@noreply.codeberg.org> b4b09bdef - 2025-03-27 - return42 <return42@noreply.codeberg.org> 8bef57082 - 2025-03-27 - return42 <return42@noreply.codeberg.org> 239bae388 - 2025-03-27 - return42 <return42@noreply.codeberg.org> ca6a6fc4f - 2025-03-27 - return42 <return42@noreply.codeberg.org> 2a19a52db - 2025-03-27 - return42 <return42@noreply.codeberg.org> 7b217fad1 - 2025-03-24 - Haraldher <haraldher@noreply.codeberg.org> 649d15f55 - 2025-03-24 - Haraldher <haraldher@noreply.codeberg.org>
2025-03-28[upd] pypi: Bump selenium from 4.29.0 to 4.30.0dependabot[bot]
Bumps [selenium](https://github.com/SeleniumHQ/Selenium) from 4.29.0 to 4.30.0. - [Release notes](https://github.com/SeleniumHQ/Selenium/releases) - [Commits](https://github.com/SeleniumHQ/Selenium/compare/selenium-4.29.0...selenium-4.30.0) --- updated-dependencies: - dependency-name: selenium dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
2025-03-28[upd] pypi: Bump yamllint from 1.36.2 to 1.37.0dependabot[bot]
Bumps [yamllint](https://github.com/adrienverge/yamllint) from 1.36.2 to 1.37.0. - [Release notes](https://github.com/adrienverge/yamllint/releases) - [Changelog](https://github.com/adrienverge/yamllint/blob/master/CHANGELOG.rst) - [Commits](https://github.com/adrienverge/yamllint/compare/v1.36.2...v1.37.0) --- updated-dependencies: - dependency-name: yamllint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
2025-03-28[upd] web-client (simple): Bump stylelint in /client/simpledependabot[bot]
Bumps [stylelint](https://github.com/stylelint/stylelint) from 16.16.0 to 16.17.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.16.0...16.17.0) --- updated-dependencies: - dependency-name: stylelint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
2025-03-28[upd] web-client (simple): Bump eslint in /client/simpledependabot[bot]
Bumps [eslint](https://github.com/eslint/eslint) from 9.22.0 to 9.23.0. - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v9.22.0...v9.23.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
2025-03-27[build] /staticMarkus Heiser
2025-03-27[fix] image deatils view: vertical overflow in results.image-detail-openMarkus Heiser
overflow-y: scroll If the information on the image exceeds the visible area in the detail view, there must be a way to access this information via scroll. max-height: -17rem versus 7rem There are new fields in the lower area, so the height of the image (top) must be reduced Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-03-27[fix] make docs -> ERROR: Unknown target name: "google: max 50 pages".Markus Heiser
Fix the issues reported by sphinx build:: docstring of searx.engines.google.max_page:1: ERROR: Unknown target name: "google: max 50 pages". docstring of searx.engines.google_images.max_page:1: ERROR: Unknown target name: "google: max 50 pages". docstring of searx.engines.google_scholar.max_page:1: ERROR: Unknown target name: "google: max 50 pages". Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-03-27[fix] baidu engine: properly decoding HTML escape codesAadniz
2025-03-25[refactor] duration strings: move parsing logic to utils.pyBnyro
2025-03-25[fix] duckduckgo news: unescaped html sequences in descriptionBnyro
2025-03-25Bump vite from 6.2.2 to 6.2.3 in /client/simpledependabot[bot]
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 6.2.2 to 6.2.3. - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/v6.2.3/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v6.2.3/packages/vite) --- updated-dependencies: - dependency-name: vite dependency-type: direct:development ... Signed-off-by: dependabot[bot] <support@github.com>
2025-03-22[fix] make data.traits - partial revert of commit 30a8204Markus Heiser
The entries in the catalog of search languages are build up from the "Engine Traits" [1] and which entries are included in the catalog is controlled qby two threshold values [2]. If possible, the values should ensure that no languages or regions disappear from the catalog of search languages [3]. The threshold values should have been adjusted in commit 30a8204: - ``min_eng_per_region = 18`` - ``min_eng_per_lang = 22`` Because the threshold values were not adjusted, many entries were missing in the search language catalog. This bug has been fixed with this patch: the threshold values have been adjusted and the catalog of search languages has been completed again. [1] https://docs.searxng.org/dev/engines/enginelib.html#module-searx.enginelib.traits [2] https://github.com/searxng/searxng/blob/96a6e3dcb2283fa7ad9db4172a00582073a166d7/searxng_extra/update/update_engine_traits.py#L104-L105 [3] https://github.com/searxng/searxng/blob/master/searx/sxng_locales.py Closes: https://github.com/searxng/searxng/issues/4519 Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-03-21[upd] web-client (simple): Bump stylelint in /client/simpledependabot[bot]
Bumps [stylelint](https://github.com/stylelint/stylelint) from 16.15.0 to 16.16.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.15.0...16.16.0) --- updated-dependencies: - dependency-name: stylelint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
2025-03-21[fix] typo in doc-str: offical -> officialIkko Eltociear Ashimine
2025-03-21[fix] Results.url: don't normalize www.example.com to example.comMarkus Heiser
Hostname "www" in URL results can't be normalized to an empty string: - https://www.tu-darmstadt.de/ - https://tu-darmstadt.de/ Reported-By: @Bnyro <bnyro@tutanota.com> Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-03-21[l10n] update translations from Weblatesearxng-bot
efbb54229 - 2025-03-16 - gkkulik <gkkulik@noreply.codeberg.org> f76dddd02 - 2025-03-15 - cc5efd7b0 <cc5efd7b0@noreply.codeberg.org>
2025-03-21[upd] pypi: Bump yamllint from 1.36.0 to 1.36.2dependabot[bot]
Bumps [yamllint](https://github.com/adrienverge/yamllint) from 1.36.0 to 1.36.2. - [Release notes](https://github.com/adrienverge/yamllint/releases) - [Changelog](https://github.com/adrienverge/yamllint/blob/master/CHANGELOG.rst) - [Commits](https://github.com/adrienverge/yamllint/compare/v1.36.0...v1.36.2) --- updated-dependencies: - dependency-name: yamllint dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
2025-03-21[upd] pypi: Bump tomli from 2.0.2 to 2.2.1dependabot[bot]
Bumps [tomli](https://github.com/hukkin/tomli) from 2.0.2 to 2.2.1. - [Changelog](https://github.com/hukkin/tomli/blob/master/CHANGELOG.md) - [Commits](https://github.com/hukkin/tomli/compare/2.0.2...2.2.1) --- updated-dependencies: - dependency-name: tomli dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
2025-03-21[upd] pypi: Bump pylint from 3.3.4 to 3.3.6dependabot[bot]
Bumps [pylint](https://github.com/pylint-dev/pylint) from 3.3.4 to 3.3.6. - [Release notes](https://github.com/pylint-dev/pylint/releases) - [Commits](https://github.com/pylint-dev/pylint/compare/v3.3.4...v3.3.6) --- updated-dependencies: - dependency-name: pylint dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
2025-03-21[fix] duckduckgo: answer sometimes contains faulty (duplicated) urlBnyro
2025-03-20[fix] presearch videos: item description and duration are located in ↵Bnyro
metadata field
2025-03-20[fix] presearch engine: News and Videos formatted incorrectlyAadniz
2025-03-19[fix] engine: core.ac.uk implement API v3 / v2 is no longer supportedTan Yong Sheng
2025-03-18[fix] static.build: upgrade min. node version to 18.17Alexandre Flament
For sharp [1] dependency / this commit was cherry picked from PR #3157 [1] https://www.npmjs.com/package/sharp
2025-03-18[fix] duckduckgo: show proper source url of answersBnyro
2025-03-17[feat] engine: add selfh.st/icons for logos of common self-hosted programsBnyro
2025-03-16[engine] elasticsearch: add pagination supportBnyro
2025-03-16[feat] add docker healthcheck back (#4504)Brock Vojkovic
2025-03-15fixup! [fix] fix invalid escape error in Baidu Images & default config typoMarkus Heiser
2025-03-15[fix] fix invalid escape error in Baidu Images & default config typoZhijie He
2025-03-15[feat]: engines add images & kaifa from baidu.comZhijie He
2025-03-15container: add default support for IPv6 (#4448)Ivan Gabaldon
* Initial update * update docs and test files
2025-03-15[build] /staticMarkus Heiser
2025-03-15[fix] plugins: bugfix of tor_check and unit_converterMarkus Heiser
Closes: https://github.com/searxng/searxng/issues/4461 Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-03-15[mod] migrate all key-value.html templates to KeyValue typeMarkus Heiser
The engines now all use KeyValue results and return the results in a EngineResults object. The sqlite engine can return MainResult results in addition to KeyValue results (based on engine's config in settings.yml), Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-03-15[mod] typification of SearXNG: add new result type KeyValueMarkus Heiser
This patch adds a new result type: KeyValue - Python class: searx/result_types/keyvalue.py - Jinja template: searx/templates/simple/result_templates/keyvalue.html - CSS (less) client/simple/src/less/result_types/keyvalue.less Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-03-15[refactor] typification of SearXNG (MainResult) / result items (part 2)Markus Heiser
The class ReslutContainer has been revised, it can now handle the typed Result items of classes: - MainResult - LegacyResult (a dict wrapper for backward compatibility) Due to the now complete typing of theses three clases, instead of the *getitem* accesses, the fields can now be accessed directly via attributes (which is also supported by the IDE). Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-03-15[build] /staticMarkus Heiser
2025-03-15[fix] make static.build.commit: add client/simple/package-lock.jsonMarkus Heiser
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-03-15[web-client] simple theme: dynamic vertical heightbearz314
On mobile devices with browser chrome (UI) that recedes on scroll, 'vh' includes the height covered by chrome, which 'dvh' does not. By using 'dvh' the footer is immediately visible on the homepage without scrollbar on mobile devices.
2025-03-15[upd] pypi: Bump aiounittest from 1.4.3 to 1.5.0dependabot[bot]
Bumps [aiounittest](https://github.com/kwarunek/aiounittest) from 1.4.3 to 1.5.0. - [Release notes](https://github.com/kwarunek/aiounittest/releases) - [Commits](https://github.com/kwarunek/aiounittest/compare/1.4.3...1.5.0) --- updated-dependencies: - dependency-name: aiounittest dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>