summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2025-03-30[feat] engines: add Quark engineZhijie He
Co-authored-by: Bnyro <bnyro@tutanota.com>
2025-03-30[feat] engines: add Niconico videos engineZhijie He
Co-authored-by: Bnyro <bnyro@tutanota.com>
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>