Commit graph

8069 commits

Author SHA1 Message Date
Grant Lanham
9a4fa7cc4f Update mullvad_leta.py to account for img_elem
A recent update from Mullvad Leta introduced the img_elem. This update
broke the existing logic. Now, by checking the length of the dom_result
to see if it was included in the return results, we can handle the logic
accordingly.
2024-07-15 06:58:39 +02:00
Markus Heiser
2039060b64 [mod] revision of the settings_loader
The intention of this PR is to modernize the settings_loader implementations.
The concept is old (remember, this is partly from 2014), back then we only had
one config file, meanwhile we have had a folder with config files for a very
long time.  Callers can now load a YAML configuration from this folder as
follows ::

    settings_loader.get_yaml_cfg('my-config.yml')

- BTW this is a fix of #3557.

- Further the `existing_filename_or_none` construct dates back to times when
  there was not yet a `pathlib.Path` in all Python versions we supported in the
  past.

- Typehints have been added wherever appropriate

At the same time, this patch should also be downward compatible and not
introduce a new environment variable. The localization of the folder with the
configurations is further based on:

    SEARXNG_SETTINGS_PATH (wich defaults to /etc/searxng/settings.yml)

Which means, the default config folder is `/etc/searxng/`.

ATTENTION: intended functional changes!

 If SEARXNG_SETTINGS_PATH was set and pointed to a not existing file, the
 previous implementation silently loaded the default configuration.  This
 behavior has been changed: if the file or folder does not exist, an
 EnvironmentError exception will be thrown in future.

Closes: https://github.com/searxng/searxng/issues/3557
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2024-07-14 18:10:06 +02:00
Bnyro
e4da22ee51 [feat] engine: implementation of alpine linux packages
Co-authored-by: Markus Heiser <markus.heiser@darmarit.de>
2024-07-14 17:57:58 +02:00
Grant Lanham
e56f4b315f [mod] UX: flush flag icon to right in language select option values
If the flag icon is first, it prevents easily searching the select list on the
keyboard.  By moving the icon fully to the right, this will enable a user to
search the select list.

Closes: https://github.com/searxng/searxng/issues/3645
2024-07-14 16:39:50 +02:00
Alexandre Flament
37d0438f25 Dockerfile: use Alpine 3.20 & Python 3.12 2024-07-14 16:38:30 +02:00
Allen
5468d97d39 [mod] remove py 3.6 leftovers 2024-07-13 17:20:50 +02:00
Markus Heiser
37ec668ae1 [build] /static 2024-07-13 17:19:59 +02:00
Markus Heiser
d0bad45d21 [fix] simple theme: in URLs don't truncate descenders (typograhy, FFox)
HINT: this is a workaround to fix a rendering bug in FFox-Desktop [3]

Descenders [1] in the URL are truncated, caused by the `overflow: hidden;`
because part of link overflow the flex box [2].

[1] https://en.wikipedia.org/wiki/Descender
[2] https://github.com/searxng/searxng/issues/3550
[3] https://github.com/searxng/searxng/pull/3592#issuecomment-2186313121

Closes: https://github.com/searxng/searxng/issues/3550
Suggested-by: @coxde
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2024-07-13 17:19:59 +02:00
searxng-bot
d5487a157d [l10n] update translations from Weblate
cecd9182a - 2024-07-11 - ds451 <ds451@users.noreply.translate.codeberg.org>
8e9bf64ae - 2024-07-10 - wazhanudin <wazhanudin@users.noreply.translate.codeberg.org>
82e209f2d - 2024-07-08 - notlmutsaers <notlmutsaers@users.noreply.translate.codeberg.org>
428204a2f - 2024-07-08 - alexgabi <alexgabi@users.noreply.translate.codeberg.org>
4dd16510d - 2024-07-08 - notlmutsaers <notlmutsaers@users.noreply.translate.codeberg.org>
fb5015db9 - 2024-07-08 - notlmutsaers <notlmutsaers@users.noreply.translate.codeberg.org>
686800ded - 2024-07-08 - louispires <louispires@users.noreply.translate.codeberg.org>
7fc33af6d - 2024-07-05 - wags07 <wags07@users.noreply.translate.codeberg.org>
cbab31eae - 2024-07-06 - jonkke9 <jonkke9@users.noreply.translate.codeberg.org>
2024-07-13 17:18:16 +02:00
Markus Heiser
a3500c1efc [fix] tear down TEST_ENGINES after TestBang is proceeded
Engines are loaded into global name `searx.engines.engines` other applications
such as statistics or the histogram use this global variable to search for
values in their own memories, which can lead to key errors as described in

- https://github.com/searxng/searxng/issues/2988

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
Closes: https://github.com/searxng/searxng/issues/2988
2024-07-13 17:13:41 +02:00
Grant Lanham
ef103ba80a Implement google/brave switch in Mullvad Leta
cleanup

Import annontations
2024-07-07 08:08:11 +02:00
dependabot[bot]
c835f920ed [upd] pypi: Bump certifi from 2024.6.2 to 2024.7.4
Bumps [certifi](https://github.com/certifi/python-certifi) from 2024.6.2 to 2024.7.4.
- [Commits](https://github.com/certifi/python-certifi/compare/2024.06.02...2024.07.04)

---
updated-dependencies:
- dependency-name: certifi
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-05 10:44:19 +02:00
dependabot[bot]
779565497c [upd] pypi: Bump pylint from 3.2.3 to 3.2.5
Bumps [pylint](https://github.com/pylint-dev/pylint) from 3.2.3 to 3.2.5.
- [Release notes](https://github.com/pylint-dev/pylint/releases)
- [Commits](https://github.com/pylint-dev/pylint/compare/v3.2.3...v3.2.5)

---
updated-dependencies:
- dependency-name: pylint
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-05 10:24:18 +02:00
searxng-bot
67008226fc [l10n] update translations from Weblate
1f7de30a2 - 2024-07-04 - Jeex <Jeex@users.noreply.translate.codeberg.org>
5d34f39a9 - 2024-07-04 - return42 <return42@users.noreply.translate.codeberg.org>
930a817f1 - 2024-07-04 - return42 <return42@users.noreply.translate.codeberg.org>
53936f24d - 2024-07-03 - return42 <return42@users.noreply.translate.codeberg.org>
3fcf83c92 - 2024-07-02 - rodgui <rodgui@users.noreply.translate.codeberg.org>
19b2f9ac4 - 2024-07-03 - seonghobae <seonghobae@users.noreply.translate.codeberg.org>
07ef05dbe - 2024-06-30 - return42 <return42@users.noreply.translate.codeberg.org>
23f2ef2cf - 2024-06-29 - geekom13 <geekom13@users.noreply.translate.codeberg.org>
2024-07-05 09:30:13 +02:00
Bnyro
4eaa0dd275 [fix] gentoo: use mediawiki engine 2024-07-03 10:24:03 +02:00
Allen
54be8f09a6 [fix] html.unescape stract autocomplete suggestions 2024-07-02 18:16:46 +02:00
Thomas Renard
39aaac40d6 [mod] libretranslate: add direct link to translation (engine) 2024-06-30 16:18:33 +02:00
return42
adaec68728 [data] update searx.data - update_wikidata_units.py 2024-06-29 07:20:59 +02:00
return42
47ffa711d2 [data] update searx.data - update_ahmia_blacklist.py 2024-06-29 07:10:59 +02:00
return42
c7d1f4278d [data] update searx.data - update_firefox_version.py 2024-06-29 07:09:16 +02:00
return42
985c8b0bce [data] update searx.data - update_engine_traits.py 2024-06-29 07:08:55 +02:00
return42
7200640055 [data] update searx.data - update_engine_descriptions.py 2024-06-29 07:07:32 +02:00
searxng-bot
46b9273352 [l10n] update translations from Weblate
4fc3ba360 - 2024-06-27 - Kita Ikuyo <searinminecraft@courvix.com>
15a6fae2f - 2024-06-26 - artnay <artnay@users.noreply.translate.codeberg.org>
2cb08843e - 2024-06-27 - MonsoonRain <MonsoonRain@users.noreply.translate.codeberg.org>
794c9db02 - 2024-06-25 - return42 <return42@users.noreply.translate.codeberg.org>
8edf87498 - 2024-06-25 - Linerly <Linerly@users.noreply.translate.codeberg.org>
bc97997b5 - 2024-06-26 - LIGMATV <LIGMATV@users.noreply.translate.codeberg.org>
d8620edb1 - 2024-06-24 - ahmetax <ahmetax@users.noreply.translate.codeberg.org>
7d8d6580e - 2024-06-25 - gvlx <gvlx@users.noreply.translate.codeberg.org>
57f8e9bde - 2024-06-25 - return42 <return42@users.noreply.translate.codeberg.org>
7364acbe4 - 2024-06-25 - eddywidjaja <eddywidjaja@users.noreply.translate.codeberg.org>
9f6ddc2b5 - 2024-06-24 - return42 <return42@users.noreply.translate.codeberg.org>
a64f2e708 - 2024-06-21 - PeterDaveHello <PeterDaveHello@users.noreply.translate.codeberg.org>
cc195d7ad - 2024-06-21 - nish_j <nish_j@users.noreply.translate.codeberg.org>
87d2e16d5 - 2024-06-22 - tentsbet <tentsbet@users.noreply.translate.codeberg.org>
2c73400eb - 2024-06-22 - return42 <return42@users.noreply.translate.codeberg.org>
a467cf8af - 2024-06-21 - Fjuro <fjuro@alius.cz>
2024-06-28 09:46:44 +02:00
dependabot[bot]
6801f1a6cb [upd] pypi: Bump redis from 5.0.6 to 5.0.7
Bumps [redis](https://github.com/redis/redis-py) from 5.0.6 to 5.0.7.
- [Release notes](https://github.com/redis/redis-py/releases)
- [Changelog](https://github.com/redis/redis-py/blob/master/CHANGES)
- [Commits](https://github.com/redis/redis-py/compare/v5.0.6...v5.0.7)

---
updated-dependencies:
- dependency-name: redis
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-28 09:46:20 +02:00
Markus Heiser
d80fcbc635 [fix] unit test_xpath.py: name 'logger' is not defined
Depending on the order in which the unit tests are executed, the python modules
of the engines are initialized (monkey patched) or not. As the order of the
tests is not static, random errors may occur.

To avaoid random `NameError: name 'logger' is not defined` in the unit tests of
the xpath engine, a logger is monkey patched into the xpath py-module.

```
make test.unit
TEST      tests/unit
......EE...................
======================================================================
ERROR: test_response (tests.unit.engines.test_xpath.TestXpathEngine.test_response)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "./tests/unit/engines/test_xpath.py", line 60, in test_response
    self.assertEqual(xpath.response(response), [])
                     ^^^^^^^^^^^^^^^^^^^^^^^^
  File "./searx/engines/xpath.py", line 309, in response
    logger.debug("found %s results", len(results))
    ^^^^^^
NameError: name 'logger' is not defined

======================================================================
ERROR: test_response_results_xpath (tests.unit.engines.test_xpath.TestXpathEngine.test_response_results_xpath)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "./tests/unit/engines/test_xpath.py", line 102, in test_response_results_xpath
    self.assertEqual(xpath.response(response), [])
                     ^^^^^^^^^^^^^^^^^^^^^^^^
  File "./searx/engines/xpath.py", line 309, in response
    logger.debug("found %s results", len(results))
    ^^^^^^
NameError: name 'logger' is not defined
```

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2024-06-28 08:54:19 +02:00
Markus Heiser
a5f8e0899c [fix] disable Reddit engine by default
Reddit is enabled by default .. many bot request will go through Reddit .. we
should disable Reddit by default to cool down the IP [1].

[1] https://github.com/searxng/searxng/issues/3444#issuecomment-2180415057

Closes: https://github.com/searxng/searxng/issues/3444
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2024-06-28 08:48:52 +02:00
Christian Clauss
837f3bcd10 GitHub Actions: Upgrade data-update.yml infrastructure 2024-06-25 15:26:05 +02:00
Markus Heiser
1449824165 [data] update searx.data - update_engine_traits.py
$ make data.traits

Last GH action has been failed [1], the bugfixes from

- https://github.com/searxng/searxng/pull/3611
- https://github.com/searxng/searxng/pull/3612

were necessary to update the data.

[1] https://github.com/searxng/searxng/actions/runs/9278028691/job/25528337485

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2024-06-25 15:20:51 +02:00
Markus Heiser
0f9926b89a [fix] brave fetch_traits: layout of the settings page has changed
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2024-06-25 15:08:18 +02:00
Markus Heiser
39ffec87b7 [fix] engine zlibrary: handle seized domain
The domains of zlibrary instances are known to be seized from time to time.
This leads to problems when, for example, the automated tasks try to update the
engine traits (aka fetch_traits). The search function should also generate a
suitable error message (currently either SSL errors or empty result lists are
returned). [1]

[1] https://github.com/searxng/searxng/issues/3610
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2024-06-25 14:40:19 +02:00
Markus Heiser
b8fa4d6195 [fix] bing news results return invalid images
Closes: https://github.com/searxng/searxng/issues/3502
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2024-06-25 11:12:41 +02:00
Grant Lanham
9a9ca307fe [fix] implement tests and remove usage of gen_useragent in engines 2024-06-23 11:51:41 +02:00
Richard Lyons
1f908a6222 [fix] engine unit tests.
Enables unit tests in the engines directory by adding __init__.py, and fixups
for the enabled tests.
2024-06-23 09:24:05 +02:00
dependabot[bot]
f6f622f7e5 [upd] pypi: Bump selenium from 4.21.0 to 4.22.0
Bumps [selenium](https://github.com/SeleniumHQ/Selenium) from 4.21.0 to 4.22.0.
- [Release notes](https://github.com/SeleniumHQ/Selenium/releases)
- [Commits](https://github.com/SeleniumHQ/Selenium/compare/selenium-4.21.0...selenium-4.22.0)

---
updated-dependencies:
- dependency-name: selenium
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-21 12:28:32 +02:00
searxng-bot
7f72c48b59 [l10n] update translations from Weblate
3e3c194e8 - 2024-06-20 - Vulcain <Vulcain@users.noreply.translate.codeberg.org>
0ffab2bcb - 2024-06-19 - LunarCat93 <LunarCat93@users.noreply.translate.codeberg.org>
36809a19a - 2024-06-19 - return42 <return42@users.noreply.translate.codeberg.org>
a97aff39a - 2024-06-19 - MonsoonRain <MonsoonRain@users.noreply.translate.codeberg.org>
5d7cbca43 - 2024-06-17 - SomeTr <SomeTr@users.noreply.translate.codeberg.org>
ada44ff85 - 2024-06-17 - Xvnov <Xvnov@users.noreply.translate.codeberg.org>
2f398eb58 - 2024-06-18 - tiziodcaio <tiziodcaio@users.noreply.translate.codeberg.org>
11fde5415 - 2024-06-18 - ghose <ghose@users.noreply.translate.codeberg.org>
7de1d0c22 - 2024-06-18 - return42 <return42@users.noreply.translate.codeberg.org>
eeb9500b8 - 2024-06-18 - return42 <return42@users.noreply.translate.codeberg.org>
2024-06-21 12:16:35 +02:00
Richard Lyons
f195d98bfb Fix search_url building. 2024-06-20 06:30:00 +02:00
Markus Heiser
acf3f109b2 [doc] hostname plugin: improve online documentation
The data types (list & map) should be made clearer, as these sometimes lead to
misunderstandings.

[1] https://github.com/searxng/searxng/issues/3558#issuecomment-2175058128

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2024-06-18 12:06:06 +02:00
Sandro Jäckel
accc1c1032 [fix] setup.py - packaging for 'answerers' to build a valid package
Fix installing answerers when installing SearXNG through a wheel [1].  These
files have been missed in commit d72fa99b.

Here is what have been tested:

    $ make clean py.build
    ...
    $ python -m venv test123
    $ . ./test123/bin/activate
    (test123) $ pip install dist/searxng-2024*-py3-none-any.whl
    (test123) $ SEARXNG_DEBUG=1 searxng-run

[1] https://github.com/searxng/searxng/pull/3045#issuecomment-1961767861
2024-06-17 15:07:07 +02:00
Jeff Alyanak
efd69c4ca9 [feat] plugin Self Information: improve keyword matching
This change does the following things:

- the `ip` keyword is now case-insensitive
- if the query includes `my ip` it will now also match

In order to avoid too many false matches, the `ip` keyword alone matches only if
it's the _only_ word, but the inclusion of `my` loosens that to be inclusive of
users type a phrase (eg, "what is my ip", "tell me my ip", "my IP address",
etc).

Better answer context

Previously this plugin simply dumped your IP or user-agent string as an answer.
This tiny change just adds some text to contextualize those answers (eg, "Your
IP is: 1.2.3.4" instead of just "1.2.3.4").
2024-06-17 14:12:37 +02:00
Allen
13eec44b65 [fix] \!goi irrelevant results AND display more results 2024-06-16 16:45:03 +02:00
Bnyro
e9f8412a6e [perf] torrents.html, files.html: don't parse and re-format filesize 2024-06-15 15:42:29 +02:00
dependabot[bot]
16ce5612dd [upd] pypi: Bump redis from 5.0.5 to 5.0.6
Bumps [redis](https://github.com/redis/redis-py) from 5.0.5 to 5.0.6.
- [Release notes](https://github.com/redis/redis-py/releases)
- [Changelog](https://github.com/redis/redis-py/blob/master/CHANGES)
- [Commits](https://github.com/redis/redis-py/compare/v5.0.5...v5.0.6)

---
updated-dependencies:
- dependency-name: redis
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-15 11:36:57 +02:00
Bnyro
df15c21b35 [feat] mozhi: fix crash, support synonyms and definition 2024-06-15 11:33:09 +02:00
Bnyro
1fe13d0ba4 [refactor] duckduckgo: use extr helper function in get_vqd 2024-06-15 11:24:05 +02:00
holysoles
7be468d213 [feat] docker: add env vars for common public instance settings 2024-06-14 14:58:02 +02:00
searxng-bot
63b7d558b6 [l10n] update translations from Weblate
351fcdf8d - 2024-06-14 - return42 <return42@users.noreply.translate.codeberg.org>
4ab6400d8 - 2024-06-13 - Xvnov <Xvnov@users.noreply.translate.codeberg.org>
8f1bb9a0c - 2024-06-14 - return42 <return42@users.noreply.translate.codeberg.org>
fa147559d - 2024-06-12 - MVDW-Java <MVDW-Java@users.noreply.translate.codeberg.org>
3beab11c3 - 2024-06-11 - return42 <return42@users.noreply.translate.codeberg.org>
52f450636 - 2024-06-11 - mukmckenzie <mukmckenzie@users.noreply.translate.codeberg.org>
c61f2cb8b - 2024-06-11 - tentsbet <tentsbet@users.noreply.translate.codeberg.org>
7c74be3d3 - 2024-06-10 - nebras <nebras@users.noreply.translate.codeberg.org>
b5aace1de - 2024-06-07 - SomeTr <SomeTr@users.noreply.translate.codeberg.org>
fc187ae6e - 2024-06-07 - return42 <return42@users.noreply.translate.codeberg.org>
cf3a8d3f5 - 2024-06-07 - return42 <return42@users.noreply.translate.codeberg.org>
bfc316b9d - 2024-06-07 - diodio <diodio@users.noreply.translate.codeberg.org>
a27e1586d - 2024-06-07 - return42 <return42@users.noreply.translate.codeberg.org>
6bd0bf14d - 2024-06-07 - return42 <return42@users.noreply.translate.codeberg.org>
9b2b3aa36 - 2024-06-07 - return42 <return42@users.noreply.translate.codeberg.org>
41716759a - 2024-06-07 - return42 <return42@users.noreply.translate.codeberg.org>
08c9fef67 - 2024-06-07 - return42 <return42@users.noreply.translate.codeberg.org>
dd2555fe2 - 2024-06-07 - return42 <return42@users.noreply.translate.codeberg.org>
e69dc5dc6 - 2024-06-07 - ganoci <ganoci@users.noreply.translate.codeberg.org>
a3503130d - 2024-06-08 - ghose <ghose@users.noreply.translate.codeberg.org>
a2a2f0725 - 2024-06-07 - return42 <return42@users.noreply.translate.codeberg.org>
35b9d1be7 - 2024-06-07 - return42 <return42@users.noreply.translate.codeberg.org>
d53560df2 - 2024-06-07 - return42 <return42@users.noreply.translate.codeberg.org>
58c3c041f - 2024-06-07 - return42 <return42@users.noreply.translate.codeberg.org>
d7847aa9d - 2024-06-07 - EifionLlwyd <EifionLlwyd@users.noreply.translate.codeberg.org>
3a114bf44 - 2024-06-07 - Fjuro <fjuro@alius.cz>
1f2fc0ff2 - 2024-06-07 - return42 <return42@users.noreply.translate.codeberg.org>
17a78625f - 2024-06-07 - return42 <return42@users.noreply.translate.codeberg.org>
6e8bdfd99 - 2024-06-07 - diodio <diodio@users.noreply.translate.codeberg.org>
2024-06-14 09:27:29 +02:00
Ember
cb945276b6 Change 'his/her' to 'them' 2024-06-13 10:23:01 +02:00
Bnyro
f5eb56b63f [refactor] hostnames plugin: add fallback for old hostname_replace plugin
Co-authored-by: Markus Heiser <markus.heiser@darmarit.de>
2024-06-07 14:42:52 +02:00
Markus Heiser
845a0b678d [doc] add 'hostnames' plugin to the online documentation
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2024-06-07 14:42:52 +02:00
Bnyro
aa59bfbf60 [feat] hostname replace plugin: support for external list file 2024-06-07 14:42:52 +02:00