50 Commits
Author SHA1 Message Date
Brock Vojkovic b00212a836 [mod] image proxy: /image with the default network (#6816)
- Changes the path of the /image_proxy endpoint to /image. This ensures that if the user copies the image through the browser, it is named image.png rather than image_proxy.png as the latter can be attributed to searxng hence preserving the privacy of the user.
- Removed the dedicated network for the image proxy. Previously this was used to force http/2 off but since moving to curl from httpx this is not as much of a problem. Now instead uses the default network.

Signed-off-by: vojkovic <git@vojk.au>
2026-10-15 06:59:50 +08:00
Brock Vojkovic d48c4b5554 [feat] sort infobox so images are first (#6815)
Often there will be two or more results in the infobox.

We now sort this so infoboxes with an image show above those that do not.

Signed-off-by: vojkovic <git@vojk.au>
2026-10-04 08:16:51 +02:00
Brock Vojkovic 44b98e6102 [fix] engines: privacywall referer to bypass botdetection (#6813)
Privacywall needs a referer header now or else returns access denied.
2026-10-04 07:49:12 +02:00
Brock Vojkovic ce913b8934 [fix] engines: dogpile cors headers (#6814)
Added Sec-Fetch-Mode header to fix the engine. Dogpile now has better bot detection, similar to tusksearch, we now require CORS headers in the request.
2026-10-04 07:44:15 +02:00
Brock Vojkovic 26b90797e0 [enh] simplify and clean up preferences (#6126)
- The 'engine tokens' field is only shown now if there are any engines with tokens configured.

- DOI Resolver now has combined the previous two settings (one dropdown and one toggle) into just a single dropdown similar to the favicon resolver.
2026-10-02 18:36:07 +08:00
Brock Vojkovic 3cd69d30e2 [fix] engines: tusksearch requires cors headers for botdetection (#6773)
Sec-Fetch-Mode and Sec-Fetch-Dest headers now mandatory
2026-09-23 23:18:45 +08:00
vojkovic 019460e07d [build] /static (#6766) 2026-09-22 09:14:25 +02:00
vojkovic 8a8b4eaec0 [fix] video thumbnails on left side again (#6766)
- Imports video.less now to apply the stylesheet.
- Ammends thumbnail_bg to dim the background and blur it more to make the thumbnail easier to see.
2026-09-22 09:14:25 +02:00
vojkovic fdd8525b1a [build] /static 2026-09-20 18:58:14 +08:00
vojkovic bcd2b709fe [mod] theme: improve thumbnails display on results page
Deletes thumbnails instead of showing an error image and also moves them to the right side. Also gives them a background and makes them into rounded 4:3 rectangles for better ui.
2026-09-20 18:58:14 +08:00
Brock Vojkovic e75fd22d09 [mod] defaults: disable image engines with poor results (#6690)
The image search defaults are a bit of a mix of results atm with random stock photos, some broken thumbnails (artic) and svg icons.
2026-09-20 11:10:16 +08:00
Brock Vojkovic 367fb6537c [fix] engines: tusksearch cors request headers (#6758)
Added the ``Origin`` and ``Sec-Fetch-Site`` http headers to bypass tusksearch's latest bot detection.
2026-09-19 07:30:06 +02:00
Brock Vojkovic 9aab16aef7 [fix] network: stop http redirects (#6740)
Stop curl from following from a HTTPS origin to a HTTP page

See: https://curl.se/libcurl/c/CURLOPT_REDIR_PROTOCOLS_STR.html

Reported-by: Rohit Dixit <00.00.xit@gmail.com>
2026-09-17 15:27:01 +08:00
Brock Vojkovic ce19e9fae3 [fix] image_proxy compressed images (#6730)
Prevents the image proxy from decompressing brotli/gzip in transit.

See: https://curl.se/libcurl/c/CURLOPT_ACCEPT_ENCODING.html

Setting accept_encoding to none prevents curl from automatically decompressing the received contents.

Signed-off-by: vojkovic <git@vojk.au>
2026-09-16 22:23:11 +08:00
vojkovic ca49650407 [fix] engines: yahoo modernisation and ybv cookie 2026-09-15 17:37:19 +08:00
vojkovic 94218a3ac6 [build] /static 2026-09-15 09:56:24 +08:00
vojkovic beb324c0f5 [mod] simple: apply nojs via stylesheet 2026-09-15 09:56:24 +08:00
vojkovic 604ee1698c [fix] engines: flaticon encode non ascii words 2026-09-15 08:50:46 +08:00
vojkovic 230c3632d9 [mod] github: convert issue templates to yaml forms 2026-09-13 22:37:48 +08:00
Brock Vojkovic 96479fff65 [fix] ci: run armv7 test on the amd64 runner (#6711) 2026-09-13 09:25:21 +02:00
vojkovic 0a94da4368 [fix] engines: naver images updated matcher 2026-09-12 18:17:41 +02:00
vojkovic 87bf8c86ed [fix] engines: dogpile web needs api token 2026-09-12 16:32:42 +08:00
Brock Vojkovic ffe96f8a6f [fix] engines: bing first word results (#6671)
Fixes the bing web engine, it was just using the first word of the query for the search and return random junk other times. see: vojkovic#10

Swapped to use bing's setlang and cc params. I found us, cn, ru return complete garbage 100% of the time. I reckon that if you don't have an ip address from there it will just return garbage, so those three are skipped. Also removed accept language override because it didn't change anything anymore.


- Closes: https://github.com/searxng/searxng/issues/4964
- Related: https://github.com/vojkovic/searxng/issues/10
2026-09-11 08:41:13 +02:00
vojkovic 42e1d61296 [fix] engines: startpage anubis solver 2026-09-10 19:12:21 +08:00
vojkovic 765a9999df [fix] engines: duckduckgo web bypass botdetection 2026-09-10 18:56:12 +08:00
vojkovic 8b01679e8f [fix] engines: update brave images/videos parser and news xpath 2026-09-06 01:45:40 +08:00
vojkovic eaf1fcb349 [fix] engines: resulthunter search_source arg 2026-09-06 01:43:11 +08:00
vojkovic e20e370353 [fix] engines: tusksearch referer header 2026-09-06 01:38:09 +08:00
vojkovic 3605a2d58b [fix] engines: dogpile request api token 2026-09-06 01:22:09 +08:00
vojkovic be836e614a [mod] network: migrate to curl_cffi 2026-09-04 16:16:09 +08:00
vojkovic a4cb7df053 [fix] google: use Nokia UA (#6546) 2026-08-22 11:00:06 +08:00
vojkovic 5f4005996e [fix] preferences: cap zlib decompress 2026-08-21 20:55:33 +08:00
Brock Vojkovic 5ffd32ca2f [fix] calculator: XSS from innerHTML (#6551)
* [fix] calculator: XSS from innerHTML

* [build] /static
2026-08-19 14:09:02 +02:00
vojkovic 374939b888 [fix] engines: deviantart access denied 2026-08-17 20:06:57 +08:00
vojkovic 1c3bb1e88f [mod] defaults: GET method and ddg autocomplete 2026-08-12 19:05:02 +08:00
vojkovic 1689cb1b53 [feat] autocomplete: add kagi autocompleter 2026-08-05 00:00:54 +08:00
vojkovic 0734ee6c71 [build] /static 2026-08-03 19:51:02 +08:00
vojkovic d81810d2a7 [fix] autocomplete: drop POST method 2026-08-03 19:51:02 +08:00
vojkovic 8892414dc3 [feat] add kagi favicon resolver 2026-08-01 11:09:50 +08:00
vojkovic 057a77168d [ci] add ai policy checkbox detection 2026-07-31 06:28:06 +08:00
vojkovic b060c780d0 Revert "[ci] add ai policy checkbox detection"
This reverts commit 6d8b550280.
2026-07-26 16:53:10 +00:00
vojkovic 6d8b550280 [ci] add ai policy checkbox detection 2026-07-26 16:51:14 +00:00
vojkovic 7b2199ecdf [fix] autocomplete suggestrelevance scores for chromium 2026-07-15 23:45:25 +08:00
vojkovic 888364c1ce [chore] update traits for google cse (#6364) 2026-07-05 11:50:23 +02:00
vojkovic 1cdf01a719 [feat] engines: add google cse engine (#6364)
Adds a new google cse engine as an alternative to the currently broken html
google engine.

It works by generating a token which is cached for 1 hour and it only uses the
public CSE id from blackle.com.  We do have two others but I think just
hardcoding one will be enough.

Will be broken in 2027 due to google deprecating it but I it will be good while
it lasts.

I found I can get up to 20 results per page. Setting safesearch and language
works and I just copied the traits from the google engine.

Also set old google engine as inactive as it is completely broken for now.
2026-07-05 11:50:23 +02:00
Brock Vojkovic 9d49a9f344 [fix] no such table during engine init (#6185) 2026-06-07 06:04:12 +02:00
vojkovic 300695de5c [fix] crash when lock is omitted 2026-05-31 01:37:37 +08:00
vojkovic e1d25c5078 [mod] enable image proxy for public instances 2026-05-30 22:43:50 +08:00
vojkovic a563127a26 [fix] engines: remove google arc/async params 2026-03-08 23:22:32 +08:00
Brock Vojkovic 68ff08f224 [mod] drop fasttext-predict (#5795)
Removes the `fasttext-predict` dependency and the language detection code.

If a user now selects `auto` for the search language, the detected language now
falls back directly to the `Accept-Language` header sent by the browser (which was already the fallback when fasttext returned no result).

- fasttext's [language detection is unreliable](https://github.com/searxng/searxng/issues/4195) for some languages, especially short search queries, and in particular for queries containing proper names which is a common case.
- `fasttext-predict` consumes [significant memory](https://github.com/searxng/searxng/pull/1969#issuecomment-1345366676) without offering users much real value.
- the upstream fasttext project was archived by Meta in 2024
- users already have two better alternatives: the `Accept-Language` header and the search-syntax language prefix (e.g. `:fr` or `:de`).

Related: https://github.com/searxng/searxng/issues/4195
Closes: https://github.com/searxng/searxng/issues/5790
2026-03-06 15:40:44 +01:00