Commit Graph

4664 Commits

Author SHA1 Message Date
Markus Heiser 3294e7cfe4 [fix] reduce error logs related to X-Forwarded-For & X-Real-IP headers
To test start a `make run` instance and query multiple times for `ip` (the
answerer), you should see only once the error message(s):

    ERROR   searx.botdetection            : X-Forwarded-For header is not set!
    ERROR   searx.botdetection            : X-Real-IP header is not set!

[1] https://github.com/searxng/searxng-docker/discussions/174
[2] https://github.com/searxng/searxng-docker/pull/162#issuecomment-1692834457

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2023-08-28 08:05:17 +02:00
Bnyro 1428385d1c [mod] preferences.py: add and use BooleanSetting for checkbox preferences 2023-08-27 21:23:43 +02:00
Bnyro e5535ec078 [feat] settings: replace boolean select preferences with checkboxes 2023-08-27 21:23:43 +02:00
Bnyro 5a5cfc1930 [mod] random answerer: add random hex color generator 2023-08-27 18:59:54 +02:00
Markus Heiser b0d2cd5ca9 [doc] add documentation of Mwmbl engine & autocompleter
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2023-08-27 17:25:26 +02:00
Bnyro df71c24b20 [mod] autocomplete.py: add support for mwmbl completions 2023-08-27 17:25:26 +02:00
Bnyro 19300a5659 [mod] engine mwmbl: add link to official api docs 2023-08-27 17:25:26 +02:00
Alexandre Flament 97b1df1629 [mod] searx.network: memory optimization
Avoid to create a SSLContext in AsyncHTTPTransportNoHttp

See:
* 0f61aa58d6/httpx/_transports/default.py (L271)
* https://github.com/encode/httpx/issues/2298
2023-08-27 11:49:40 +02:00
Alexandre Flament e16c007c22 [fix] openstreetmap engine
It seems there is an API change:
extratags can be either a dictionnary or None.

This commit avoid crash when extratags is None

Test query "!osm gare du nord"
2023-08-27 11:49:16 +02:00
Markus Heiser 0647f83a3e [fix] google engine: don't overspecify the search query to Google
The method EngineTraits.get_region(..) returns engine's region string
that **best fits** to SearXNG's locale.  This means it returns a
region (country) if only a language is set in the locale.  By example the method
returns for a locale tag `es` a region `ES`.

Google's search parameter `cr` restricts search results to documents originating
in a particular country / in case of a locale tag (language) as described above,
this argument should be unset in the query send to Google.

Closes: https://github.com/searxng/searxng/issues/2672
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2023-08-26 07:47:07 +02:00
searxng-bot 7d806d1020 [translations] update from Weblate
a6c2d1988 - 2023-08-22 - shoko <nickskorohod@outlook.com>
38bc33a71 - 2023-08-20 - return42 <markus.heiser@darmarit.de>
0ff21aa3c - 2023-08-19 - MonsoonFire <re1qnb5mq@mozmail.com>
2023-08-25 09:36:49 +02:00
Paul Braeuning 9069da051a
Merge pull request #2644 from dalf/update_httpx
Bump httpx 0.21.2 from to 0.24.1
2023-08-24 23:12:06 +02:00
Markus Heiser 4b42644579 [fix] engine google_video: google has changed the layout of the rsponse
Closes: https://github.com/searxng/searxng/issues/2664
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2023-08-22 08:34:04 +02:00
Alexandre Flament b4e4cfc026 Bump httpx 0.21.2 from to 0.24.1 2023-08-21 22:05:12 +02:00
Markus Heiser d52919cc3e [mod] decrease the weighting of wikivoyage, wikibooks, wikisource and wikiversity
The search engines deliver hits for many search terms [1], but these are usually
not the focus of the user. In order to arrange these hits further down in the
list, their weighting is reduced.

[1] https://github.com/searxng/searxng/pull/2589#issuecomment-1670915089

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2023-08-21 21:52:40 +02:00
PlayDay 018b0a9322 [feat] engine: XPath configuration for pkg.go.dev 2023-08-19 19:19:31 +02:00
Bnyro c59ae91b76 [feat] engine: implementation of mwmbl 2023-08-19 18:23:42 +02:00
searxng-bot bb9e9ab773 [translations] update from Weblate
d8e4100b6 - 2023-08-16 - return42 <markus.heiser@darmarit.de>
b8e03f3bc - 2023-08-17 - ghose <correo@xmgz.eu>
2023-08-18 19:22:13 +02:00
Markus Heiser c741fc6f00 [mod] currency_convert: support for showing the answer source url
Show URL of the ddg-search page, not the URL of a (generic) Javascript.  The
latter one is not usefull for the user.

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2023-08-18 19:07:14 +02:00
Markus Heiser e2744520f8 [mod] google: support for showing the answer source url
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2023-08-18 19:07:14 +02:00
Bnyro 5ec7df3480 [mod] engine duckduckgo definitions: support for answer source 2023-08-18 19:07:14 +02:00
Bnyro 64bc98b5fb [mod] brave: support for showing the answer source url 2023-08-18 19:07:14 +02:00
Markus Heiser 6fc2ee514d [build] /static 2023-08-18 19:07:14 +02:00
Bnyro 13d801b75d [feat] results: show source of suggested answer 2023-08-18 19:07:14 +02:00
Markus Heiser 9100a48541 [mod] improve seekr engines and add documentation
Tis patch adds some more fields to the result items and changed paging to the
``nextResultSet`` given in seekr's JSON response.

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2023-08-15 16:17:42 +02:00
Bnyro 2bab658d39 [feat] engine: implementation of seekr for news, images and videos 2023-08-15 16:17:42 +02:00
Markus Heiser 7052a1a7cf [drop] engine archive.is / blocked by CAPTCHA [1]
Sadly archive.is is blocked by a CAPTCHA that can't be avoid (at least in a
XPath engine).

[1] https://github.com/searxng/searxng/issues/2643

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2023-08-14 08:50:13 +02:00
mrpaulblack 621b09b9b9 [fix] preferences: change engine table category colspan to 8
* this is a small fix to increase the colspan of the category in engine preferences from 7 to 8, since there was a column added
=> fixing a small fallout from 4731290317
2023-08-14 07:11:06 +02:00
ToxyFlog1627 f175574f37 [fix] typos in documentation & messages 2023-08-13 08:50:29 +02:00
Markus Heiser c348427f07 [update] make pygments.less
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2023-08-11 10:54:50 +02:00
searxng-bot 99df7b84d1 [translations] update from Weblate
12c527bcd - 2023-08-10 - maxch <maxletters@tutanota.com>
ea46b66fc - 2023-08-10 - return42 <markus.heiser@darmarit.de>
ae3d8dcdf - 2023-08-10 - return42 <markus.heiser@darmarit.de>
ab6a59e35 - 2023-08-10 - return42 <markus.heiser@darmarit.de>
1db1affcc - 2023-08-10 - gallegonovato <fran-carro@hotmail.es>
94b682aa0 - 2023-08-10 - Fjuro <ifjuro@proton.me>
07c49bb6c - 2023-08-10 - return42 <markus.heiser@darmarit.de>
2023-08-11 09:17:56 +02:00
Bnyro c76c999a1e [feat] engine: implementation of anaconda 2023-08-10 23:51:07 +02:00
Bnyro e25d1c7288 [feat] engine: implementation of German news, Tagesschau
Co-authored-by: Markus Heiser <markus.heiser@darmarit.de>
2023-08-10 20:27:54 +02:00
GeckoLinux 2256ba2ffb [mod] settings.yml: move wolframalpha to categ general & disable by default
As suggested in comment [1] as a good compromise between [2] and [3].

This will help users that want Wolfram Alpha instant answers by default with
every query and don't mind the slowness.  It will be disabled by default so it's
fast for all users, and those that need it can enable it as a user-configurable
option without requiring setting up their own instance to change the Wolfram
Alpha categorization.

[1] https://github.com/searxng/searxng/pull/813#issuecomment-1574851572
[2] https://github.com/searxng/searxng/pull/813#issuecomment-1020581765
[3] https://github.com/searxng/searxng/issues/966#issue-1171107451
2023-08-10 14:31:09 +02:00
Bnyro 834e1c3f12 [mod] engine lemmy: increase thumbnail quality to align with theme 2023-08-10 12:58:40 +02:00
Markus Heiser c381fc001f [mod] settings: remove lemmy from categ 'general' & enable by default
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2023-08-10 12:58:40 +02:00
Markus Heiser fda111c0c9 [mod] engine lemmy: add more info fields to the result items
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2023-08-10 12:58:40 +02:00
Bnyro 224f2250ae [feat] engine: support for lemmy communities, posts, comments and users 2023-08-10 12:58:40 +02:00
Bnyro 9f82c39610 [mod] engine google_play: raise error on unsupported category 2023-08-10 12:35:24 +02:00
Bnyro 0a99dc85b9 [mod] engine brave: raise error on unsupported category 2023-08-10 12:35:24 +02:00
Bnyro 4731290317 [mod] settings: show weight of each instance 2023-08-10 10:50:14 +02:00
Markus Heiser 733b795d53 [fix] make flask_babel.gettext() work in engine modules (L10n & threads)
incident:
  flask_babel.gettext() does not work in the engine modules.

cause:
  the request() and response() functions of the engine modules run in the
  processor, whose search() method runs in a thread and in the threads the
  context of the Flask app does not exist. The context of the Flask app is
  needed by the gettext() function for the L10n.

Solution:
  copy context of the Flask app into the threads. [1]

special case:
  We cannot equip the search() method of the processors with the decorator [1],
  because the decorator requires a context (Flask app) that does not yet exist
  at the time of the initialization of the processors (the initialization of the
  processors is part of the initialization of the Flask app).

[1] https://flask.palletsprojects.com/en/2.3.x/api/#flask.copy_current_request_context

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2023-08-09 13:27:43 +02:00
allendema_searxng_pi c00c0c5434 [mod] remove discontinued petalsearch engines 2023-08-09 07:17:40 +02:00
Markus Heiser b8352eca0c [mod] brave engines: add fetch_traits() / improve language support
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2023-08-08 16:21:45 +02:00
Markus Heiser 460bbe5b81 [mod] implement brave (WEB) engine to replace XPath configuration
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2023-08-08 16:21:45 +02:00
Bnyro d151497db3 [feat] engine: brave - support for news 2023-08-08 16:21:45 +02:00
Bnyro cae06f2781 [feat] engine: brave - support for videos 2023-08-08 16:21:45 +02:00
Bnyro 73364e158e [feat] engine: brave - support for images 2023-08-08 16:21:45 +02:00
Markus Heiser bcaaae699f [doc] fix some minor typos in the doc-strings of class EngineTraits
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2023-08-08 08:15:53 +02:00
Markus Heiser a2108432f7 [fix] settings.yml: typo in engine name wikipecies -> wikispecies
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2023-08-07 10:35:44 +02:00
Markus Heiser 1d0abb7157 [doc] engine bt4g: add documentation to docs/dev/engines/online/
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2023-08-06 09:30:48 +02:00
Emilien Devos 0fc8f99ecc [feat] new engine: bt4g added & enabled and disable by default btdigg
Disable btdigg because on most SearXNG instances, SearXNG is blocked by btdigg
due to cloudflare too many requests.

This impementation did not parse the HTML page because there is an API in
XML (RSS).  The RSS feed provides fewer data like amount of seeders/leechers and
the files in the torrent file. It's a tradeoff for a "stable" engine as the XML
from RSS content will change way less than the HTML page.

Closes: https://github.com/searxng/searxng/issues/2553
2023-08-06 09:30:48 +02:00
Markus Heiser dad16c0949 [mod] settings.yml: enable engines from Wikimedia Foundation
The Wikimedia wikis [1] engines provide good answers and have short response
times --> no reason to disable these enhgines by default.  BTW: this patch adds
a (sub-) category ``wikimedia`` for the engines [1].

[1] https://meta.wikimedia.org/wiki/Wikimedia_wikis

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2023-08-04 19:06:50 +02:00
Markus Heiser db522cf76d [mod] engine: wikimedia - improve results, add addition settings & doc
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2023-08-04 19:06:50 +02:00
Bnyro 7d8c20c80d [feat] new engine: wikispecies 2023-08-04 19:06:50 +02:00
searxng-bot 9a5e91ce84 [translations] update from Weblate
310daeb72 - 2023-08-03 - return42 <markus.heiser@darmarit.de>
01be8a264 - 2023-08-01 - return42 <markus.heiser@darmarit.de>
2023-08-04 09:30:11 +02:00
Markus Heiser 1b030d4b41 [doc] engine: Yacy
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2023-08-03 19:58:51 +02:00
zutto ca518c6803 add option to change yacy search mode 2023-08-03 19:58:51 +02:00
Markus Heiser 203f1f0928 [fix] engine piped: 'invalid content'
SearXNG does not allow a None value in the content field of a result item.

If the key (shortDescription, uploaderName) in the JSON response from piped
exists but is set to None, SearXNG ignores this result item::

  DEBUG   searx    : result: invalid content: { ..,  'content': None,  ..}

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2023-08-03 16:23:36 +02:00
Markus Heiser 207fcc0c8c [mod] engine piped: add paging support
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2023-08-03 16:23:36 +02:00
Markus Heiser ef5831cd84 [mod] engine piped: split into two dedicated engiens for video & music
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2023-08-03 16:23:36 +02:00
Markus Heiser 7aa95d2d52 [doc] engine piped: add documentation to docs/dev/engines/online/
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2023-08-03 16:23:36 +02:00
Bnyro 636bfdac68 [feat] engine: implementation of Piped 2023-08-03 16:23:36 +02:00
dalf 8b4ba204b7 Update searx.data - update_engine_descriptions.py 2023-07-29 11:02:54 +02:00
dalf d421385dc6 Update searx.data - update_wikidata_units.py 2023-07-29 11:02:23 +02:00
dalf 290f16207b Update searx.data - update_currencies.py 2023-07-29 11:02:14 +02:00
dalf fcd2013511 Update searx.data - update_firefox_version.py 2023-07-29 11:01:28 +02:00
dalf cfa8169509 Update searx.data - update_ahmia_blacklist.py 2023-07-29 09:25:24 +02:00
searxng-bot f45d1920d9 [translations] update from Weblate
ba4888c96 - 2023-07-26 - return42 <markus.heiser@darmarit.de>
6ec8a8a28 - 2023-07-22 - return42 <markus.heiser@darmarit.de>
0a7b701b3 - 2023-07-24 - artnay <jiri.gronroos@iki.fi>
c0b34cbdb - 2023-07-23 - MonsoonFire <re1qnb5mq@mozmail.com>
37cbd41c2 - 2023-07-22 - return42 <markus.heiser@darmarit.de>
2023-07-29 08:15:21 +02:00
mrpaulblack 65d8b1a310 [fix] remove disabled: false from engine definitions in settings.yml
* setting disabled: false is not needed, since it is by default enabled
2023-07-22 18:19:01 +02:00
searxng-bot 51c531d450 [translations] update from Weblate
b7f1e9ae - 2023-07-17 - Hudobni Volk <hudobni.volk@tuta.io>
3c7c821e - 2023-07-16 - alextecplayz <alextec70@outlook.com>
0e305f84 - 2023-07-17 - return42 <markus.heiser@darmarit.de>
80745a22 - 2023-07-15 - tentsbet <remendne@pentrens.jp>
afef0e2e - 2023-07-16 - Salif Mehmed <mail@salif.eu>
4a7687ac - 2023-07-14 - Ivan Gabaldon <admin@inetol.net>
2023-07-22 17:47:05 +02:00
mrpaulblack b477349824 [build] /static 2023-07-19 15:07:45 +02:00
Kiru de5c1cedca fix "#backToTop" button always being clickable
`pointer-events` never gets set to "none" when the button is hidden,
allowing you to click the button. And your mouse further changes it's
cursor to the pointer style.
2023-07-19 15:06:09 +02:00
searxng-bot b7b184244d [translations] update from Weblate
01350cf1 - 2023-07-13 - return42 <markus.heiser@darmarit.de>
5f037a4d - 2023-07-12 - return42 <markus.heiser@darmarit.de>
820a78ad - 2023-07-12 - return42 <markus.heiser@darmarit.de>
73037743 - 2023-07-12 - return42 <markus.heiser@darmarit.de>
e656795c - 2023-07-09 - Linerly <linerly@protonmail.com>
0ee18285 - 2023-07-08 - return42 <markus.heiser@darmarit.de>
c087c7fb - 2023-07-08 - return42 <markus.heiser@darmarit.de>
6eb318c5 - 2023-07-08 - return42 <markus.heiser@darmarit.de>
3b4a3d1f - 2023-07-08 - return42 <markus.heiser@darmarit.de>
b3187499 - 2023-07-09 - return42 <markus.heiser@darmarit.de>
c1226646 - 2023-07-08 - return42 <markus.heiser@darmarit.de>
2356a402 - 2023-07-08 - return42 <markus.heiser@darmarit.de>
c9a74b52 - 2023-07-08 - return42 <markus.heiser@darmarit.de>
3d9f2938 - 2023-07-08 - return42 <markus.heiser@darmarit.de>
68af8585 - 2023-07-08 - return42 <markus.heiser@darmarit.de>
261a2a72 - 2023-07-08 - return42 <markus.heiser@darmarit.de>
fcea15cf - 2023-07-08 - return42 <markus.heiser@darmarit.de>
7685385e - 2023-07-08 - return42 <markus.heiser@darmarit.de>
ec0a3727 - 2023-07-08 - return42 <markus.heiser@darmarit.de>
0130ddf7 - 2023-07-08 - return42 <markus.heiser@darmarit.de>
b93f9609 - 2023-07-08 - return42 <markus.heiser@darmarit.de>
4a5cdcb3 - 2023-07-08 - return42 <markus.heiser@darmarit.de>
9cba3939 - 2023-07-08 - return42 <markus.heiser@darmarit.de>
d973d937 - 2023-07-08 - return42 <markus.heiser@darmarit.de>
ce076245 - 2023-07-08 - return42 <markus.heiser@darmarit.de>
5c36ccab - 2023-07-08 - return42 <markus.heiser@darmarit.de>
226ff7d4 - 2023-07-08 - return42 <markus.heiser@darmarit.de>
8148a9ed - 2023-07-08 - return42 <markus.heiser@darmarit.de>
840bc189 - 2023-07-08 - return42 <markus.heiser@darmarit.de>
51ffc22e - 2023-07-08 - return42 <markus.heiser@darmarit.de>
394ec63e - 2023-07-08 - return42 <markus.heiser@darmarit.de>
428c16a8 - 2023-07-08 - return42 <markus.heiser@darmarit.de>
218cf51e - 2023-07-08 - return42 <markus.heiser@darmarit.de>
70260934 - 2023-07-09 - ghose <correo@xmgz.eu>
c6244c2b - 2023-07-08 - return42 <markus.heiser@darmarit.de>
b92dc5c1 - 2023-07-08 - return42 <markus.heiser@darmarit.de>
43917957 - 2023-07-08 - return42 <markus.heiser@darmarit.de>
df1bf630 - 2023-07-08 - return42 <markus.heiser@darmarit.de>
d1c00dff - 2023-07-08 - return42 <markus.heiser@darmarit.de>
0a6da54f - 2023-07-08 - return42 <markus.heiser@darmarit.de>
12377e28 - 2023-07-08 - return42 <markus.heiser@darmarit.de>
b5b8ea78 - 2023-07-07 - gallegonovato <fran-carro@hotmail.es>
ec31e65f - 2023-07-08 - return42 <markus.heiser@darmarit.de>
6c33b1fe - 2023-07-08 - return42 <markus.heiser@darmarit.de>
393d390c - 2023-07-08 - return42 <markus.heiser@darmarit.de>
a4f6b353 - 2023-07-08 - return42 <markus.heiser@darmarit.de>
0f8d6b6b - 2023-07-08 - return42 <markus.heiser@darmarit.de>
67f2fc96 - 2023-07-08 - Fjuro <ifjuro@proton.me>
5f2d3f02 - 2023-07-08 - return42 <markus.heiser@darmarit.de>
5ae2b8dc - 2023-07-08 - return42 <markus.heiser@darmarit.de>
0bd4fb1e - 2023-07-08 - return42 <markus.heiser@darmarit.de>
ce768726 - 2023-07-08 - return42 <markus.heiser@darmarit.de>
a22ae2f2 - 2023-07-08 - return42 <markus.heiser@darmarit.de>
b5b8774f - 2023-07-08 - return42 <markus.heiser@darmarit.de>
2023-07-14 10:21:27 +02:00
Paolo Basso cada89ee36 [feat] engine: re-enables z-library (zlibrary-global.se)
- re-enables z-library as the new domain zlibrary-global.se is now available
  from the open web.   The announcement of the domain:

    https://www.reddit.com/r/zlibrary/comments/13whe08/mod_note_zlibraryglobalse_domain_is_officially/

  It is an official domain, it requires to log in to the "personal" subdomain
  only to download files, but the search works.

- changes the result template of zlibrary to paper.html, filling the appropriate fields
- implements language filtering for zlibrary
- implement zlibrary custom filters (engine traits)
- refactor and document the zlibrary engine
2023-07-07 21:36:51 +02:00
Hackurei cb92767f19 [feat] enigine: add CrowdView forum search engine 2023-07-07 21:36:11 +02:00
searxng-bot 4a2f310da3 [translations] update from Weblate
152f2008 - 2023-07-05 - return42 <markus.heiser@darmarit.de>
9dbf6b22 - 2023-07-01 - return42 <markus.heiser@darmarit.de>
4ad4c00f - 2023-07-01 - Bananhylsa <thayer@hjemmeserver.net>
2023-07-07 21:13:47 +02:00
Markus Heiser 5720844fcd [doc] rearranges Settings & Engines docs for better readability
We have built up detailed documentation of the *settings* and the *engines* over
the past few years.  However, this documentation was still spread over various
chapters and was difficult to navigate in its entirety.

This patch rearranges the Settings & Engines documentation for better
readability.

To review new ordered docs::

   make docs.clean docs.live

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2023-07-01 22:45:19 +02:00
searxng-bot 81c9a18456 [translations] update from Weblate
2238e87b - 2023-06-28 - jenishngl <jenishngl+codeberg@gmail.com>
c70d228a - 2023-06-24 - nogb <u8cn71wq@yogibo.anonaddy.me>
389c0c62 - 2023-06-24 - return42 <markus.heiser@darmarit.de>
656d9fcb - 2023-06-23 - return42 <markus.heiser@darmarit.de>
a9c9b116 - 2023-06-25 - alma <alma@users.noreply.translate.codeberg.org>
528b845f - 2023-06-24 - nogb <u8cn71wq@yogibo.anonaddy.me>
b8c50f23 - 2023-06-23 - return42 <markus.heiser@darmarit.de>
39f47c0f - 2023-06-23 - return42 <markus.heiser@darmarit.de>
ae0aa811 - 2023-06-24 - Fjuro <ifjuro@proton.me>
c8216259 - 2023-06-26 - lemonadeforlife <nahianlabiblimon44@gmail.com>
2023-06-30 11:49:07 +02:00
dalf fbb72fc1f4 Update searx.data - update_engine_descriptions.py 2023-06-29 13:59:25 +02:00
Markus Heiser 87e7926ae9 [fix] engine: Anna's Archive - grep results from '.js-scroll-hidden' elements
The renderuing of the WEB page is very strange; except the firts position all
other positions of Anna's result page are enclosed in SGML comments.  These
cooments are *uncommented* by some JS code, see query of the class
'.js-scroll-hidden' in Anna's HTML template [1].

[1] https://annas-software.org/AnnaArchivist/annas-archive/-/blob/main/allthethings/templates/macros/md5_list.html

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2023-06-29 09:32:57 +02:00
Markus Heiser e2df6b77a3 [mod] engine: Anna's Archive - additionl settings (content, sort, ext)
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2023-06-29 09:32:57 +02:00
Markus Heiser eafc2906f1 [mod] engine: Anna's Archive - fetch search arguments from search form
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2023-06-29 09:32:57 +02:00
Paolo Basso 7adb9090e5 [mod] engine: Anna's Archive - add language support 2023-06-29 09:32:57 +02:00
Paolo Basso e5637fe7b9 [feat] engine: implementation of Anna's Archive
Anna's Archive [1] is a free non-profit online shadow library metasearch engine
providing access to a variety of book resources (also via IPFS), created by a
team of anonymous archivists [2].

[1] https://annas-archive.org/
[2] https://annas-software.org/AnnaArchivist/annas-archive
2023-06-29 09:32:57 +02:00
Markus Heiser fd26f37073 [upd] make data.all
- ahmia_blacklist.txt
- currencies.json
- engine_descriptions.json
- engine_traits.json
- osm_keys_tags.json
- useragents.json

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2023-06-28 21:21:53 +02:00
Markus Heiser efea962504 [fix] simple template: preferences - add missing icon_smal import
Related: https://github.com/searxng/searxng/commit/2149e88bdd64#r119535272
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2023-06-28 18:36:52 +02:00
Paolo Basso 401561cb58 [mod] engine torznab - refactor & option to hide links
- torznab engine using types and clearer code
- torznab option to hide torrent and magnet links.
- document the torznab engine
- add myself to authors

Closes: https://github.com/searxng/searxng/issues/1124
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2023-06-28 10:03:44 +02:00
Markus Heiser da7c30291d [fix] Google API changed
It seems that Google is rolling out a modified WEB API [1][2].

In the past there was only the UI language in the `hl` argument but nowadays it
seems a combination of the UI language and the "search region" is mixed in this
argument and the `gl` argument has been removed.  I'm very surprised that google
is starting to mix the parameters of the UI with the parameters of the search
index.

This patch modifies the get_google_info(..) function.  Beside Google-WEB this
function is also used by other Google services, here are some examples to test
region & language of ..

- Google-WEB:    `!go dragon boat :en-CA`
- Google-News:   `!gon dragon boat :en-CA`
- Google-Videos: `!gov bmw :en-CA`
- Goolge-Images  `!goi bmw :en-CA`

- [1] https://github.com/searxng/searxng/issues/2515#issuecomment-1606294635
- [2] https://github.com/searxng/searxng/issues/2515#issuecomment-1607150817

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2023-06-26 18:28:09 +02:00
Markus Heiser e8706fb738 [fix] engine & network issues / documentation and type annotations
This patch fixes some quirks and issues related to the engines and the network.
Each engine has its own network and this network was broken for the following
engines[1]:

- archlinux
- bing
- dailymotion
- duckduckgo
- google
- peertube
- startpage
- wikipedia

Since the files have been touched anyway, the type annotaions of the engine
modules has also been completed so that error messages from the type checker are
no longer reported.

Related and (partial) fixed issue:

- [1] https://github.com/searxng/searxng/issues/762#issuecomment-1605323861
- [2] https://github.com/searxng/searxng/issues/2513
- [3] https://github.com/searxng/searxng/issues/2515

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2023-06-25 13:58:26 +02:00
searxng-bot 2e4a435134 [translations] update from Weblate
9512b92a - 2023-06-23 - Coccocoas_Helper <coccocoahelper@gmail.com>
ca08c51e - 2023-06-23 - Coccocoas_Helper <coccocoahelper@gmail.com>
56ad4f21 - 2023-06-21 - return42 <markus.heiser@darmarit.de>
3ee419d6 - 2023-06-21 - return42 <markus.heiser@darmarit.de>
2023-06-23 09:34:46 +02:00
Markus Heiser 86db08793b [fix] implement a JSONEncoder for the json format
This patch implements a simple JSONEncoder just to fix #2502 / on the long term
SearXNG needs a data schema for the result items and a json generator for the
result list.

Closes: https://github.com/searxng/searxng/issues/2505
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2023-06-19 19:49:44 +02:00
Markus Heiser fa1ef9a07b [mod] move some code from webapp module to webutils module (no functional change)
Over the years the webapp module became more and more a mess.  To improve the
modulaization a little this patch moves some implementations from the webapp
module to webutils module.

HINT: this patch brings non functional change

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2023-06-19 19:49:44 +02:00
searxng-bot 71b6ff07ca [translations] update from Weblate
98f61c70 - 2023-06-15 - alexgabi <alexgabi@disroot.org>
a1679b93 - 2023-06-13 - return42 <markus.heiser@darmarit.de>
ebd1d574 - 2023-06-13 - return42 <markus.heiser@darmarit.de>
b28a1da3 - 2023-06-13 - return42 <markus.heiser@darmarit.de>
56409bf0 - 2023-06-11 - return42 <markus.heiser@darmarit.de>
abc4916c - 2023-06-10 - return42 <markus.heiser@darmarit.de>
b1900abe - 2023-06-10 - return42 <markus.heiser@darmarit.de>
b48e84c4 - 2023-06-10 - return42 <markus.heiser@darmarit.de>
bf395e32 - 2023-06-10 - return42 <markus.heiser@darmarit.de>
c9c0a3c9 - 2023-06-10 - return42 <markus.heiser@darmarit.de>
3f50d31e - 2023-06-10 - return42 <markus.heiser@darmarit.de>
9da1c142 - 2023-06-09 - artnay <jiri.gronroos@iki.fi>
2023-06-16 09:20:43 +02:00
searxng-bot 1be27d5d83 [translations] update from Weblate
b40da1a3 - 2023-06-06 - return42 <markus.heiser@darmarit.de>
666ee7d4 - 2023-06-06 - return42 <markus.heiser@darmarit.de>
1e0e8ead - 2023-06-06 - return42 <markus.heiser@darmarit.de>
404b9937 - 2023-06-07 - Ivan Gabaldon <admin@inetol.net>
a627f9a1 - 2023-06-04 - return42 <markus.heiser@darmarit.de>
a234d2f8 - 2023-06-04 - gallegonovato <fran-carro@hotmail.es>
cc41f9b5 - 2023-06-02 - return42 <markus.heiser@darmarit.de>
24651eac - 2023-06-02 - return42 <markus.heiser@darmarit.de>
c37b0627 - 2023-06-02 - return42 <markus.heiser@darmarit.de>
9a435ea1 - 2023-06-02 - return42 <markus.heiser@darmarit.de>
40e0adad - 2023-06-02 - return42 <markus.heiser@darmarit.de>
6833b142 - 2023-06-02 - return42 <markus.heiser@darmarit.de>
00f397ad - 2023-06-02 - tentsbet <remendne@pentrens.jp>
7d3d4a97 - 2023-06-02 - return42 <markus.heiser@darmarit.de>
f7d713a4 - 2023-06-02 - return42 <markus.heiser@darmarit.de>
b1ec3160 - 2023-06-03 - ghose <correo@xmgz.eu>
04591a3a - 2023-06-02 - return42 <markus.heiser@darmarit.de>
cb3ac67c - 2023-06-02 - return42 <markus.heiser@darmarit.de>
fe81dbc7 - 2023-06-02 - return42 <markus.heiser@darmarit.de>
7882670f - 2023-06-02 - return42 <markus.heiser@darmarit.de>
38882f3b - 2023-06-02 - return42 <markus.heiser@darmarit.de>
c6df5047 - 2023-06-02 - return42 <markus.heiser@darmarit.de>
6ca23c3b - 2023-06-02 - return42 <markus.heiser@darmarit.de>
72f1ee09 - 2023-06-02 - return42 <markus.heiser@darmarit.de>
2023-06-09 07:07:51 +00:00
Markus Heiser 22b13f4fa5 [mod] tools.Config.get(): add missing type annotations
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2023-06-05 14:07:19 +02:00
Markus Heiser f3763d73ad [mod] limiter: blocklist and passlist (ip_lists)
A blocklist and a passlist can be configured in /etc/searxng/limiter.toml::

    [botdetection.ip_lists]
    pass_ip = [
      '51.15.252.168',  # IPv4 of check.searx.space
    ]

    block_ip = [
      '93.184.216.34',  # IPv4 of example.org
    ]

Closes: https://github.com/searxng/searxng/issues/2127
Closes: https://github.com/searxng/searxng/pull/2129
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2023-06-05 14:07:19 +02:00
Markus Heiser f77807257b [fix] engines: don't spam marginalia.nu with default settings
The engine configuration of marginalia [2][3][4][5] spams marginalia.nu with
requests from SearXNG instances [1].  It is not in the interest of SearXNG to
disturb other FOSS projects, so the engine will be removed::

    - name: marginalia
      engine: json_engine
      shortcut: mar
      categories: general
      paging: false
      # Key and license: https://www.marginalia.nu/marginalia-search/api/
      # index: 0 popular, 1 blogs, 2 big_sites, 3 default, 4 experimental
      search_url: https://api.marginalia.nu/<insert your key here>/search/{query}?index=4&count=20
      results_query: results
      url_query: url
      title_query: title
      content_query: description
      timeout: 1.5
      disabled: true
      about:
        website: https://www.marginalia.nu/
        official_api_documentation: https://api.marginalia.nu/
        use_official_api: true
        require_api_key: true
        results: JSON

[1] https://github.com/searxng/searxng/issues/1673
[2] https://github.com/searxng/searxng/pull/1627
[3] https://github.com/searxng/searxng/issues/1620
[4] https://news.ycombinator.com/item?id=35874640
[5] d82a858491/code/services-satellite/api-service/src/main/java/nu/marginalia/api/svc/ResponseCache.java (L12-L20)

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2023-06-05 08:23:17 +02:00
Markus Heiser 80aaef6c95
Merge pull request #2357 / limiter -> botdetection
The monolithic implementation of the limiter was divided into methods and
implemented in the Python package searx.botdetection.  Detailed documentation on
the methods has been added.

The methods are divided into two groups:

1. Probe HTTP headers

- Method http_accept
- Method http_accept_encoding
- Method http_accept_language
- Method http_connection
- Method http_user_agent

2. Rate limit:

- Method ip_limit
- Method link_token (new)

The (reduced) implementation of the limiter is now in the module
searx.botdetection.limiter.  The first group was transferred unchanged to this
module.  The ip_limit contains the sliding windows implemented by the limiter so
far.

This merge also fixes some long outstandig issue:

- limiter does not evaluate the Accept-Language correct [1]
- limiter needs a IPv6 prefix to block networks instead of IPs [2]

Without additional configuration the limiter works as before (apart from the
bugfixes).  For the commissioning of additional methods (link_toke), a
configuration must be made in an additional configuration file.  Without this
configuration, the limiter runs as before (zero configuration).

The ip_limit Method implements the sliding windows of the vanilla limiter,
additionally the link_token method can be used in this method.  The link_token
method can be used to investigate whether a request is suspicious. To activate
the link_token method in the ip_limit method add the following to your
/etc/searxng/limiter.toml::

    [botdetection.ip_limit]
    link_token = true


[1] https://github.com/searxng/searxng/issues/2455
[2] https://github.com/searxng/searxng/issues/2477
2023-06-03 06:00:15 +02:00
Markus Heiser 1a1ab34d9d [fix] URL percent-encoding in translations fail in babel
Closes: https://github.com/searxng/searxng/issues/2482
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2023-06-02 20:30:41 +02:00