Commit Graph

4312 Commits (master)

Author SHA1 Message Date
dependabot[bot] 3cade9a7eb
Bump svgo from 2.8.0 to 3.0.0 in /searx/static/themes/simple
Bumps [svgo](https://github.com/svg/svgo) from 2.8.0 to 3.0.0.
- [Release notes](https://github.com/svg/svgo/releases)
- [Changelog](https://github.com/svg/svgo/blob/main/CHANGELOG-old.md)
- [Commits](https://github.com/svg/svgo/compare/v2.8.0...v3.0.0)

---
updated-dependencies:
- dependency-name: svgo
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2 years ago
searxng-bot 18ba8628dd [translations] update from Weblate
c7fddee3 - 2022-10-15 - Linerly <linerly@protonmail.com>
f559a626 - 2022-10-17 - Markus Heiser <markus.heiser@darmarit.de>
fe7af662 - 2022-10-17 - Mateusz Bączek <mateusz.baczek1998@gmail.com>
8a7c3da9 - 2022-10-16 - Peter Martin <weblate@pe7er.com>
a84dad5c - 2022-10-16 - Franco Longo <longofrancoale@gmail.com>
9ee1ac8b - 2022-10-20 - prljav <marin.ruskica@gmail.com>
b91bedc4 - 2022-10-16 - Peter Martin <weblate@pe7er.com>
dff99ef4 - 2022-10-16 - Peter Martin <weblate@pe7er.com>
cd639f6c - 2022-10-17 - Markus Heiser <markus.heiser@darmarit.de>
49507a60 - 2022-10-14 - Markus Heiser <markus.heiser@darmarit.de>
ad305582 - 2022-10-16 - Peter Martin <weblate@pe7er.com>
19e97075 - 2022-10-17 - Markus Heiser <markus.heiser@darmarit.de>
97581f70 - 2022-10-14 - Markus Heiser <markus.heiser@darmarit.de>
fcd52cea - 2022-10-14 - Alexandre Flament <alex@al-f.net>
2 years ago
Vasilis Gerakaris 947b62c9d5
Fix floating point format in DDG weather humidity
Fixes #1836
2 years ago
Alexandre FLAMENT 035bc507ec [fix] startpage engine 2 years ago
Alexandre Flament 32e8c2cf09 searx.network: add "verify" option to the networks
Each network can define a verify option:
* false to disable certificate verification
* a path to existing certificate.

SearXNG uses SSL_CERT_FILE and SSL_CERT_DIR when they are defined
see https://www.python-httpx.org/environment_variables/#ssl_cert_file
2 years ago
searxng-bot 6e86f33342 [translations] update from Weblate
eee3d5e2 - 2022-10-12 - Markus Heiser <markus.heiser@darmarit.de>
c4eb9818 - 2022-10-11 - Markus Heiser <markus.heiser@darmarit.de>
27423f5b - 2022-10-12 - Markus Heiser <markus.heiser@darmarit.de>
9e8b7f86 - 2022-10-11 - No4vick <MineBor1@yandex.ru>
1203aa6a - 2022-10-11 - KEINOS <github@keinos.com>
22c78af5 - 2022-10-12 - Markus Heiser <markus.heiser@darmarit.de>
6a4776f8 - 2022-10-11 - Markus Heiser <markus.heiser@darmarit.de>
c00bdc7d - 2022-10-11 - Markus Heiser <markus.heiser@darmarit.de>
e5a39537 - 2022-10-09 - Kayra Uylar <k.uylar@outlook.com>
e3fad460 - 2022-10-11 - Markus Heiser <markus.heiser@darmarit.de>
da5f0bc3 - 2022-10-11 - Surepusofu Arutemu <crexlight@gmail.com>
5704a98b - 2022-10-11 - Markus Heiser <markus.heiser@darmarit.de>
f3ef3ebb - 2022-10-11 - Markus Heiser <markus.heiser@darmarit.de>
620636c1 - 2022-10-11 - Markus Heiser <markus.heiser@darmarit.de>
767b3bb2 - 2022-10-08 - KEINOS <github@keinos.com>
60d38c87 - 2022-10-11 - Markus Heiser <markus.heiser@darmarit.de>
2 years ago
Markus Heiser 23d797ee6f Update searx.data - update_osm_keys_tags.py
Patch was generated by::

  ./manage pyenv.cmd searxng_extra/update/update_osm_keys_tags.py

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2 years ago
searxng-bot 325eadfd04 [translations] update from Weblate
70909b19 - 2022-10-04 - Yan Lyra <yanlyra3@gmail.com>
acf1f0aa - 2022-10-03 - George Kashkosh <kash.george@gmail.com>
94ce447f - 2022-10-01 - Zaid Aiman <zaidaiman@gmail.com>
59959050 - 2022-09-30 - tjvfxtiwdr <tjvfxtiwdr@daimashili.com>
e27a5c79 - 2022-09-30 - a <a@daimashili.com>
2c05470f - 2022-09-30 - tjvfxtiwdr <tjvfxtiwdr@daimashili.com>
53644516 - 2022-10-01 - random <thrizem+wnd43@gmail.com>
2 years ago
Mohamed Elashri 8d5653e60d
Merge branch 'searxng:master' into master 2 years ago
searxng-bot 4fea4acea1 [translations] update from Weblate
fbac3535 - 2022-09-28 - Markus Heiser <markus.heiser@darmarit.de>
cf5d71b7 - 2022-09-28 - Markus Heiser <markus.heiser@darmarit.de>
6dc351bd - 2022-09-28 - Markus Heiser <markus.heiser@darmarit.de>
42daf1f8 - 2022-09-28 - Markus Heiser <markus.heiser@darmarit.de>
f5fb629f - 2022-09-28 - Markus Heiser <markus.heiser@darmarit.de>
4e5f2c79 - 2022-09-28 - Markus Heiser <markus.heiser@darmarit.de>
5131835f - 2022-09-28 - Robert Bridda <briddarobert@icloud.com>
02055902 - 2022-09-28 - Markus Heiser <markus.heiser@darmarit.de>
716bd1d7 - 2022-09-28 - Markus Heiser <markus.heiser@darmarit.de>
768c8e43 - 2022-09-28 - Markus Heiser <markus.heiser@darmarit.de>
e8ad24c1 - 2022-09-28 - Markus Heiser <markus.heiser@darmarit.de>
a88c5f91 - 2022-09-28 - Markus Heiser <markus.heiser@darmarit.de>
fc70c33a - 2022-09-28 - Markus Heiser <markus.heiser@darmarit.de>
2 years ago
Alexandre Flament a7d693231c
Merge pull request #1819 from searxng/update_data_update_currencies.py
Update searx.data - update_currencies.py
2 years ago
Alexandre Flament f3d25f9cef
Merge pull request #1821 from searxng/update_data_update_engine_descriptions.py
Update searx.data - update_engine_descriptions.py
2 years ago
Alexandre Flament 5060732486
Merge pull request #1818 from searxng/update_data_update_ahmia_blacklist.py
Update searx.data - update_ahmia_blacklist.py
2 years ago
Alexandre Flament 520a873ab4
Merge pull request #1820 from searxng/update_data_update_wikidata_units.py
Update searx.data - update_wikidata_units.py
2 years ago
dalf 9cb792c0d6 Update searx.data - update_engine_descriptions.py 2 years ago
dalf 2d429ebd75 Update searx.data - update_wikidata_units.py 2 years ago
dalf 8fc3940448 Update searx.data - update_currencies.py 2 years ago
dalf b7f4a3a207 Update searx.data - update_ahmia_blacklist.py 2 years ago
dalf 3153f0a795 Update searx.data - update_firefox_version.py 2 years ago
Alexandre Flament a3148e5115
Merge pull request #1814 from return42/fix-typos
[fix] typos / reported by @kianmeng in searx PR-3366
2 years ago
Alexandre Flament 0e00af9c26
Merge pull request #1810 from return42/fix-1809
[fix] springer: unsupported operand type(s) for +: 'NoneType' and 'str'
2 years ago
Markus Heiser ba8959ad7c [fix] typos / reported by @kianmeng in searx PR-3366
[PR-3366] https://github.com/searx/searx/pull/3366

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2 years ago
Mohamed Elashri 212c98c9f5
Merge branch 'searxng:master' into master 2 years ago
Markus Heiser 52023e3d6e [fix] doc of the paper.html template (isbn, issn)
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2 years ago
Markus Heiser 0052887929 [fix] springer: unsupported operand type(s) for +: 'NoneType' and 'str'
- fix issue reported #1809
- filter out `None` value from issn and isbn list
- add comments (from publicationName)
- add publisher

Closes: https://github.com/searxng/searxng/issues/1809
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2 years ago
Mohamed Elashri 5832c70680
correct sci-hub links/ add `.ru` and remove other 3rd party domains. 2 years ago
Markus Heiser e36b023508 [mod] core.ac.uk: add cetgory 'scientific publications'
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2 years ago
Markus Heiser b424ee255e [mod] paper.html: simplify template by using result_link macro
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2 years ago
Alexandre Flament bfd6f61849
Merge pull request #1804 from return42/fix-core.ac.uk
core.ac.uk: use paper.html template
2 years ago
Alexandre Flament 16443d4f4a [mod] core.ac.uk: try multiple ways to get url
If the url is not found, using:
* the DOI
* the downloadUrl
* the ARK id
2 years ago
Markus Heiser 3198c906af [mod] paper.html: add links to doi resolver
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2 years ago
Markus Heiser c76830d8a8 [mod] core.ac.uk: use paper.html template
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2 years ago
Markus Heiser 3ff2ad939d [fix] ERROR searx.engines.core.ac.uk: list index out of range
Some result items from core.ac.uk do not have an URL::

  Traceback (most recent call last):
  File "searx/search/processors/online.py", line 154, in search
    search_results = self._search_basic(query, params)
  File "searx/search/processors/online.py", line 142, in _search_basic
    return self.engine.response(response)
  File "SearXNG/searx/engines/core.py", line 73, in response
    'url': source['urls'][0].replace('http://', 'https://', 1),

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2 years ago
Markus Heiser caebafdd06 [fix] typo in crossref settings: disable --> disabled
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2 years ago
Alexandre Flament d6446be38f [mod] science category: various update of about PR 1705 2 years ago
Alexandre FLAMENT fe43b6e821 [build] /static 2 years ago
Alexandre FLAMENT e36f85b836 Science category: update the engines
* use the paper.html template
* fetch more data from the engines
* add crossref.py
2 years ago
Alexandre FLAMENT 593026ad9c oa_doi_rewrite: add the doi to the result when it is found.
Currentty, when oa_doi_rewrite find a DOI in the result URL, it replace the URL.
In this commit, the plugin adds the key "doi" to the result,
so the paper.html can show it.
2 years ago
Alexandre FLAMENT 5ba831d6a8 Add paper.html result template 2 years ago
Alexandre FLAMENT a96f503d7b Add searx.webutils.searxng_format_date
* Move the datetime to str code from searx.webapp.search to searx.webutils.searxng_format_date
* When the month, day, hour, day and second are zero, the function returns only the year.
2 years ago
Alexandre Flament bef3984d03
Merge pull request #1728 from liimee/eng-ddw
add duckduckgo weather engine
2 years ago
Alexandre Flament d3fec1388c
Merge pull request #1624 from liimee/eng-wttr
Add wttr.in engine
2 years ago
searxng-bot ab6e1542ff [translations] update from Weblate
55133802 - 2022-09-21 - Linerly <linerly@protonmail.com>
b9309bdf - 2022-09-22 - Xosé M <correo@xmgz.eu>
6da8db13 - 2022-09-21 - Constantine Giannopoulos <K.Giannopoulos@acg.edu>
c1edbd89 - 2022-09-21 - Markus Heiser <markus.heiser@darmarit.de>
9795e5fe - 2022-09-22 - alexfs2015 <alex04fs@gmail.com>
2 years ago
Alexandre Flament 1a7b6872b5
Merge pull request #1792 from unixfox/google-images-internal-api
use the internal API for google images
2 years ago
Markus Heiser cf7ee67f71 [mod] google-images: slightly improvements of the engine
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2 years ago
Markus Heiser 8b40e68c56 [fix] wording: SearXNG is 'open' and not 'hackable'
The word "hackable" may arouse interest in programmers to participate in the
development, but it scares the ordinary user.

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2 years ago
Emilien Devos df5f8d0e8e use the internal API for google images 2 years ago
Markus Heiser dcf1d408a5 [fix] google-news: origin result does not have a content area
The google news are in a rework, the content area of a news item has been
removed.

Closes: https://github.com/searxng/searxng/issues/1790
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2 years ago
Alexandre FLAMENT 33b43763b9 Brave engine: fix BrotliDecoderDecompressStream error 2 years ago
Markus Heiser fbf07237ff [fix] and improve docs generated from source code.
Fix::

    searx/locales.py:docstring of searx.locales.get_engine_locale:17: \
      WARNING: Definition list ends without a blank line; unexpected unindent.

Improvement: don't show default values in the generated documentation whe it is
more a mess than a usefull information (`:meta hide-value:`).

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2 years ago
Alexandre Flament b3708e4137
Merge pull request #1757 from LencoDigitexer/master
add yandex autocomplete
2 years ago
LencoDigitexer bc28091557 remove the print statement 2 years ago
searxng-bot 2ee8e5eff2 [translations] update from Weblate
570c4f7d - 2022-09-15 - Fero Novák <itzwowsmile@gmail.com>
0ef09ea1 - 2022-09-15 - dogyx <aaronloit@tuta.io>
03f97e22 - 2022-09-09 - beriain <soila@disroot.org>
caddaedc - 2022-09-10 - Markus Heiser <markus.heiser@darmarit.de>
addfb0c2 - 2022-09-09 - NxOne14 <kiril2315@gmail.com>
2872e3a6 - 2022-09-11 - Markus Heiser <markus.heiser@darmarit.de>
d2835b09 - 2022-09-11 - Sadith Nadungoda <sadithnadungoda@gmail.com>
2 years ago
LencoDigitexer 3f72a79088 add yandex to autocomplete backends settings 2 years ago
LencoDigitexer 7b8d6015e3 add yandex autocompleter 2 years ago
Alexandre Flament eb3d185e66
Merge pull request #1755 from searxng/dependabot/npm_and_yarn/searx/static/themes/simple/master/sharp-0.31.0
Bump sharp from 0.30.7 to 0.31.0 in /searx/static/themes/simple
2 years ago
searxng-bot bf8ea2020f [translations] update from Weblate 2 years ago
dependabot[bot] cbf65e8292
Bump sharp from 0.30.7 to 0.31.0 in /searx/static/themes/simple
Bumps [sharp](https://github.com/lovell/sharp) from 0.30.7 to 0.31.0.
- [Release notes](https://github.com/lovell/sharp/releases)
- [Changelog](https://github.com/lovell/sharp/blob/main/docs/changelog.md)
- [Commits](https://github.com/lovell/sharp/compare/v0.30.7...v0.31.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2 years ago
Alexandre Flament 691c0ed6b9
Merge pull request #1743 from dalf/update_about_metrics
Update about the metrics
2 years ago
Markus Heiser ad8ffd222c [mod] option 'ui: cache_url:' to configure internet cache or archive
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2 years ago
Alexandre FLAMENT dd0887be18 xpath engine: change raise_for_httperror to no_result_for_http_status
no_result_for_http_status contains a list of HTTP status.
These HTTP status are seen an empty result list.
In other cases an exception is thrown as usual.

Previously raise_for_httperror were ignoring all HTTP error,
which make defective engines invisible in the stats.
2 years ago
Markus Heiser a15dfa5ee1 [fix] engine woxikon.de - don't raise exception on empty result list
Woxikon expects a word in German, so with query "foo" the site finds nothing and
respons a 404:

    httpx.HTTPStatusError: Client error '404 Not Found' \
      for url 'https://synonyme.woxikon.de/synonyme/foo.php'

[1] https://github.com/searxng/searxng/issues/1543#issuecomment-1193317054

Closes: https://github.com/searxng/searxng/issues/1543
Suggested-by: @allendema [1]
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2 years ago
Markus Heiser 8e9fb0b435
Merge pull request #1647 from return42/deepl-engine
[mod] add deepl translation engine
2 years ago
Alexandre FLAMENT 66f72a006f template: when enable_metrics are disabled, hide the empty stats
when metrics are disabled:
* hide the link to /stats at the bottom of the pages
* in /preferences, hide the columns "Response time" and "Reliability"
2 years ago
Alexandre FLAMENT 94a28ebe53 Stats: display only the score per result, no anymore the score 2 years ago
searxng-bot 9e84cf31a4 [translations] update from Weblate
9b3635db - 2022-08-31 - Andrij Mizyk <andmizyk@gmail.com>
875cbf38 - 2022-09-01 - Markus Heiser <markus.heiser@darmarit.de>
7b3b12a0 - 2022-08-31 - SecularSteve <fairfull.playing@gmail.com>
e60b4544 - 2022-08-28 - Markus Heiser <markus.heiser@darmarit.de>
dc9c17a4 - 2022-08-31 - SecularSteve <fairfull.playing@gmail.com>
7307cf31 - 2022-08-31 - SecularSteve <fairfull.playing@gmail.com>
ae642e6f - 2022-09-01 - Xosé M <correo@xmgz.eu>
8db6b9c9 - 2022-08-28 - Markus Heiser <markus.heiser@darmarit.de>
d74ef692 - 2022-08-31 - SecularSteve <fairfull.playing@gmail.com>
3ddf8997 - 2022-08-30 - Markus Heiser <markus.heiser@darmarit.de>
303d0890 - 2022-08-28 - Markus Heiser <markus.heiser@darmarit.de>
2 years ago
Émilien Devos fcccf39030
Disable brave by default
Brave is too unstable and will often not work by default. As seen in many issues: https://github.com/searxng/searxng/issues?q=is%3Aissue++sort%3Aupdated-desc+brave+label%3Abug+
2 years ago
ta 85b5293e40 simplify infobox result 2 years ago
ta 12f7d4a46b add duckduckgo weather engine 2 years ago
Alexandre Flament 242db53118
Merge pull request #1708 from dalf/result_proxy_default_settings
settings.yml: set default values for result_proxy
2 years ago
Alexandre Flament a7bd2b47c2
Merge pull request #1712 from dalf/remove_searx_env_var
Remove usage of SEARX environment variables
2 years ago
Markus Heiser 13ef9cc125
Merge pull request #1720 from searxng/update_data_update_ahmia_blacklist.py
Update searx.data - update_ahmia_blacklist.py
2 years ago
Markus Heiser e9b564d066
Merge pull request #1722 from searxng/update_data_update_languages.py
Update searx.data - update_languages.py
2 years ago
Markus Heiser 2b65502388
Merge pull request #1723 from searxng/update_data_update_firefox_version.py
Update searx.data - update_firefox_version.py
2 years ago
Markus Heiser 55d04a089d
Merge pull request #1724 from searxng/update_data_update_engine_descriptions.py
Update searx.data - update_engine_descriptions.py
2 years ago
Markus Heiser 4a96480bd5
Merge pull request #1721 from searxng/update_data_update_wikidata_units.py
Update searx.data - update_wikidata_units.py
2 years ago
dalf c2400a8677 Update searx.data - update_engine_descriptions.py 2 years ago
dalf e8bf907eef Update searx.data - update_firefox_version.py 2 years ago
dalf 915c0a2bc6 Update searx.data - update_languages.py 2 years ago
dalf b1ccecbeb3 Update searx.data - update_wikidata_units.py 2 years ago
dalf 2e6d41fa24 Update searx.data - update_ahmia_blacklist.py 2 years ago
dalf 83fbc16908 Update searx.data - update_currencies.py 2 years ago
Alexandre FLAMENT 4adc9920e9 Remove usage of SEARX environment variables 2 years ago
Alexandre FLAMENT 341ad46303 settings.yml: set default values for result_proxy
* initialize result_proxy with searx/settings_defaults.py
* allow result_proxy.key to be a string

this commit supersedes #1522
2 years ago
Markus Heiser 8bdc6986a1
Merge pull request #1706 from dalf/fix-autocomplete-post
Fix: autocomplete with the POST method: url encode the user query
2 years ago
Markus Heiser 3be847149e
Merge pull request #1707 from dalf/fix-external-bang
External bang: bug fix: URL encode the query so "!!g 1+1" works as intended
2 years ago
Alexandre FLAMENT 2af1a6f547 External bang: bug fix: URL encode the query so "!!g 1+1" works as intended 2 years ago
Alexandre FLAMENT 268fa7e036 [build] /static 2 years ago
Alexandre FLAMENT 4a72a6b9fc Theme: fix autocompletion with the POST method
With the POST method, autocomplete.js does not URL encode the values.
For example "1+1" is sent as "1+1" which is read as "1 1" since space are URL encoded with a plus.

There is no clean way to fix the bug since autocomplete.js seems abandoned.

The commit monkey patches the ajax function of autocomplete.js

Related to #1695
2 years ago
Alexandre Flament 56000d5162
Merge pull request #1699 from liimee/eng-app-store
add apple app store engine
2 years ago
Alexandre Flament 44bc94c36e
Merge pull request #1700 from liimee/eng-ddm
add apple maps engine
2 years ago
ta 5057007270 remove thumbnail from results 2 years ago
ta 525946d7dd add poi's website and phone number, doesn't crash when there is no `displayMapRegion`, query the token on the first request 2 years ago
Alexandre Flament 5284de9137
Merge pull request #1702 from tiekoetter/limiter-accept-encoding-handling
[mod] limiter plugin: Accept-Encoding handling
2 years ago
searxng-bot e5a25e51bf [translations] update from Weblate
3e034294 - 2022-08-26 - Markus Heiser <markus.heiser@darmarit.de>
46a4dfd3 - 2022-08-24 - Markus Heiser <markus.heiser@darmarit.de>
d41463fd - 2022-08-24 - Markus Heiser <markus.heiser@darmarit.de>
338b6716 - 2022-08-22 - Markus Heiser <markus.heiser@darmarit.de>
0c9d7756 - 2022-08-22 - Markus Heiser <markus.heiser@darmarit.de>
b422a480 - 2022-08-19 - Markus Heiser <markus.heiser@darmarit.de>
44c9caa0 - 2022-08-22 - Ricardo Simões <xmcorporation@gmail.com>
a774721f - 2022-08-20 - Markus Heiser <markus.heiser@darmarit.de>
d8a322d6 - 2022-08-22 - Markus Heiser <markus.heiser@darmarit.de>
2 years ago
Léon Tiekötter 221740f76e
[mod] limiter plugin: Accept-Encoding handling
Only raise "suspicious Accept-Encoding" when both "gzip" and "deflate" are missing from Accept-Encoding.
Prevent Browsers which only implement one compression solution from being blocked by the limiter plugin.
Example Browser which is currently blocked: Lynx Browser (https://lynx.invisible-island.net)
2 years ago
ta 5dce299b22 add apple maps engine 2 years ago
Alexandre Flament 5a241e545e
Merge pull request #1688 from liimee/eng-9gag
Add 9gag engine
2 years ago
ta cef7bbab22 get the not cropped version of the thumbnail when the image height is not too important 2 years ago
ta 78bff4618c add safesearch support 2 years ago
ta bcae7ae4e3 add developer info as author 2 years ago
ta e5c1b64b1d add the apple app store engine
The Apple App Store is the digital app distribution platform for iOS & iPadOS.
2 years ago
ta 040e24f9ad support playing videos directly 2 years ago
Markus Heiser c2db7b2a66 [fix] Internal server error after changing UI language to BG
A placeholder has been translated to BG, issue was added 8 month ago, when BG
translation was added [1]

    msgid "Compute {functions} of the arguments"
    msgstr "Изчислете {функции} на аргументите"

The incorrect translation has been corrected here in the message files and on
weblate.

[1] https://weblate.bubu1.eu/translate/searxng/searxng/bg/?&offset=49#history
Closes: https://github.com/searxng/searxng/issues/1692
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2 years ago
ta 79d06509c1 add tags as suggestions 2 years ago
ta d22f469010 use `invalid-name` instead of `C0103` for pylint 2 years ago
ta dd9127492f add 9gag engine
9GAG is a social media website where users upload and share user-generated images and videos
2 years ago
ta e64cca8c3f don't raise error when nothing was found 2 years ago
M Asenov faa32d5773 fixed xpath selector for appropriate results 2 years ago
Alexandre Flament 5ed40af3ba
Merge pull request #1661 from liimee/eng-tw
Add twitter engine
2 years ago
Markus Heiser ee3c5e7752
Merge pull request #1666 from return42/harden-get_engine_locales
[fix] typo in get_engine_locale
2 years ago
Markus Heiser 77a0f33819 [fix] engine duden - don't raise exception on empty result list
Duden expects a word in German, so with query "amazing" the site finds nothing
and respons a 404:

    httpx.HTTPStatusError: Client error '404 Not Found' for url\
      'https://www.duden.de/suchen/dudenonline/amazing'

[1] https://github.com/searxng/searxng/issues/1543#issuecomment-1193317054

Suggested-by: @allendema [1]
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2 years ago
Markus Heiser 6f28a69f12
Merge pull request #1677 from searxng/dependabot/pip/master/pygments-2.13.0
Bump pygments from 2.12.0 to 2.13.0
2 years ago
Markus Heiser 299635fb8b [build] /static 2 years ago
Markus Heiser b08a779f2e make pygments.less
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2 years ago
searxng-bot 3478c0bc8b [translations] update from Weblate
2b94abf3 - 2022-08-13 - Markus Heiser <markus.heiser@darmarit.de>
249c92f8 - 2022-08-13 - gkkulik <gregorykkulik@gmail.com>
a331870c - 2022-08-12 - Markus Heiser <markus.heiser@darmarit.de>
5aca8ddc - 2022-08-17 - Markus Heiser <markus.heiser@darmarit.de>
6e7d76a0 - 2022-08-18 - Markus Heiser <markus.heiser@darmarit.de>
2a49e5f0 - 2022-08-15 - Markus Heiser <markus.heiser@darmarit.de>
2d2cafa6 - 2022-08-18 - Content Card <weblate-bubu1@gabg.email>
adcf97ed - 2022-08-15 - Markus Heiser <markus.heiser@darmarit.de>
2 years ago
ta 05851978cf add explanation of token 2 years ago
ta c8acd4a3b6 add profile image to user results 2 years ago
ta b6fd7cd571 add thumbnail to results if available 2 years ago
Markus Heiser de1e7d12f7 [fix] get_engine_locale: better approximation of 'en' is 'en-US'
Compared to `en-EN` the better approximation of 'en' is 'en-US'.

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2 years ago
Markus Heiser ac7776663b [fix] typo in get_engine_locale
Due to a typo in get_engine_locale, a language selection like `!qw :de siemens`
did not work.

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2 years ago
Markus Heiser ef81d14ccf [fix] harden get_engine_locale: handle UnknownLocaleError exceptions
When a user selects an unknown or invalid locale by using the search syntax:

    !qw siemens :de-TW

Before this patch a UnknownLocaleError exception will be rasied:

```
Traceback (most recent call last):
  File "SearXNG/searx/search/processors/online.py", line 154, in search
    search_results = self._search_basic(query, params)
  File "SearXNG/searx/search/processors/online.py", line 128, in _search_basic
    self.engine.request(query, params)
  File "SearXNG/searx/engines/qwant.py", line 98, in request
    q_locale = get_engine_locale(params['language'], supported_languages, default='en_US')
  File "SearXNG/searx/locales.py", line 216, in get_engine_locale
    locale = babel.Locale.parse(searxng_locale, sep='-')
  File "SearXNG/local/py3/lib/python3.8/site-packages/babel/core.py", line 330, in parse
    raise UnknownLocaleError(input_id)
```

This patch implements a simple exception handling, since e.g. `de-TW` does not
exists `de` will be used to get engines locale.  On invalid terms like `xy-XY`
the default will be returned.

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2 years ago
Markus Heiser 27385e7898 [mod] qwant - add safesearch option
Closes: https://github.com/searxng/searxng/issues/1640
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2 years ago
Markus Heiser 6579d6d558 [fix] qwant - API error::locale must be one ..
The request function should not request a language (aka locale) that is not
supported by qwant. Select a locale like zh-TW ends in qwant's API error:

  ERROR searx.engines.qwant news: exception : \
  API error::locale must be one of the following values: \
    en_gb, en_ie, en_us, en_ca, en_my, en_au, en_nz, de_de, de_ch, de_at, fr_fr, \
    fr_be, fr_ch, fr_ca, fr_ad, fc_ca, co_fr, es_es, es_ar, es_cl, es_co, es_mx, \
    es_pe, es_ad, ca_es, ca_ad, ca_fr, eu_es, eu_fr, it_it, it_ch, pt_pt, pt_ad, \
    nl_be, nl_nl

The existing searx.utils.match_language function is unsuitable for this purpose,
it is replaced by function searx.locales.get_engine_locale that is based on the
methods from the babel package.

The quant's _fetch_supported_languages function has been revised to filter out
languages 8aka locales) not supported by qwant.

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2 years ago
Markus Heiser 9ae409a05a [mod] add locale.get_engine_locale to get predictable results
The match_language function sometimes returns incorrect results which is why a
new function get_engine_locale is required.

A bugfix of the match_language is not easily possible, because there is almost
no documentation for it and already the call parameters are undefined.  E.g. the
function processes values like the ones from yahoo::

    "yahoo": [
        "ar",
        ...
        "zh_chs",
        "zh_cht"
     ]

The get_engine_locale has been documented in detail, there is a clear
description of the assumptions as well as the requirements and approximation
rules (read doc-string for more details)::

    Argument ``engine_locales`` is a python dict that maps *SearXNG locales* to
    corresponding *engine locales*:

      <engine>: {
          # SearXNG string : engine-string
          'ca-ES'          : 'ca_ES',
          'fr-BE'          : 'fr_BE',
          'fr-CA'          : 'fr_CA',
          'fr-CH'          : 'fr_CH',
          'fr'             : 'fr_FR',
          ...
          'pl-PL'          : 'pl_PL',
          'pt-PT'          : 'pt_PT'
      }

    .. hint::

       The *SearXNG locale* string has to be known by babel!

In the following you will find a comparison:

>>> import babel.languages
>>> from searx.utils import match_language
>>> from searx.locales import get_engine_locale

Assume we have an engine that supports the follwoing locales:

>>> lang_list = {
...     "zh-CN": "zh_CN",
...     "zh-HK": "zh_HK",
...     "nl-BE": "nl_BE",
...     "fr-CA": "fr_CA",
... }

Assumption:

  A. When a user selects a language the results should be optimized according to
     the selected language.

  B. When user selects a language and a territory the results should be
     optimized with first priority on territory and second on language.

----

Example: (Assumption A.)

  A user selects region 'zh-TW' which should end in zh_HK

hint:
  CN is 'Hans' and HK ('Hant') fits better to TW ('Hant')

>>> get_engine_locale('zh-TW', lang_list)
'zh_HK'
>>> lang_list[match_language('zh-TW', lang_list)]
'zh_CN'

----

Example: (Assumption A.)

  A user selects only the language 'zh' which should end in CN

>>> get_engine_locale('zh', lang_list)
'zh_CN'
>>> lang_list[match_language('zh', lang_list)]
'zh_CN'

----

Example: (Assumption B.)

  A user selects region 'fr-BE' which should end in nl-BE

hint:
  priority should be on the territory the user selected.  If the user
  prefers 'fr' he will select 'fr' without a region tag.

>>> get_engine_locale('fr-BE', lang_list, default='unknown')
'nl_BE'
>>> match_language('fr-BE', lang_list, fallback='unknown')
'fr-CA'

----

Example: (Assumption A.)

  A user selects only the language 'fr' which should end in fr_CA

>>> get_engine_locale('fr', lang_list)
'fr_CA'
>>> lang_list[match_language('fr', lang_list)]
'fr_CA'

----

The difference in priority on the territory is best shown with a engine that
supports the following locales:

>>> lang_list = {
...     "fr-FR": "fr_FR",
...     "fr-CA": "fr_CA",
...     "en-GB": "en_GB",
...     "nl-BE": "nl_BE",
... }

----

Example: (Assumption A.)

   A user selects only a language

>>> get_engine_locale('en', lang_list)
'en_GB'
>>> match_language('en', lang_list)
'en-GB'

hint: the engine supports fr_FR and fr_CA since no territory is given, fr_FR
takes priority ..

>>> get_engine_locale('fr', lang_list)
'fr_FR'
>>> lang_list[match_language('fr', lang_list)]
'fr_FR'

----

Example: (Assumption B.)

  A user selects region 'fr-BE' which should end in nl-BE

>>> get_engine_locale('fr-BE', lang_list)
'nl_BE'
>>> lang_list[match_language('fr-BE', lang_list)]
'fr_FR'

----

If the user selects a language and there are two locales like the following:

>>> lang_list = {
...      "fr-BE": "fr_BE",
...      "fr-CH": "fr_CH",
...  }
>>>

>>> get_engine_locale('fr', lang_list)
'fr_BE'
>>> lang_list[match_language('fr', lang_list)]
'fr_BE'

Looks like both functions return the same value, but match_language depends on the
order of the dictionary (which is not predictable):

>>> lang_list = {
...      "fr-CH": "fr_CH",
...      "fr-BE": "fr_BE",
...  }
>>> get_engine_locale('fr', lang_list)
'fr_BE'
>>> lang_list[match_language('fr', lang_list)]
'fr_CH'
>>>

The get_engine_locale selects the locale by looking at the "population percent"
and this percentage has an higher amount in BE (68.%) compared to CH (21%)

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2 years ago
Markus Heiser 75bb8c45d0 [mod] decouple qwant's categories from SearXNG's categories
By using new property `qwant_categ:` the category of qwant is no longer bound to
the category of SearXNG.

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2 years ago
ta 96ea355a1f add twitter engine 2 years ago
Markus Heiser 0043190643
Merge pull request #1655 from return42/fix-opensearch
[fix] improve OpenSearch description
2 years ago
Léon Tiekötter b56848e8d0
Merge pull request #1660 from liimee/eng-neeva
Add neeva engine
2 years ago
Léon Tiekötter 8fa84ee9f4 Fix time range support and add soft_max_redirects
Add custom time_range_url and time_range_map

Set soft_max_redirects = 2 to prevent "ErrorContext('searx/search/processors/online.py', 116, 'count_error(', None, '2 redirects, maximum: 0', ('200', 'OK', 'neeva.com')) True"
2 years ago
ta d6dfada1a9 add neeva web engine
Neeva is "the world's first ad-free, private search engine" and uses data from Apple, Bing, Yelp and "others".
They claim to crawl "hundreds of millions" of URLs a day (https://twitter.com/Neeva/status/1536447373903335426).
2 years ago
searxng-bot b4fea007f5 [translations] update from Weblate
f2997bfa - 2022-08-12 - Markus Heiser <markus.heiser@darmarit.de>
eeca674f - 2022-08-10 - Edrean Ernst <edrean@allesbeste.com>
7478de6a - 2022-08-11 - Markus Heiser <markus.heiser@darmarit.de>
c4fb9110 - 2022-08-07 - wordpure <wordlesspure@gmail.com>
a5b432e2 - 2022-08-11 - Markus Heiser <markus.heiser@darmarit.de>
eb01d415 - 2022-08-09 - Markus Heiser <markus.heiser@darmarit.de>
f96eb06e - 2022-08-11 - Shopimisrel <shopisrael12@gmail.com>
e7c79191 - 2022-08-08 - ajnasaboobacker <ajnasaboobacker@gmail.com>
f4dbd424 - 2022-08-08 - ajnasaboobacker <ajnasaboobacker@gmail.com>
2 years ago
Markus Heiser 3b0f9c07b2 [fix] improve OpenSearch description
Some HTTP-Clients do have issues with the ``opensearch.xml`` from SearXNG
(related [1][2]) while other OpenSearch descriptions[3] (e.g. from qwant) work
flawles.

Inspired by the OpenSearch description from qwant and with informations from the
specification[4] the ``opensearch.xml`` has been *improved*.

- convert `<Url>` methods from lower case to upper case (`POST`|`GET`)
- add `<moz:SearchForm>` and `xmlns:moz="http://www.mozilla.org/2006/browser/search/"`
- add `<Query role="example" searchTerms="SearXNG" />`  [4]

  OpenSearch description documents should include at least one Query element of
  `role="example"` that is expected to return search results. Search clients may
  use this example query to validate that the search engine is working properly.

- modified `<LongName>` to SearXNG
- modified `<Description>` the word 'hackable' scares uninitiated users and was removed
- add the `type="image/png"` to `<Image>`

Test can be done by::

    make run

Visit http://127.0.0.1:8888/ and add the search engine to your WEB-Browser /
test with different WEB-Browser from desktop and Smartphones (are there any iOS
user here, please test on Safari and Chrome).

[1] https://app.element.io/#/room/#searxng:matrix.org/$xN_abdKhNqUlgXRBrb_9F3pqOxnSzGQ1TG0s0G9hQVw
[2] https://github.com/searxng/searxng/issues/431
[3] https://developer.mozilla.org/en-US/docs/Web/OpenSearch
[4] https://github.com/dewitt/opensearch/blob/master/opensearch-1-1-draft-6.md#the-query-element

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2 years ago
Markus Heiser 73ffa0c070 Update searx.data - update_engine_descriptions.py
./manage pyenv.cmd python ./searxng_extra/update/update_engine_descriptions.py

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2 years ago
Johan Planchon e0215e0cc8 add sourcehut engine 2 years ago
Markus Heiser 43c545910b
Merge pull request #1648 from unixfox/google_mobile_ui_parameter
output format protobuf to HTML for google mobile
2 years ago
Markus Heiser eb02cc77c5 [fix] google - simplify XPath selectors to fetch more results
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2 years ago
Johan Planchon 90bdb23756 add lib.rs engine 2 years ago
Émilien Devos b9f16a77db output format protobuf to HTML for google mobile 2 years ago
Thomas Renard d4acbcfe63 [mod] add deepl translation engine
This implements the Deepl Translation engine. It works nearly like lingva but
directly to the deepl API.  This api only needs a to-lang, from-lang is a fake
by now.

There is a free option to use [1].

[1] https://www.deepl.com/pro-api?cta=header-pro-api for registering a free account.
2 years ago
Brock Vojković 24210fb10b
Revert PR #1633
This reverts the changes made to the Google results XPath in PR #1633.
2 years ago
Léon Tiekötter 94b3656b4a [fix] google engine: results XPath
Seems google rolls out changes first on the `google.com` domain and later on the
"language" domains.  By example: yesterday [1] `google.com` did not work but
`google.de` and `google.fr` did work, today they do not work any longer and this
fix is needed on all domains.

Closes: https://github.com/searxng/searxng/issues/1628
[1] https://github.com/searxng/searxng/issues/1628#issuecomment-1208191816
2 years ago
Markus Heiser 925f3ff487
Merge pull request #1627 from allendema/add-marginalia
[enh] Initial Marginalia.nu support (foss)
2 years ago
Markus Heiser 58f630d312
Merge pull request #1623 from return42/mod-yep.com
[mod] engine yep.com: show all 100 results yep.com has
2 years ago
Allen 5b815b3966 [enh] initial Marginalia.nu support (foss)
Currently it uses a public api_key `/public/` [1]

The 'index' parameter selects the search index, corresponding to the drop down
next to the search field in the main GUI.

    0: popular
    1: blogs
    2: big_sites
    3: default
    4: experimental

'experimental' is more up to date and does not exclude other sites, which is the
case with 'big sites' or 'blogs'.

[1] https://api.marginalia.nu/
[2] https://git.marginalia.nu/marginalia/marginalia.nu
[3] https://news.ycombinator.com/item?id=31536626

Closes: https://github.com/searxng/searxng/issues/1620
2 years ago
Markus Heiser 8b58cd1167 [fix] typo in uWSGI cache: searxcache --> searxngcache
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2 years ago
liimee 8c318562e2
add description and wikidata ID to wttr.in engine 2 years ago
ta 8aa018db95 add wttr.in engine 2 years ago
Markus Heiser 647e6187d7 [mod] engine yep.com: show all 100 results yep.com has
yep.com is still in beta, the api.yep.com does not have paging support.  There
is only a 'limit' argument with a maximum of 100 results.

yep.com seems fast; there is nor need for a timeout of 12 sec.

The API returns JSON nevertheless what the HTTP header is, the "show more"
button on yep.com's web site does not set a special HTTP Accept header.

FYI: The index does not support languages, the WEB UI does not offer a language
selection of the results and the entire index seems in English.

Closes: https://github.com/searxng/searxng/issues/1619
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2 years ago
searxng-bot 0f02fcc836 [translations] update from Weblate
acf8bd39 - 2022-08-05 - Markus Heiser <markus.heiser@darmarit.de>
4ad75b6e - 2022-08-04 - Markus Heiser <markus.heiser@darmarit.de>
ee8cbee6 - 2022-07-31 - Markus Heiser <markus.heiser@darmarit.de>
87c19313 - 2022-08-01 - Academic tyro <y13593582403@gmail.com>
cbe0de32 - 2022-07-30 - Markus Heiser <markus.heiser@darmarit.de>
45029a17 - 2022-08-04 - Markus Heiser <markus.heiser@darmarit.de>
6eec3795 - 2022-08-03 - Markus Heiser <markus.heiser@darmarit.de>
f8d8f31f - 2022-07-29 - Markus Heiser <markus.heiser@darmarit.de>
b3fb365f - 2022-07-29 - Markus Heiser <markus.heiser@darmarit.de>
aaeabbc9 - 2022-08-03 - Lakatos Tamás <tomimost@gmail.com>
6c71c501 - 2022-08-03 - Markus Heiser <markus.heiser@darmarit.de>
f7b5ba19 - 2022-08-01 - Markus Heiser <markus.heiser@darmarit.de>
850e7fa0 - 2022-08-04 - Mico Hautaluoma <m@mha.fi>
0cb696fc - 2022-07-31 - Markus Heiser <markus.heiser@darmarit.de>
04c3785f - 2022-08-02 - Markus Heiser <markus.heiser@darmarit.de>
b500f2ad - 2022-08-01 - Edrean Ernst <edrean@allesbeste.com>
0b576b83 - 2022-08-01 - GooGuJiang <gu@gmoe.cc>
0adeb6e2 - 2022-08-01 - Edrean Ernst <edrean@allesbeste.com>
0b025f17 - 2022-07-31 - PRATYAY MUSTAFI <pratyaymustafi@gmail.com>
2 years ago