Commit Graph

3952 Commits

Author SHA1 Message Date
Alexandre Flament
26d47fe587
Merge pull request #975 from return42/fix-723
[fix] remove unmaintained searx/templates/simple/simple.spec.txt
2022-03-17 19:41:23 +01:00
Markus Heiser
3922612775 [fix] remove unmaintained searx/templates/simple/simple.spec.txt
Files hasn't been updated since it initial commit in 2017

Closes: https://github.com/searxng/searxng/issues/723
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-03-17 11:38:00 +01:00
Alexandre Flament
dbe3eaabc9 Info: code refactoring & bug fixes 2022-03-16 22:26:36 +01:00
mrpaulblack
a1776ff57d [build] /static 2022-03-16 21:01:42 +01:00
mrpaulblack
6a8e168e25 [simple theme] use default font and font-size in info page 2022-03-16 21:01:22 +01:00
Markus Heiser
9622dbbc6b [upd] searx/translations/messages.pot
generated by::

  ./manage pyenv.cmd pybabel extract \
      -F babel.cfg \
      -o "searx/translations/messages.pot"\
      "searx/"

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-03-16 09:55:53 +01:00
Markus Heiser
784bf9ed15 [mod] move category and names of constants to searx/searxng.msg
Closes: https://github.com/searxng/searxng/issues/814
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-03-16 09:55:53 +01:00
Markus Heiser
b9cf3c82a1 [mod] add i18n infrastructure for SearXNG message files (searxng.msg)
With this patch ``searxng.msg`` files can be added to SearXNG.  In
``searxng.msg`` files messages can be defined which are not captured by babel's
gettext, like the generic names of the categories or messages that are stored in
constants.

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-03-16 09:55:53 +01:00
Markus Heiser
cd92a7eacd
Merge pull request #930 from return42/merge-user-doc2
Integrate the user documentation into the application
2022-03-13 23:12:46 +01:00
Alexandre Flament
1157462ff9 Various change on PR 930 2022-03-13 22:22:02 +01:00
Markus Heiser
59100e8525 [fix] add module for backward compatibility
cache_property has been added in py3.8 [1]

To support cache_property in py3.7 the implementation from 3.8 has been
copied to compat.py.  This code can be cleanup with EOL of py3.7.

[1] https://docs.python.org/3/library/functools.html#functools.cached_property

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-03-12 15:45:28 +01:00
Markus Heiser
8d83e4aeff [build] /static 2022-03-12 11:36:31 +01:00
Markus Heiser
3633dc5611 [simple] add CSS for /info pages
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-03-12 11:36:31 +01:00
Markus Heiser
b1912607ae [mod] replace /help by /info pages and include pages in project docs
This patch implements a bolierplate to share content from info-pages of the
SearXNG instance (URL /info) with the project documentation (path /docs/user).

The info pages are using Markdown (CommonMark), to include them in the project
documentation (reST) the myst-parser [1] is used in the Sphinx-doc build chain.

If base_url is known (defined in settings.yml) links to the instance are also
inserted into the project documentation::

    searxng_extra/docs_prebuild

[1] https://www.sphinx-doc.org/en/master/usage/markdown.html

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-03-12 11:36:31 +01:00
searxng-bot
e475828ed2 [translations] update from Weblate
7f5432c9 - 2022-03-11 - Matheus Henrique <niletcode@gmail.com>
1d7a266c - 2022-03-07 - Markus Heiser <markus.heiser@darmarit.de>
54256fcf - 2022-03-08 - Dmitry Zakharchenko <dmitz@disroot.org>
5240149c - 2022-03-08 - Dmitry Zakharchenko <dmitz@disroot.org>
db511b5a - 2022-03-07 - Deleted User <noreply+256@weblate.org>
114f4399 - 2022-03-04 - Markus Heiser <markus.heiser@darmarit.de>
2022-03-11 07:17:00 +00:00
Alexandre Flament
d597f36e07 [fix] simple: the clear button works without javascript
related to #928
2022-03-08 19:37:21 +00:00
Alexandre Flament
a250ddadb9 [enh] simple: basic ARIA fixes 2022-03-08 19:37:21 +00:00
Markus Heiser
53b5a804e2 [fix] engine mediathekviewweb: replace http links by https
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-03-07 19:49:16 +01:00
Martin Fischer
579334a7d8 [help] move about.md to searx/help/en/ 2022-03-07 08:29:00 +01:00
Alexandre Flament
740e3bc90f
Merge pull request #932 from dalf/static-file-hash
static files: add a hash as a query
2022-03-05 12:03:44 +01:00
Markus Heiser
20f4538e13 [fix] engine: Semantic Scholar (Science) // rework & fix
Closes: https://github.com/searxng/searxng/issues/939
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-03-05 11:53:41 +01:00
Alexandre Flament
1c7d8815fb [mod] URL for the static file contains the sha1
* allow to cache the static file forever
* avoid bugs when the static files are updated but not reloaded
2022-03-05 10:50:48 +00:00
Alexandre FLAMENT
041446d12a [build] /static 2022-03-04 08:28:58 +00:00
Alexandre FLAMENT
8ffbaa086a [simple] switch to the tablet layout at 79.75em
The previous value was 80em (1280px).
Some desktop screens have this resolution,
and tablet layout takes too much space in this configuration

This PR switch to the table layout for screen width strictly below 1280px.

Close https://github.com/searxng/searxng/issues/874
2022-03-04 08:26:02 +00:00
searxng-bot
ebcf78eaa5 [translations] update from Weblate
82b357ae - 2022-03-02 - Markus Heiser <markus.heiser@darmarit.de>
5aa11c25 - 2022-03-02 - Markus Heiser <markus.heiser@darmarit.de>
c188070f - 2022-02-25 - OctopusET <sumoon@seoulsaram.org>
9b93e452 - 2022-02-26 - Markus Heiser <markus.heiser@darmarit.de>
2a286e9a - 2022-02-25 - OctopusET <sumoon@seoulsaram.org>
2022-03-04 07:17:06 +00:00
Alexandre FLAMENT
28bccda78a [build] /static 2022-03-02 18:56:37 +00:00
Alexandre Flament
3d9e48b84e [simple] checkboxes can get the focusable
Do note that checkboxes in the engine tab are displayed reversed.
See: 3408d061aa/searx/templates/simple/preferences.html (L313)
A checkbox for an engine is checked when the engine is disabled.
2022-03-02 18:56:08 +00:00
Markus Heiser
0ddcc12474
Merge pull request #934 from searxng/update_data_update_ahmia_blacklist.py
Update searx.data - update_ahmia_blacklist.py
2022-03-01 07:54:58 +01:00
Markus Heiser
69f84d941f
Merge pull request #935 from searxng/update_data_update_firefox_version.py
Update searx.data - update_firefox_version.py
2022-03-01 07:53:33 +01:00
Markus Heiser
5508155252
Merge pull request #936 from searxng/update_data_update_wikidata_units.py
Update searx.data - update_wikidata_units.py
2022-03-01 07:52:54 +01:00
dalf
f4c6eba227 Update searx.data - update_currencies.py 2022-03-01 06:25:18 +00:00
dalf
6946c4566f Update searx.data - update_wikidata_units.py 2022-03-01 06:24:57 +00:00
dalf
49bc3971ae Update searx.data - update_firefox_version.py 2022-03-01 06:24:55 +00:00
dalf
6add9dd6d3 Update searx.data - update_ahmia_blacklist.py 2022-03-01 06:24:53 +00:00
Alexandre Flament
2e1d4fac5d [build] /static 2022-02-27 19:49:44 +01:00
Alexandre Flament
56bb1443c4 [fix] simple: display "Click on the magnifier..." only the mouse over the categories 2022-02-27 19:48:21 +01:00
Alexandre Flament
e435806505 [fix] simple: detect touch screen using media query
related to https://github.com/searxng/searxng/issues/928
2022-02-27 19:26:52 +01:00
mrpaulblack
e2a5dddf8e [build] /static 2022-02-26 22:32:28 +01:00
mrpaulblack
21e3c40516 [simple theme] replace Image_layout.js with flexbox CS impl.
* drop image_layout.js from simple theme
* move image_layout.js to oscar theme and delete common js dir (since its empty now)
* align top position of image detail modal with bottom position of search header
* use flexbox to display images; row height can be set via @results-image-row-height in defenitions.less
* display span title underneath each image with a max width of 12rem
* increase margin and padding around image article on desktop and tablet
* make article height smaller on phone layout (height of 6rem) to display more content on current view
* remove content from result, if the title and content matches
* use a group that cotains the flex image article, if images are mixed with other categories
* fix pylint issues in webapp.py
* use the default.html result template in unit tests (thanks @return42)
2022-02-26 22:31:47 +01:00
Paul Braeuning
3408d061aa
Merge pull request #924 from MontyQI/search-filters
Search filters changes
2022-02-26 10:16:06 +01:00
Monty
6d03fa002f [build] /static 2022-02-26 10:07:07 +01:00
Monty
b850178d26 Search filters changes
Better search filters view on mobile.
2022-02-26 10:05:23 +01:00
searxng-bot
338304078b [translations] update from Weblate
3ecf1edf - 2022-02-21 - Linerly <linerly@protonmail.com>
f6c9465b - 2022-02-23 - Markus Heiser <markus.heiser@darmarit.de>
988c0c74 - 2022-02-22 - Alexandre Flament <alex@al-f.net>
60fbd734 - 2022-02-22 - Markus Heiser <markus.heiser@darmarit.de>
2022-02-25 07:16:36 +00:00
Markus Heiser
8d937179ab
Merge pull request #913 from return42/add-artwork
[mod] add artwork to mixcloud & soundcloud engines
2022-02-21 22:24:40 +01:00
Markus Heiser
96ac99b1f6 [build] /static 2022-02-21 22:16:24 +01:00
Markus Heiser
b08b81b434 [mod] bandcamp & genius: in result set img_src instead thumbnail
Suggested-by: @dalf https://github.com/searxng/searxng/pull/900#issuecomment-1046009057
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-02-21 22:12:07 +01:00
Markus Heiser
bded1ee280 [fix] genius: add player an avoid exceptional programming
Add player:

- The players are just playing 30sec from the title.  Some of the player will be
  blocked because of a cross-origin request and some players will link to apple
  when you press the play button.

Avoid exceptions and (and BTW improve results)

-  ERROR   searx.engines.genius          : list index out of range

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-02-21 22:12:07 +01:00
Léon Tiekötter
de5062c10a
[mod] version formatting
Change SearXNG version formatting to YYYY.MM.DD-commit_hash
2022-02-21 21:18:37 +01:00
Alexandre Flament
8230603f48
Merge pull request #916 from dalf/pref_infinite_scroll2
Convert the infinite_scroll plugin as a preference (second version)
2022-02-21 12:49:04 +01:00
Alexandre Flament
1832ec742a [build] /static 2022-02-20 22:58:51 +01:00
Alexandre Flament
56e34947a6 [mod] infinite_scroll as preference
* oscar theme: code from searx/plugins/infinite_scroll.py
* simple theme: new implementation

Co-authored-by: Markus Heiser <markus.heiser@darmarIT.de>
2022-02-20 22:58:51 +01:00
Markus Heiser
5ec9eb8030 [mod] switch default theme from oscar to simple
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-02-20 18:36:41 +01:00
Markus Heiser
36aee70c24
Merge pull request #910 from tiekoetter/fix-909
[fix] google images engine: Fix 'scrap_img_by_id' function
2022-02-20 18:29:50 +01:00
Markus Heiser
2921d3cd17 [mod] add artwork to mixcloud & soundcloud engines
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-02-19 21:59:12 +01:00
Markus Heiser
efd81f9266 [build] /static 2022-02-19 15:13:09 +01:00
Markus Heiser
16d05ca285 [mod] simple theme: define a '.show-content-button'
With LESS function '.show-content-button' all the *Show-Media* links becomes
bottons.

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-02-19 15:12:50 +01:00
Markus Heiser
c2d9c93b3b [fix] image_proxy: allow HTTP redirects
Without redirects the load of various images will fail when image_proxy is
enabled [1].

[1] https://github.com/searxng/searxng/pull/910#issuecomment-1045966577
Suggested-by: @dalf [1]
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-02-19 14:34:02 +01:00
Markus Heiser
4a28b593c2 [fix] google images engine: Fix 'scrap_img_by_id' function
The 'scrap_img_by_id' function didn't return any longer anything useful.  This
fix allows the google images engine to present the full source image instead of
only the thumbnail.

The function scrap_img_by_id() is rpelaced by a fully rewrite to parse image
URLs by a regular expression. The new function parse_urls_img_from_js(dom)
returns a mapping of data-id to image URL.

Closes: https://github.com/searxng/searxng/issues/909
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-02-19 14:33:56 +01:00
Alexandre Flament
ace5401632
Merge pull request #900 from return42/fix-883
[fix] bandcamp: fix itemtype (album|track) and exceptions
2022-02-19 13:42:53 +01:00
Markus Heiser
e9a227c606
Merge pull request #893 from return42/mvw-video
[mod] mediathekviewweb engine: add data_src and use videos template
2022-02-19 00:55:46 +01:00
Markus Heiser
943a7fdcb5 [mod] mediathekviewweb engine: add iframe_src and use videos template
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-02-19 00:50:54 +01:00
Markus Heiser
fa3cd7a696 [build] /static 2022-02-18 22:46:51 +01:00
Markus Heiser
05c105b837 [fix] bandcamp: fix itemtype (album|track) and exceptions
BTW: polish implementation and show tracklist for albums

Closes: https://github.com/searxng/searxng/issues/883
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-02-18 22:44:43 +01:00
Alexandre Flament
29182eb1c9
Merge pull request #899 from dalf/limiter_update
[limiter] update
2022-02-18 22:17:26 +01:00
Alexandre Flament
bf2a2ed48f
Merge pull request #882 from return42/fix-873
[fix] replace embedded HTML by data_src
2022-02-18 20:55:40 +01:00
Markus Heiser
761885682d [build] /static 2022-02-18 19:00:51 +01:00
Markus Heiser
8acf540f0e [mod] simple theme: set height of embedded content (iframe)
This commit sets appropriate height of the (embedded) player from:

- soundcloud
- mixcloud
- deezer

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-02-18 19:00:51 +01:00
Markus Heiser
7352c6bc79 [mod] templates: rename field for <iframe> URL to iframe_src
Rename result field data_src to iframe_src

Suggested-by: @dalf https://github.com/searxng/searxng/pull/882#issuecomment-1037997402
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-02-18 19:00:49 +01:00
Markus Heiser
f5e8cfade2 [fix] simple theme: support browsers which do not have aspect-ratio
Suggested-by: @dalf https://github.com/searxng/searxng/pull/882#discussion_r805187303
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-02-18 19:00:02 +01:00
Markus Heiser
50ee7bcac6 [oscar] add scrolling="no" to iframes in HTML templates
Suggested-by: @dalf https://github.com/searxng/searxng/pull/882#discussion_r805180787
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-02-18 19:00:02 +01:00
Markus Heiser
795e8af61d [fix] hostname_replace.py: don't stop replace URL in fields
This is a rewrite of the hostname_replace.py that:

- don't stop to replace URL in fields ('data_src', 'audio_src') if there isn't a
  'parsed_url',
- adds a comment about keep or remove a result from the result list
- adds a loop over ['data_src', 'audio_src'] instead of doubling code lines

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-02-18 18:59:58 +01:00
searxng-bot
1084f5f42c [translations] update from Weblate
8daeaf72 - 2022-02-16 - mezysinc <mezysinc@mailsac.com>
f373b0a4 - 2022-02-13 - temp <temp@mykolab.com>
273ae271 - 2022-02-16 - Márton Farkas <farkasmrton@gmail.com>
956496a3 - 2022-02-12 - Alexandre Flament <alex@al-f.net>
acf6d3ae - 2022-02-15 - Markus Heiser <markus.heiser@darmarit.de>
aec5670e - 2022-02-11 - Markus Heiser <markus.heiser@darmarit.de>
2022-02-18 07:17:24 +00:00
Alexandre Flament
d1b7debac6 [limiter] update 2022-02-17 20:27:02 +01:00
Markus Heiser
ae8b174e93 [fix] replace peer.tube by peertube.biz
More peertube instances are listed at [1]

[1] https://instances.joinpeertube.org/instances

Closes: https://github.com/searxng/searxng/issues/881
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-02-13 22:48:09 +01:00
Markus Heiser
98cab4cf75 [mod] result_templates/default.html replace embedded HTML by data_src audio_src
Embedded HTML breaks SearXNG architecture.  To modularize, HTML is generated in
the templates (oscar & simple) and result parameter 'embedded' is replaced by
'data_src' (and 'audio_src'), an URL for embedded content (<iframe>).

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-02-13 14:20:47 +01:00
Markus Heiser
b9a2e8b387 [mod] hostname_replace: replace hostnames in result's data_src param
To test you need to redirect embeded videos (e.g.) from youtube to a invidios
instance.  Search for videos using engine `!youtube lebowski`.  The result URLs
and the embeded videos should link to the invidios instance.

Here is an example of such a `hostname_replace` configuration::

    hostname_replace:

      # youtube --> Invidious

      '(.*\.)?youtube-nocookie\.com': 'invidio.xamh.de'
      '(.*\.)?youtube\.com$': 'invidio.xamh.de'
      '(.*\.)?invidious\.snopyta\.org$': 'invidio.xamh.de'
      '(.*\.)?vid\.puffyan\.us': 'invidio.xamh.de'
      '(.*\.)?invidious\.kavin\.rocks$': 'invidio.xamh.de'
      '(.*\.)?inv\.riverside\.rocks$': 'invidio.xamh.de'

Closes: https://github.com/searxng/searxng/issues/873
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-02-13 14:20:47 +01:00
Markus Heiser
46e131fdad [mod] result_templates/videos.html: replace embedded HTML by data_src
Embedded HTML breaks SearXNG architecture.  To modularize, HTML is generated in
the templates (oscar & simple) and result parameter 'embedded' is replaced by
'data_src', an URL for embedded content (<iframe>).

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-02-13 14:20:47 +01:00
Alexandre Flament
a4942213a1
Merge pull request #892 from dalf/limiter-update
plugin limiter: check only /image_proxy and /search
2022-02-12 18:17:05 +01:00
Alexandre Flament
b99ccd7c02 plugin limiter: check only /image_proxy and /search
also adjust the number of req/time
2022-02-12 15:57:07 +01:00
Markus Heiser
9cd9dfd26e
Merge pull request #887 from unixfox/patch-5
Update the XPath for fetching the Google results
2022-02-12 15:11:27 +01:00
Alexandre Flament
782c81ec17
Merge pull request #884 from return42/disable-deezer
[mod] disable deezer engine by default
2022-02-11 22:39:18 +01:00
searxng-bot
eee41a2857 [translations] update from Weblate
085368cc - 2022-02-08 - akynr <ak.red@web.de>
9b531712 - 2022-02-09 - Justas Zabulionis <justas.zabulionis@gmail.com>
6e13d297 - 2022-02-06 - Markus Heiser <markus.heiser@darmarit.de>
b1ac1da2 - 2022-02-06 - Markus Heiser <markus.heiser@darmarit.de>
de117bfe - 2022-02-10 - Tamas Veres <zsumba1985@gmail.com>
7392a5b0 - 2022-02-10 - Markus Heiser <markus.heiser@darmarit.de>
a28a60d9 - 2022-02-07 - Markus Heiser <markus.heiser@darmarit.de>
2022-02-11 07:16:09 +00:00
Émilien Devos
7d3e8118b0
Update the XPath for fetching the Google results 2022-02-09 14:34:14 +01:00
Markus Heiser
f2e16904a5 [mod] disable deezer engine by default
To play content from deezer a account is needed, the majority of the SearXNG
won't have.

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-02-07 22:58:05 +01:00
Markus Heiser
906a0a99cd [fix] openstreatmap: load thumbnail from uploads.wikimedia.org
Openstreatmap images are now loaded from uploads.wikimedia.org instead of
commons.wikimedia.org to prevent redirects.

With `image_proxy` enabled images from commons.wikimedia.org cant be loaded
since they are redirected.  We already discussed this issue [875] and
@tiekoetter fixed this issue in PR [878].

Related-to:
- [875] https://github.com/searxng/searxng/issues/875
- [878] https://github.com/searxng/searxng/pull/878
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-02-07 13:05:52 +01:00
Markus Heiser
a967e59590 [pylint] searx/engines/wikidata.py (no functional change)
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-02-07 10:15:32 +01:00
Léon Tiekötter
1c151ae92b
[fix] wikidata: URL decoding and file extension handling
Add '.png' to the second img_src_name if it has the extension '.svg'.
Use urllib.parse.unquote for URL decoding.
2022-02-07 00:21:02 +01:00
Markus Heiser
a13c5d70c7 [fix] wikidata engine: select image with higher (not lower) priority
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-02-06 23:35:55 +01:00
Léon Tiekötter
a50f32bcfc
wikidata: load thumbnail instead of full image 2022-02-06 23:25:50 +01:00
Léon Tiekötter
560a14e77b
[fix] wikidata info box images
Wikidata info box images are now loaded from uploads.wikimedia.org instead of commons.wikimedia.org to prevent redirects

Co-authored-by: Markus Heiser <markus.heiser@darmarit.de>
2022-02-06 22:16:06 +01:00
Alexandre Flament
10e6881ca8
Merge pull request #867 from return42/fix-base_url_rand
[fix] invidious engine: store random base_url in param
2022-02-05 09:03:20 +01:00
Alexandre Flament
bf987bb608
Merge pull request #848 from not-my-profile/help-route
Introduce `/help` route
2022-02-05 08:52:19 +01:00
Martin Fischer
91527fbd6b [enh] avoid /about redirect in template links 2022-02-05 04:53:21 +01:00
Markus Heiser
24e2acf88e
Merge pull request #839 from dalf/docs_searx_utils
[mod] add documentation about searx.utils
2022-02-04 21:28:27 +00:00
Martin Fischer
07936060d1 preferences: Set autocomplete=off for form
Otherwise you can change the value of a select,
refresh the page and the preferences stay changed,
leaving the wrong impression that they were saved.
2022-02-04 21:11:29 +01:00
Markus Heiser
b35ef9789b [pylint] engines/invidious.py
Fix remarks from pylint and remove usless comments

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-02-04 15:42:06 +01:00
Markus Heiser
e2ec6b4211 [fix] invidious engine: store random base_url in param
Two different threads ( = two different user queries) can call the request
function in a row and then the response function.  The namespace will be same
since this is the same engine.

To keep exactly the same value ``base_url`` must be stored in params and then
retrieve using ``resp.search_params["base_url"]``.

Suggested-by: @dalf https://github.com/searxng/searxng/pull/862#discussion_r799324861
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-02-04 15:42:06 +01:00
Markus Heiser
ae804ddf40
Merge pull request #862 from return42/fix-858
[fix] solidtorrents engine - JSON API no longer exists
2022-02-04 14:38:36 +00:00
Markus Heiser
ddc2102a07 [fix] solidtorrents engine: store random bas_url in param
Two different threads ( = two different user queries) can call the request
function in a row and then the response function.  The namespace will be same
since this is the same engine.

To keep exactly the same value ``base_url`` must be stored in params and then
retrieve using ``resp.search_params["base_url"]``.

Suggested-by: @dalf https://github.com/searxng/searxng/pull/862#discussion_r799324861
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-02-04 14:55:21 +01:00
Markus Heiser
d6061b7c8a [mod] solidtorrents engine: add metadata & torrentfile
BTW: define min_len in eval_xpath_list of 'stats' list

Suggested-by: @dalf https://github.com/searxng/searxng/pull/862#pullrequestreview-872910744
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-02-04 14:53:42 +01:00
Markus Heiser
f9c4868142 [fix] solidtorrents engine: use get_torrent_size from searx.utils
Suggested-by: @dalf https://github.com/searxng/searxng/pull/862#pullrequestreview-872858489
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-02-04 14:53:42 +01:00
Markus Heiser
d92b3d96fd [fix] solidtorrents engine: JSON API no longer exists
The API endpoint, we where using does not exist anymore.  This patch is a
rewrite that parses the HTML page.

Related: https://github.com/paulgoio/searxng/issues/17
Closes: https://github.com/searxng/searxng/issues/858

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-02-04 14:53:37 +01:00
Markus Heiser
de32d543bc
Merge pull request #863 from searxng/dependabot/pip/master/black-22.1.0
Bump black from 21.12b0 to 22.1.0
2022-02-04 08:52:22 +00:00
Markus Heiser
2e5d562da3
Merge pull request #865 from searxng/dependabot/npm_and_yarn/searx/static/themes/simple/master/sharp-0.30.0
Bump sharp from 0.29.3 to 0.30.0 in /searx/static/themes/simple
2022-02-04 08:52:04 +00:00
Markus Heiser
964902e779 [fix] issue reported by pylint 22.1.0
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-02-04 09:45:35 +01:00
searxng-bot
cc99386523 [translations] update from Weblate
bf218121 - 2022-01-31 - Markus Heiser <markus.heiser@darmarit.de>
ba9e50fd - 2022-01-30 - Genghis Khan <genghiskhan@gmx.ca>
258505ba - 2022-01-29 - Markus Heiser <markus.heiser@darmarit.de>
dacbf882 - 2022-01-31 - Markus Mikkonen <markus.mikkonen@outlook.com>
968e7f6b - 2022-02-02 - Marco Ciampa <ciampix@posteo.net>
2022-02-04 07:14:12 +00:00
dependabot[bot]
6eee2d8771
Bump sharp from 0.29.3 to 0.30.0 in /searx/static/themes/simple
Bumps [sharp](https://github.com/lovell/sharp) from 0.29.3 to 0.30.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.29.3...v0.30.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-04 07:10:14 +00:00
Alexandre Flament
9fae80facb
Merge pull request #618 from dalf/limiter
[enh] limiter plugin
2022-02-02 09:24:34 +01:00
Alexandre Flament
f79b0fce06 [enh] limiter plugin
can replace filtron:
* rate limite the number of request per IP and per (IP, User-Agent)
* block some bots

use Redis
data stored in Redis never contains the IP addresses, only HMAC using the secret_key

Co-authored-by: Markus Heiser <markus.heiser@darmarit.de>
2022-02-02 09:15:59 +01:00
Markus Heiser
07f7289e23
Merge pull request #849 from return42/fix-787
[fix] engines description - currency_convert.py
2022-02-01 07:19:05 +00:00
Markus Heiser
50a56532c4 [pylint] engines/currency_convert.py
Fix remarks from pylint

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-02-01 08:02:42 +01:00
Markus Heiser
314ea2dc61
Merge pull request #852 from searxng/update_data_update_ahmia_blacklist.py
Update searx.data - update_ahmia_blacklist.py
2022-02-01 06:52:57 +00:00
Markus Heiser
4d0bd47ff0
Merge pull request #853 from searxng/update_data_update_firefox_version.py
Update searx.data - update_firefox_version.py
2022-02-01 06:52:19 +00:00
Markus Heiser
20cbabff96
Merge pull request #851 from searxng/update_data_update_currencies.py
Update searx.data - update_currencies.py
2022-02-01 06:48:54 +00:00
dalf
f4f90aa3a4 Update searx.data - update_firefox_version.py 2022-02-01 06:23:16 +00:00
dalf
7b402e1aa0 Update searx.data - update_ahmia_blacklist.py 2022-02-01 06:23:01 +00:00
dalf
1c47f4b6e0 Update searx.data - update_currencies.py 2022-02-01 06:23:00 +00:00
dalf
e78dc45d1e Update searx.data - update_wikidata_units.py 2022-02-01 06:22:58 +00:00
Martin Fischer
14338e2c3b [enh] generate navigation for help pages 2022-02-01 06:29:22 +01:00
Martin Fischer
c53c295573 [enh] make searx.user_help use an explicit TOC
When we have multiple help pages we want them
to be displayed in a specific order.
2022-02-01 06:29:22 +01:00
Martin Fischer
0f7bcd17b2 [build] /static 2022-02-01 06:29:19 +01:00
Martin Fischer
5012d06e72 [simple] allow .tabs to be used for help pages 2022-02-01 06:28:26 +01:00
Martin Fischer
fb9eedbf40 [enh] introduce /help route
Translation will be implemented in the future.
For now the "en" in /help/en/<pagename> is hardcoded.
2022-02-01 06:28:26 +01:00
Martin Fischer
b93711b45d [help] remove link from about.md title
Now that about.html extends page_with_header.html
it already has a link to the start page and removing
the link makes it easier to extract the page title
from the Markdown for the following commit.
2022-02-01 06:28:26 +01:00
Martin Fischer
08bb3a5f3a [pyright:basic] searx.user_help 2022-02-01 06:28:26 +01:00
Martin Fischer
e931590312 [build] /static 2022-02-01 06:22:44 +01:00
Martin Fischer
b6200563ba [simple] improve margin of #linkto_preferences
Co-authored-by: Paul Braeuning <paul@paulgo.io>
2022-02-01 06:22:29 +01:00
Markus Heiser
15320b5eec [fix] engines description - currency_convert.py
Currency engine has DuckDuckGo metadata

In the engine selector of the preferences window, the currency search engine has
the same metadata and wikidata url as duckduckgo, I'd assume there should be a
difference of some sort there clarifying what source the currency uses or, if
it's a duckduckgo service, at least clarifying that it's a currency service by
duck duck go.

Closes: https://github.com/searxng/searxng/issues/787
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-01-31 23:17:28 +01:00
Martin Fischer
743353dd09 [simple] add aria-label to preferences link 2022-01-31 12:00:11 +01:00
Martin Fischer
e7c0f4e877 [simple] link preferences on /about and /stats
We want to link the preferences from every page
(except of course the preferences page).
2022-01-31 11:57:24 +01:00
Martin Fischer
c82b9c68d2
Merge pull request #843 from not-my-profile/simple-page-with-header 2022-01-31 11:14:48 +01:00
Markus Heiser
60e7fee47a
Merge pull request #475 from return42/tineye
[enh] engine - add Tineye reverse image search
2022-01-31 08:51:35 +01:00
Alexandre Flament
2d5929cc59 [mod] searx.utils: more typing 2022-01-30 22:14:12 +01:00
Alexandre Flament
ebd3013a1a [mod] tineye engine: minor changes
* remove "disable: false" in settings.yml
* use the json() method from httpx.Response (faster character encoding detection)
2022-01-30 20:49:22 +01:00
Léon Tiekötter
a6673a1a94 [fix] 1x engine
1x changed the XML result layout.
2022-01-30 19:48:40 +01:00
Martin Fischer
79dbbd4d99 [build] /static 2022-01-30 17:29:21 +01:00
Martin Fischer
6f0ec7e58f [simple] introduce page_with_header.html template
Previously the preferences & stats templates contained the markup:

<a href="{{ url_for('index') }}"><h1><span>SearXNG</span></h1></a>

There are many things wrong with this:

1. the markup was duplicated

2. the CSS needed to be changed whenever a new page wanted to use this
   header (since the CSS used page-specific selectors)

3. h1 should be reserved for the actual page title
   (e.g. Preferences or Engine stats)

4. the image was set via CSS which also set:

       span { visibility: hidden; }

   which however removes the alternative text from the accessibility
   tree (meaning screen readers will ignore it).

This commit fixes all these problems.
2022-01-30 17:29:21 +01:00
Markus Heiser
a6b879f19c [mod] tineye engine: set engine_type to 'online_url_search'
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-01-30 16:30:52 +01:00
Markus Heiser
e92d40c854 [enh] implement a OnlineUrlSearchProcessor
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-01-30 16:05:08 +01:00
Alexandre Flament
0eacc46ee3 [mod] add documentation about searx.utils
This module is a toolbox for the engines.
Is should be documented.

In addition, searx/utils.py is checked by pylint.
2022-01-29 22:49:42 +01:00
Alexandre Flament
068155df88 [build] /static 2022-01-29 14:44:05 +01:00
Alexandre Flament
dc4caa5a39 [fix] simple theme: /preferences: cookies table is LTR
close #827
2022-01-29 14:42:12 +01:00
Martin Fischer
6a366c9807
Merge pull request #838 from dalf/remove_deprecated_code
[mod] remove deprecate code
2022-01-29 10:13:56 +01:00
Alexandre Flament
f3f61df6a0 [mod] remove deprecate code
remove code to support Python 3.5 and Python 3.6
2022-01-29 08:54:12 +01:00
Alexandre Flament
116802852d [fix] ina engine
based on a45408e8e2
2022-01-28 22:33:41 +01:00
Markus Heiser
b7f74fbe42 [mod] tineye - add some documentation
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-01-28 09:06:44 +01:00
Allen
880555e263 [enh] engine - add Tineye reverse image search
Other optional parameter ..

`&sort=crawl_date`
    can be appended to search_string to sort results by date.

`&domain=example.org`
    can be implemented to search_string to get results from just one domain.

Public instances could get relatively fast timed-out for 3600s.

--

Merged from @allendema's commit [1] and slightly modfied / see [2].

Related-to: [1] 455b2b4460
Related-to: [2] https://github.com/searx/searx/pull/3040
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-01-28 09:06:44 +01:00
searxng-bot
43a262497b [translations] update from Weblate
80b99072 - 2022-01-26 - Markus Heiser <markus.heiser@darmarit.de>
32354577 - 2022-01-26 - Markus Heiser <markus.heiser@darmarit.de>
38737f21 - 2022-01-26 - Markus Heiser <markus.heiser@darmarit.de>
f1658c80 - 2022-01-26 - Markus Heiser <markus.heiser@darmarit.de>
3172618b - 2022-01-26 - Markus Heiser <markus.heiser@darmarit.de>
5063d261 - 2022-01-26 - Markus Heiser <markus.heiser@darmarit.de>
69df6ff6 - 2022-01-26 - Markus Heiser <markus.heiser@darmarit.de>
51bd2e18 - 2022-01-26 - Markus Heiser <markus.heiser@darmarit.de>
f6dea2a9 - 2022-01-26 - Markus Heiser <markus.heiser@darmarit.de>
d6230142 - 2022-01-26 - Markus Heiser <markus.heiser@darmarit.de>
4d07658c - 2022-01-26 - Markus Heiser <markus.heiser@darmarit.de>
e3798ef7 - 2022-01-26 - Markus Heiser <markus.heiser@darmarit.de>
bc99fe05 - 2022-01-26 - Markus Heiser <markus.heiser@darmarit.de>
2811901d - 2022-01-26 - Markus Heiser <markus.heiser@darmarit.de>
2022-01-28 07:16:43 +00:00
Alexandre Flament
4f82ab36a9
Merge pull request #817 from not-my-profile/pyright-01
Pyright 01
2022-01-27 23:18:41 +01:00
Léon Tiekötter
0cbf73a1f4
Allow 'using_tor_proxy' to be set for each engine individually
Check 'using_tor_proxy' for each engine individually instead of checking globally

[fix] searx.network: update _rdns test to the last httpx version

Co-authored-by: Alexandre Flament <alex@al-f.net>
2022-01-27 22:37:02 +01:00
Martin Fischer
506169f312 [pyright] remove no longer needed assertion
The pyright bug[1] for which the assertion was added has been fixed.

[1]: https://github.com/microsoft/pyright/issues/2930
2022-01-27 22:17:16 +01:00
Martin Fischer
b767752d0c [pyright:basic] searx.webapp 2022-01-27 22:17:16 +01:00
Martin Fischer
640c404844 [pyright:strict] searx.search.checker.background 2022-01-27 22:07:12 +01:00
Martin Fischer
7f89adc5f3 [pyright:strict] searx.shared.shared_abstract 2022-01-27 22:07:12 +01:00
Paul Braeuning
2c6bd2adf6
Merge pull request #825 from MontyQI/ui-changes
Simple theme uppercase buttons
2022-01-26 18:09:11 +01:00
Monty
f59afc8dd2 Uppercase buttons 2022-01-26 16:54:15 +01:00
Markus Heiser
ccffab3a43
Merge pull request #813 from MarcAbonce/change-wolfram-category
Move WolframAlpha away from Science category
2022-01-26 14:10:19 +01:00
Markus Heiser
e5f266065c
Merge pull request #824 from dalf/fix-simple-pref-checker
[fix] simple theme: don't crash when the checker is enabled
2022-01-25 23:01:31 +01:00
Alexandre Flament
dfb9ca527d [fix] simple theme: don't crash when the checker is enabled
The macro "checkbox" in macros.html uses the macro "icon_small"
from icons.html

The commit imports icon_small in macros.html to fix the issue.
It works because the macros in macros.html are imported with the Jinja2 context.

See https://jinja.palletsprojects.com/en/3.0.x/templates/#import-visibility

close #819
2022-01-25 22:03:21 +01:00
Markus Heiser
10c9b9775d [mod] improve setup of invidious engine
- My experience is, that a timeout of 5 sec is not need, I got fast response
  less than a second.

- https://invidious.tube/ redirects to http://ww25.invidious.tube/
  - in SearXNG defaults the http protocol is unsafe and raise an error
  - https://ww25.invidious.tube has SSL_ERROR_UNSAFE_NEGOTIATION

Related-to: https://github.com/searxng/searxng/issues/821
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-01-25 19:02:11 +01:00
Alexandre Flament
81453a0eba
Merge pull request #811 from return42/enh-788
[mod] configuration to overwrite engine description
2022-01-25 06:55:12 +01:00
Alexandre Flament
576eab04d2
Merge pull request #802 from MontyQI/Icon-update
Changed preferences icon to settings icon in gruntfile
2022-01-24 22:05:55 +01:00
Marc Abonce Seguin
1311745f24 move WolframAlpha away from Science category 2022-01-23 23:24:02 -06:00
Markus Heiser
e0b284e427 [mod] configuration to overwrite engine description
Engine description can be configured, this is needed e.g. by custom search
engines.  Here is an example of a command engine with a description in the about
section::

    - name: locate
      engine: command
      command: ['locate', '{{QUERY}}']
      disabled: true
      categories: files
      about:
        description: local files
        website: 'https://www.man7.org/linux/man-pages/man1/locate.1.html'
      delimiter:
          chars: ' '
          keys: ['line']

Closes: https://github.com/searxng/searxng/issues/788
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-01-23 20:55:14 +01:00
Alexandre Flament
61853aa0fb
Merge pull request #799 from return42/brave-complete
Add autocompleter from Brave
2022-01-23 19:23:06 +01:00
Markus Heiser
e9588b70a6 [fix] brave autocompleter: charset_normalizer issues
Use httpx.Response.json() to avoid charset_normalizer issues:

DEBUG   charset_normalizer            : override steps (5) and chunk_size (512) as content does not fit (153 byte(s) given) parameters.
INFO    charset_normalizer            : ascii passed initial chaos probing. Mean measured chaos is 0.000000 %
DEBUG   charset_normalizer            : ascii should target any language(s) of ['Latin Based']
INFO    charset_normalizer            : ascii is most likely the one. Stopping the process.

[1] https://www.python-httpx.org/api/#response

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-01-23 17:22:13 +01:00
Markus Heiser
9c5bac4c43 [pylint] searx/autocomplete.py
Fix remarks from pylint, BTW set SPDX-License-Identifier.

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-01-23 09:12:03 +01:00
Martin Fischer
105c5a6a98 [help] stop rendering documentation with Jinja2
To facilitate translation of the user documentation we move
the templating logic outside of the user documentation.
2022-01-23 08:01:55 +01:00
Martin Fischer
284ac8bfd8 [help] convert about.html to Markdown
To facilitate translation the new user documentation shall be written in
Markdown (which is more human-friendly than HTML and reStructuredText).
2022-01-23 08:01:55 +01:00
Martin Fischer
05149db4c1 [help] render user documentation once on startup
Currently we have two kinds of user documentation:

* the about page[1] which is written in HTML and part of the web
  application and can therefore link instance-specific pages
  (like e.g. the preferences) via Jinja variables

* the Sphinx documentation[2] which is written in reStructuredText
  and cannot link instance-specific pages since it doesn't know
  which instance the user is using

The plan is to integrate the user documentation currently in Sphinx
into the application, so that it can also link instance specific pages.
We also want to enable the user documentation to be translated.

This commit implements the first step in this endeavor (see #722).

[1]: searx/templates/__common__/about.html
[2]: docs/user/ (currently served at https://docs.searxng.org/user/)
2022-01-23 08:01:55 +01:00
Alexandre Flament
382f4f8fb0
Merge pull request #801 from dalf/fix-checker
[fix] checker: fix image fetch
2022-01-22 19:29:29 +01:00
Monty
80530befdc [build] /static 2022-01-22 17:23:43 +01:00
Monty
91ca5d1613 Changed preferences icon to settings icon in gruntfile 2022-01-22 17:14:19 +01:00
Alexandre Flament
5439dd5fb1 [fix] checker: fix image fetch
Since https://github.com/searxng/searxng/pull/354
the searx.network.stream(...) returns a tuple

This commits update the checker code according to
this function signature change.
2022-01-22 16:11:42 +01:00
Alexandre Flament
f01ddd1932
Merge pull request #775 from return42/redis-4.1.1
Revert "[hotfix] interim fix to get docker-build of CI without issues"
2022-01-22 15:56:15 +01:00
Allen
b8c98c4c0d [enh] Add autocompleter from Brave
Raw response example: https://search.brave.com/api/suggest?q=how%20to:%20with%20j

Headers are needed in order to get a 200 response, thus Searx user-agent is used.

Other URL param could be  '&rich=false' or  '&rich=true'.

Cherry-pick: 71786bf9cb
2022-01-21 14:39:10 +01:00
searxng-bot
9b3122a84e [translations] update from Weblate
f3f70b7d - 2022-01-20 - Genghis Khan <genghiskhan@gmx.ca>
c66d23fb - 2022-01-15 - Linerly <linerly@protonmail.com>
c2b9f7f7 - 2022-01-18 - Markus Heiser <markus.heiser@darmarit.de>
159ec416 - 2022-01-18 - Markus Heiser <markus.heiser@darmarit.de>
8184a23b - 2022-01-17 - lucky13820 <hello@ryanyao.design>
c4b476d4 - 2022-01-18 - Go2SheeP <allen.ccccnm@gmail.com>
eaf18ed5 - 2022-01-17 - Markus Heiser <markus.heiser@darmarit.de>
e7fec156 - 2022-01-18 - Markus Heiser <markus.heiser@darmarit.de>
99368a91 - 2022-01-18 - Markus Heiser <markus.heiser@darmarit.de>
a8b23af9 - 2022-01-19 - Markus Heiser <markus.heiser@darmarit.de>
7af1ba21 - 2022-01-17 - Genghis Khan <genghiskhan@gmx.ca>
0af5a3ee - 2022-01-15 - Alexandre Flament <alex@al-f.net>
a448183b - 2022-01-14 - Markus Heiser <markus.heiser@darmarit.de>
ea4f95cf - 2022-01-19 - Markus Heiser <markus.heiser@darmarit.de>
2f3e7ac9 - 2022-01-17 - Iosevka <iosevka@protonmail.com>
c28ae5a8 - 2022-01-17 - Markus Heiser <markus.heiser@darmarit.de>
b664bd3b - 2022-01-17 - Pham Nguyen <akizminet@gmail.com>
2022-01-21 07:16:40 +00:00
Martin Fischer
96a1f79c6d
Merge pull request #773 from not-my-profile/typing
More typing
2022-01-18 16:28:32 +01:00
Markus Heiser
1a0760c10a [fix] googel engine - "some results are invalids: invalid content"
Fix google issues listet in the `/stats?engine=google` and message::

    some results are invalids: invalid content

The log is::

    DEBUG   searx                         : result: invalid content: {'url': 'https://de.wikipedia.org/wiki/Foo', 'title': 'Foo - Wikipedia', 'content': None, 'engine': 'google'}
    WARNING searx.engines.google          : ErrorContext('searx/search/processors/abstract.py', 111, 'result_container.extend(self.engine_name, search_results)', None, 'some results are invalids: invalid content', ()) True

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-01-18 13:23:35 +01:00
Markus Heiser
f0102a95c9 [fix] google engine: remove adds and fix mobile_ui selector
1. Fix issue reported in comment [1]
2. Fix XPath selector for the response of google's mobile UI, reported in
   comment [2]

[1] https://github.com/searxng/searxng/pull/777#issuecomment-1015121322
[2] https://github.com/searxng/searxng/pull/777#issuecomment-1015236238

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-01-18 11:05:45 +01:00
Alexandre Flament
b972df255a
Merge pull request #776 from mrpaulblack/simple-ltr-vars
[simple theme] dont hardcode border radius
2022-01-18 07:56:03 +01:00
Émilien Devos
6670063e0d
Update XPath for Google engine 2022-01-17 21:49:57 +00:00
mrpaulblack
6c1a64d4b3 [build] /static 2022-01-17 22:35:22 +01:00
mrpaulblack
7a0f5e6b19 [simple theme] dynamic border radius in CSS 2022-01-17 22:35:02 +01:00
Markus Heiser
e85744c254 Revert "[hotfix] interim fix to get docker-build of CI without issues"
This reverts interim fix from commit 50c4b58db and adds requirement
`redis==4.1.1`.

The interim fix was needed by Alpine images (Docker) [1] and has been fixed in
commit [2] merged with the patch series from [3].  In redis-py version 4.1.1
this pach has been released on PyPi [4].

[1] https://github.com/redis/redis-py/issues/1869
[2] https://github.com/redis/redis-py/commit/1fc1233f
[3] https://github.com/redis/redis-py/pull/1854
[4] https://github.com/redis/redis-py/issues/1880

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-01-17 18:03:29 +01:00
Martin Fischer
96655cbd4e [typing] add type hints to webapp.py 2022-01-17 11:42:48 +01:00
Martin Fischer
193b0efd12 [typing] add results.UnresponsiveEngine 2022-01-17 11:42:48 +01:00
Martin Fischer
0c6a09cae3 [refactor] remove never used parameter 2022-01-17 11:42:48 +01:00
Martin Fischer
def62c3a47 [typing] add type hints for dictionaries 2022-01-17 11:42:48 +01:00
Martin Fischer
6d43cf7952 [typing] add optional attrs to Plugin 2022-01-17 11:42:48 +01:00
Martin Fischer
fdf562bc32 [typing] add results.Timing 2022-01-17 11:42:48 +01:00
Martin Fischer
1ed618222f [typing] add ExtendedRequest
webapp.py monkey-patches the Flask request global.
This commit adds a type cast so that e.g. Pyright[1]
doesn't show "Cannot access member" errors everywhere.

[1]: https://github.com/microsoft/pyright
2022-01-17 11:18:17 +01:00
Alexandre Flament
0c036ae294
Merge pull request #750 from dalf/simple-rtl
Simple theme: implement RTL
2022-01-16 20:29:34 +01:00
Alexandre Flament
e07417848f
Merge pull request #695 from return42/fix-sp
[fix] startpage engine / modified API
2022-01-16 20:27:36 +01:00
Alexandre Flament
468619abcb [build] /static 2022-01-16 18:52:46 +01:00
Alexandre Flament
d000288ad0 [enh] simple theme: RTL support
* mirror all inline SVGs so that direction SVGs display correctly on RTL
* set the bold list element in info box to RTL so the colon gets displayed on the right side
* set correct .ltr function for the left border on the search button in #q
* move text to the right in autocomplete
* move search form in lign with result article on RTL
* add the correct padding for img thumbnails in categories like music on RTL
* apply RTL to result table for map results
* align text in tables part of /preferences on RTL
* move burger menu on index page to the left on RTL
* fix positioning of drop down arrow on select boxes on RTL
* align result URL on the right (written LTR)
* align vim hotkeys help on the left since it is not translated
* image detail:
  * labels (author, format, URL, etc...) are written on the right,
    values are on the left.
  * URL are written LTR and overflow on the right
2022-01-16 18:51:11 +01:00
Alexandre Flament
2084d7b1ed [mod] simple theme: change stylelint configuration
* disable declaration-empty-line-before
  https://stylelint.io/user-guide/rules/list/declaration-empty-line-before/
  this change allows to mix CSS declarations and LESS mixins without empty lines:

  #something {
    display: flex;
    .ltr-left(60rem); // no mandatory empty line before this one
  }

* disable no-invalid-position-at-import-rule
  https://stylelint.io/user-guide/rules/list/no-invalid-position-at-import-rule/

  this change allows to declare some mixins and then import another .less file:
  for example:

  .ltr-left(@offset) {
    left: @offset;
  }
  @import "style.less";
2022-01-16 18:50:19 +01:00
Alexandre Flament
f9271d595f [fix] startpage: workaround to use the startpage network
workaround for the issue #762
2022-01-15 22:56:34 +01:00
Alexandre Flament
32874dbf7f
Merge pull request #742 from return42/mysql
[mod] engine mysql_server: make port configurable
2022-01-15 21:35:34 +01:00
Martin Fischer
599d882d0a
Merge pull request #754 from return42/fix-751
[theme] /preferences: rename "Method" to "HTTP Method"
2022-01-14 18:42:49 +01:00
Markus Heiser
580815a9a5 [fix] stop less grunt runner on missing files
The less grunt runner silently ignore missing files and continue with the build[1]::

    Running "less:production" (less) task
    >> Destination css/searxng.min.css not written because no source files were found.
    >> 1 stylesheet created.
    >> 1 sourcemap created.

Add filter function that calls grunt.fail() if the scr file does not exists.

[1] https://github.com/searxng/searxng/pull/750#discussion_r784357031
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-01-14 13:16:24 +01:00
Markus Heiser
08b38a8bfd [fix] simple theme: description of HTTP method
Suggested-by: @not-my-profile https://github.com/searxng/searxng/pull/754#issuecomment-1012921096
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-01-14 10:07:09 +01:00
Markus Heiser
e45dfb334b [theme] /preferences: rename "Method" to "HTTP Method"
Closes: https://github.com/searxng/searxng/issues/751
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-01-14 08:29:04 +01:00
searxng-bot
ce018d013b [translations] update from Weblate
0ca15e28 - 2022-01-11 - Allan Nordhøy <epost@anotheragency.no>
dd494ce7 - 2022-01-11 - Markus Heiser <markus.heiser@darmarit.de>
7e4e914a - 2022-01-10 - k2s <martin.minka@gmail.com>
b4915a2f - 2022-01-10 - Markus Heiser <markus.heiser@darmarit.de>
832d5cf9 - 2022-01-13 - Genghis Khan <genghiskhan@gmx.ca>
546ad69a - 2022-01-08 - Alexandre Flament <alex@al-f.net>
f14bd241 - 2022-01-09 - Markus Heiser <markus.heiser@darmarit.de>
2815009a - 2022-01-07 - Markus Heiser <markus.heiser@darmarit.de>
2022-01-14 07:17:46 +00:00
Martin Fischer
d9709df740 [fix] make BooleanChoices only set cookies that vary from the default
The bug was inadvertently introduced by the refactor in
180d4d068b.

Fixes #746.
2022-01-13 19:43:49 +01:00
Alexandre Flament
687bdef410
Merge pull request #740 from return42/fix-bang
[fix] get_bang_url: handle ambiguous !!bangs without error
2022-01-12 22:00:18 +01:00
Markus Heiser
a7c3c352d8 [upd] searx/data/external_bangs.json
Updated external bangs by::

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

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-01-12 19:37:13 +01:00
Markus Heiser
7cdd31440e [fix] external bangs: don't overwrite Bangs in data trie
Bangs with a `*` suffix (e.g. `!!d*`) overwrite Bangs with the same
prefix (e.g. `!!d`) [1].  This can be avoid when a non printable character is
used to tag a LEAF_KEY.

[1] https://github.com/searxng/searxng/pull/740#issuecomment-1010411888

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-01-12 19:37:13 +01:00
Markus Heiser
50c4b58db6 [hotfix] interim fix to get docker-build of CI without issues
There is an issue with redis v4.1.0 [1] / for the interim lets remove this
python dependency.

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

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-01-12 09:31:12 +01:00
Martin Fischer
cd8ce22f86 [themes] add comma before "but" in new sentence
Closes #739.
2022-01-12 08:26:23 +01:00
Markus Heiser
bf593af423 [mod] engine mysql_server: make port configurable
Cherry piked from https://github.com/searx/searx/commit/82ac634070

Suggested-by: https://github.com/searx/searx/issues/3117
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-01-11 23:47:40 +01:00
Markus Heiser
977e9a4330
Merge pull request #686 from return42/lib_redis
Add redis DB and connector
2022-01-11 19:55:14 +01:00
Markus Heiser
6d7e86eece [fix] get_bang_url: handle ambiguous !!bangs without error
An ambiguous bang like `!!d` raises an exception in function get_bang_url().  A
bang is only unique when the bang_definition from get_bang_definition_and_ac() is
a string / for a ambiguous bang the returned bang_definition is a dictionary.

Reported-by: user prg at #searxng:matrix.org on 2022/01/11
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-01-11 09:58:10 +01:00
Markus Heiser
3457408285 [build] /static 2022-01-10 17:42:13 +01:00
Markus Heiser
85159ad307 [fix] autocomple.js: register li.onmousedown instead li.onclick
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-01-10 17:30:57 +01:00
Markus Heiser
6420322cd1
Merge pull request #729 from k2s/fix-tokens
fix(security): filtered_engines were not correctly evaluating validate_token()
2022-01-10 11:51:45 +01:00
Markus Heiser
df238e944c [mod] starpage engine: add comment about Startpage's FFox add-on
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-01-10 11:22:38 +01:00
Markus Heiser
21e884f369 [fix] startpage engine: fetch CAPTCHA & issues related to PR-695
In case of CAPTCHA raise a SearxEngineCaptchaException and suspend for 7 days.
When get_sc_code() fails raise a SearxEngineResponseException and suspend for 7
days.

[1] https://github.com/searxng/searxng/pull/695

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-01-10 11:22:38 +01:00
Markus Heiser
2f4e567e90 [fix] Get an actual sc argument from startpage's home page.
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-01-10 11:22:38 +01:00
Markus Heiser
1cbcddb3f7 [pylint] Startpage engine
Fix remarks from pylint

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-01-10 11:22:38 +01:00
Markus Heiser
f1f5e69c42 [fix] startpage engine - avoid captcha
Startpage has introduced new anti-scraping measures that make SearXNG instances
run into captchas:

1. some arguments has been removed and a new `sc` has been added.
2. search path changed from `do/search` to `sp/search`
3. POST request is no longer needed

Closes: https://github.com/searxng/searxng/issues/692
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-01-10 11:22:12 +01:00
Martin Fischer
576e19dad1 [fix] add default for "about" engine property
Fixes #732.
2022-01-10 08:40:06 +01:00
Martin Minka
b76a815827 [fix] filtered_engines were not correctly evaluating validate_token() 2022-01-09 15:53:58 +01:00
Markus Heiser
dca83944b5 [fix] redis: don't create a new connection at each client() call
Suggested-by: @dalf https://github.com/searxng/searxng/pull/686#pullrequestreview-844942973
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-01-07 17:33:40 +01:00
Markus Heiser
4fc5e5299c [fix] ccengine engine - avoid unwanted redirects
api.openverse.engineering is a little picky and wants to have a trailing slash
in the path:

    /v1/images? -->/ v1/images/?

otherwise it redirects, here is the debug log:

    DEBUG   searx.network.openverse       : HTTP Request: GET https://api.openverse.engineering/v1/images?&page=1&page_size=20&format=json&q=foo "HTTP/2 301 Moved Permanently" (text/html; charset=utf-8)
    DEBUG   searx.network.openverse       : HTTP Request: GET https://api.openverse.engineering/v1/images/?&page=1&page_size=20&format=json&q=foo "HTTP/2 200 OK" (application/json)
    WARNING searx.engines.openverse       : ErrorContext('searx/search/processors/online.py', 105, 'count_error(', None, '1 redirects, maximum: 0', ('200', 'OK', 'api.openverse.engineering')) True

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-01-07 14:14:31 +01:00
Markus Heiser
1461d6a07e [upd] engine_descriptions.json
Updated by:

    ./manage pyenv.cmd python3 \
        ./searxng_extra/update/update_engine_descriptions.py

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-01-07 13:59:03 +01:00
Léon Tiekötter
37baf46ece [fix] Rename ccengine engine to openverse
The CC engine was merged with WordPress and renamed to Openverse

Source: https://wordpress.org/news/2021/05/welcome-to-openverse/
2022-01-07 13:06:05 +01:00
Léon Tiekötter
4be6deb0a1 [fix] ccengine engine
Change domain to api.openverse.engineering
2022-01-07 13:01:37 +01:00
Markus Heiser
ced656606f
Merge pull request #709 from return42/drop-etools
[fix] drop etools engine module
2022-01-07 11:18:47 +01:00
Markus Heiser
5dd3442f83 [fix] drop etools engine module
The implementation of the etools engine is poor.  No date-range support, no
language support and it is broken by a CAPTCHA.

etools is a metasearch engine, the major search engines it supports (google,
bing, wikipedia, Yahoo) are already available in SeaarXNG.

While etools does support several engines we currently don't support directly,
support for them should be added directly to SearXNG if there is demand.

In practice: in SearXNG the worse etools results will be mixed with good results
from other engines we have (as long as there is no captcha).

At best case, what we win with etools is in e.g. results from de.ask.com in a
query from a german request .. in all other cases worse results are bubble up in
SearXNG's result list.

[1] https://github.com/searxng/searxng/issues/696#issuecomment-1005855499

Closes: https://github.com/searxng/searxng/issues/696
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-01-07 10:41:09 +01:00
Martin Fischer
e12525a1fa
Merge pull request #708 from not-my-profile/pref-refactor
Refactor `preferences`
2022-01-07 09:45:23 +01:00
Markus Heiser
2eb95f1532
Merge pull request #718 from searxng/dependabot/pip/master/pygments-2.11.2
Bump pygments from 2.11.0 to 2.11.2
2022-01-07 08:40:55 +01:00
Markus Heiser
c956ed6c43 [build] /static 2022-01-07 08:36:32 +01:00
Markus Heiser
d8db85638e make pygments.less
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-01-07 08:35:14 +01:00
searxng-bot
651342d71a [translations] update from Weblate
7781625e - 2022-01-06 - Linerly <linerly@protonmail.com>
dcab2ef1 - 2022-01-06 - Markus Heiser <markus.heiser@darmarit.de>
2022-01-07 07:17:58 +00:00
Léon Tiekötter
3ab826de22 Drop microsoft academic engine
Microsoft academic was discontinued on 2021-12-31.

Source: https://www.microsoft.com/en-us/research/project/academic/articles/microsoft-academic-to-expand-horizons-with-community-driven-approach/
2022-01-07 01:35:13 +01:00
Martin Fischer
180d4d068b [refactor] refactor SwitchableSetting
The previous implementation used two hash sets and a list.
... that's not necessary ... a single hash map suffices.

And it's also less error prone ... because the previous data structure
allowed a setting to be enabled and disabled at the same time.
2022-01-06 18:56:02 +01:00
Martin Fischer
56fbf22108 [refactor] stop SwitchableSetting from subclassing Setting
Previously the default_value was abused for the cookie name.
Having SwitchableSetting subclass Setting doesn't even make sense
in the first place since none of the Setting methods apply.
2022-01-06 18:13:13 +01:00
Martin Fischer
1196abcfce
Merge pull request #706 from not-my-profile/remove-broken-quest-op
[fix] remove broken ? search operator
2022-01-06 17:44:34 +01:00
Martin Fischer
a0486cf827 [fix] prevent leaflet.{css,js} from polluting git grep results
Fixes #704.
2022-01-06 14:33:19 +01:00
Martin Fischer
83f8a8fc6d [refactor] remove pointless tuple 2022-01-06 14:21:15 +01:00
Martin Fischer
bb06758a7b [refactor] add type hints & remove Setting._post_init
Previously the Setting classes used a horrible _post_init
hack that prevented proper type checking.
2022-01-06 14:21:14 +01:00
Martin Fischer
61935c72ef [fix] remove broken ? search operator
The ? search operator has been broken for some time and
currently only raises the question why it's still there.

## Context ##

The query "Paris !images" searches for "Paris" in the "images" category.

Once upon a time Searx supported "Paris ?images" to search for "Paris"
in the currently enabled categories and the "images" category.

The feature makes sense ... the ? syntax does not.
We will hopefully introduce a +!images syntax in the future.

Fixes #702.
2022-01-06 14:10:58 +01:00
Alexandre Flament
03189d60f4
Merge pull request #697 from searxng/remove-nl-be
Delete searx/translations/nl_BE
2022-01-06 09:26:12 +01:00
Alexandre Flament
aedd6279b3
Merge pull request #634 from not-my-profile/powered-by
Introduce `categories_as_tabs` & group engines in tabs
2022-01-06 09:22:02 +01:00
Alexandre Flament
40684f6b5e
Delete searx/translations/nl_BE
See https://github.com/searxng/searxng/issues/540
2022-01-05 20:36:24 +01:00
Markus Heiser
0ebad8220f
Merge pull request #688 from dalf/settings_enable_stats
[enh] settings.yml: implement general.enable_metrics
2022-01-05 18:53:49 +00:00
Alexandre Flament
9004e84b6e
Merge pull request #596 from dalf/upgrade-httpx
Upgrade httpx
2022-01-05 19:13:48 +01:00
Alexandre Flament
d3ecadd3f8
Merge pull request #679 from dalf/brand-searxng
searxng.org: update setup.py & settings.yml
2022-01-05 19:07:53 +01:00
Alexandre Flament
2134703b4b [enh] settings.yml: implement general.enable_metrics
* allow not to record metrics (response time, etc...)
* this commit doesn't change the UI. If the metrics are disabled
  /stats and /stats/errors will return empty response.
  in /preferences, the columns response time and reliability will be empty.
2022-01-05 19:03:04 +01:00