summaryrefslogtreecommitdiff
path: root/searx
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-27[build] /staticMarkus Heiser
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-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[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[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] 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-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-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[l10n] update translations from Weblatesearxng-bot
efa1f5656 - 2025-03-13 - return42 <return42@noreply.codeberg.org> 5e0a76d3c - 2025-03-13 - return42 <return42@noreply.codeberg.org>
2025-03-08[fix] presearch engine: domain sometimes included in beginning of titlesAadniz
2025-03-08[feat] add bilibili support to get get_embeded_stream_urlAustin-Olacsi
2025-03-07[fix] presearch engine: Title showing <em> html codeAadniz
2025-03-07[fix] set language for engines from chinese market (no i18n index nor UI)Markus Heiser
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-03-07[fix] engine qwant: add tgp and llm arguments to avoid CAPTCHALoris
2025-03-07[doc] add missing docs for the search.max_page settingMarkus Heiser
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-03-07[l10n] update translations from Weblatesearxng-bot
a516df5a2 - 2025-03-06 - DanielBoone <danielboone@noreply.codeberg.org> 2763a5d77 - 2025-03-06 - return42 <return42@noreply.codeberg.org> 4a3a81c9b - 2025-03-06 - marc-lopez <marc-lopez@noreply.codeberg.org> d2bd5b048 - 2025-03-05 - MonsoonFire <monsoonfire@noreply.codeberg.org> 752b558d6 - 2025-03-05 - buiducnhat <buiducnhat@noreply.codeberg.org> 0ff2ccf43 - 2025-03-04 - marc-lopez <marc-lopez@noreply.codeberg.org> 462a0625d - 2025-03-03 - Juno Takano <jutty@noreply.codeberg.org> 5cb41045c - 2025-03-02 - gkkulik <gkkulik@noreply.codeberg.org> e599c3942 - 2025-03-02 - gkkulik <gkkulik@noreply.codeberg.org> d44128eda - 2025-03-02 - gkkulik <gkkulik@noreply.codeberg.org>
2025-03-07[feat] engines: add baidu (general)Bubu
2025-03-06[feat] engines: add www.acfun.cnZhijie He
2025-03-06[feat] engines: add www.iqiyi.comZhijie He
Co-authored-by: Bnyro <bnyro@tutanota.com>
2025-03-06[feat] engines: add www.chinaso.comZhijie He
Co-authored-by: Bnyro <bnyro@tutanota.com>
2025-03-06[fix] engines: Google-Web & Google-Video (random arc_id)Markus Heiser
Both enghines have been reported ``TooManyRequests``, additionaly Google-Videos thumbnails needed a review. Based on the research from @unixfox [1] this patch generates every hour a new random ``arc_id``. [1] https://github.com/searxng/searxng/issues/4435#issuecomment-2703279522 Closes: - https://github.com/searxng/searxng/issues/4435 - https://github.com/searxng/searxng/issues/4431 Related: - https://github.com/searxng/searxng/discussions/4434 - https://github.com/searxng/searxng/discussions/4429 Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-03-02[fix] brave engine: add sec-fetch headers and source=web argumentMarkus Heiser
The intention is to reduce the "TooManyRequestsException". Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-03-02[chore] add `timediff` field for sogou_videosZhijie He
Co-authored-by: Bnyro <bnyro@tutanota.com>
2025-03-02[feat] add Sogou WeChat article search supportZhijie He