Engines like Pexels provide images that one would more likely expect in a
category named ``stock_images``.
By classifying engines like Pexels more precisely, we enable a more specific
handling of them, which also helps to avoid mixing them with the more general
image search on the internet. [1]
We leave these engines *enabled* by default, take them out of ``images`` and
move them into the specialization ``stock_images``.
This makes it possible, on the one hand, for the admin to configure a tab in the
UI, and on the other hand, the user can always select the group directly using
the search syntax ``!stock_images ...``.
What we need to keep in mind:
1. Technically speaking, there are no subcategories in the strict
sense. Organizationally, the *subcategories* are derived from the
`categories_as_tabs`.
2. From an admin’s perspective, `categories_as_tabs` is the tool for
structuring their content.
3. In the context of “enabled/disabled by default”: We should avoid having
the admin have to activate many individual engines when they want to
structure their content (UI tabs).
So if we leave an engine enabled by default and **move** it from `images` to a
new category, the admin only needs to add the new category to
`categories_as_tabs` to restructure their content. If the new category is also
part of the translations (see `searx/searxng.msg` in this PR), this UI structure
would also be available internationally.
[1] https://github.com/searxng/searxng/pull/6690#issuecomment-5646291679
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
Additional fields:
add resolution, thumbnail and author to the image result
Types:
use EngineResults and add type hints from internall APIs
Disabled engine:
as of 09/2026: The availability of https://openverse.org/ is poor, and queries
and image requests often time out. However, these issues also occur when using
a WEB browser to search on openverse.org or view images.
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
The GSA headers that were introduced in PR #5644 unfortunately no longer
work (#6359).
The Google engines
- google.py
- google_videos.py
do not work anymore either, but we'll leave it in the code for now:
- In google.py, central functions like get_google_info(..) are provided, which
are also used by other modules.
- We will probably need a Google HTML (and video) engine again very soon.
Related:
- https://github.com/searxng/searxng/issues/6359
- https://github.com/searxng/searxng/pull/6364
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
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.
FindFiles.net is a specialized file search engine designed to help you search
files online with precision. Unlike traditional search engines that mainly index
web pages, FindFiles focuses on finding real files on the internet - including
PDFs, documents, archives, videos, datasets, and more. [1]
[1] https://findfiles.net