From 280aceb1ae7e1f0564d6a60ad474c49c7260a2ad Mon Sep 17 00:00:00 2001 From: Markus Heiser Date: Wed, 16 Sep 2026 17:03:33 +0200 Subject: [PATCH] [mod] add new category 'stock_images' - a specialization of 'images' (#6703) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- searx/engines/500px.py | 2 +- searx/engines/flickr.py | 2 +- searx/engines/pexels.py | 2 +- searx/engines/picjumbo.py | 2 +- searx/engines/shopify_stock.py | 2 +- searx/engines/stocksnap.py | 2 +- searx/engines/unsplash.py | 2 +- searx/engines/www1x.py | 2 +- searx/searxng.msg | 1 + searx/settings.yml | 9 ++------- 10 files changed, 11 insertions(+), 15 deletions(-) diff --git a/searx/engines/500px.py b/searx/engines/500px.py index 372f227c2..558385354 100644 --- a/searx/engines/500px.py +++ b/searx/engines/500px.py @@ -33,7 +33,7 @@ about = { base_url = "https://500px.com" api_url = "https://api-neo.500px.com" -categories = ["images"] +categories = ["stock_images"] paging = True results_per_page = 30 diff --git a/searx/engines/flickr.py b/searx/engines/flickr.py index 9ca0b572c..aeee27556 100644 --- a/searx/engines/flickr.py +++ b/searx/engines/flickr.py @@ -18,7 +18,7 @@ about = { "results": 'JSON', } -categories = ['images'] +categories = ["stock_images"] page_size = 15 paging = True diff --git a/searx/engines/pexels.py b/searx/engines/pexels.py index 8a6ce2c52..e888c14f0 100644 --- a/searx/engines/pexels.py +++ b/searx/engines/pexels.py @@ -26,7 +26,7 @@ about = { } base_url = "https://www.pexels.com" -categories = ["images"] +categories = ["stock_images"] api_key = "H2jk9uKnhRmL6WPwh89zBezWvr" """ diff --git a/searx/engines/picjumbo.py b/searx/engines/picjumbo.py index 12a8b3651..6451135dd 100644 --- a/searx/engines/picjumbo.py +++ b/searx/engines/picjumbo.py @@ -26,7 +26,7 @@ about = { base_url = "https://picjumbo.com" -categories = ["images"] +categories = ["stock_images"] paging = True diff --git a/searx/engines/shopify_stock.py b/searx/engines/shopify_stock.py index e66d85860..990f4f200 100644 --- a/searx/engines/shopify_stock.py +++ b/searx/engines/shopify_stock.py @@ -25,7 +25,7 @@ about = { base_url = "https://www.shopify.com" -categories = ["images"] +categories = ["stock_images"] paging = True diff --git a/searx/engines/stocksnap.py b/searx/engines/stocksnap.py index 85eeccbda..00fc58f0a 100644 --- a/searx/engines/stocksnap.py +++ b/searx/engines/stocksnap.py @@ -25,7 +25,7 @@ about = { base_url = "https://stocksnap.io" cdn_url = "https://cdn.stocksnap.io" -categories = ["images"] +categories = ["stock_images"] paging = True diff --git a/searx/engines/unsplash.py b/searx/engines/unsplash.py index 7a5a72cd4..d7fa311c0 100644 --- a/searx/engines/unsplash.py +++ b/searx/engines/unsplash.py @@ -18,7 +18,7 @@ about = { base_url = 'https://unsplash.com/' search_url = base_url + 'napi/search/photos?' -categories = ['images'] +categories = ["stock_images"] page_size = 20 paging = True diff --git a/searx/engines/www1x.py b/searx/engines/www1x.py index 9c5f01e3a..e9a4342a7 100644 --- a/searx/engines/www1x.py +++ b/searx/engines/www1x.py @@ -17,7 +17,7 @@ about = { } # engine dependent config -categories = ['images'] +categories = ["stock_images"] paging = False # search-url diff --git a/searx/searxng.msg b/searx/searxng.msg index beb900898..7670ed129 100644 --- a/searx/searxng.msg +++ b/searx/searxng.msg @@ -31,6 +31,7 @@ CATEGORY_NAMES = { 'MUSIC': 'music', 'SOCIAL_MEDIA': 'social media', 'IMAGES': 'images', + 'STOCK_IMAGES': 'stock images', 'VIDEOS': 'videos', 'RADIO': 'radio', 'TV': 'tv', diff --git a/searx/settings.yml b/searx/settings.yml index 407d75373..8d1da04ec 100644 --- a/searx/settings.yml +++ b/searx/settings.yml @@ -280,6 +280,7 @@ plugins: categories_as_tabs: general: images: + # stock_images: videos: news: map: @@ -304,7 +305,6 @@ engines: - name: 500px engine: 500px shortcut: "500" - disabled: true timeout: 5 - name: 9gag @@ -920,7 +920,6 @@ engines: engine: www1x shortcut: 1x timeout: 3.0 - disabled: true - name: fastbot engine: xpath @@ -1005,7 +1004,6 @@ engines: disabled: true - name: flickr - categories: images shortcut: fl engine: flickr_noapi @@ -1875,7 +1873,6 @@ engines: - name: picjumbo engine: picjumbo shortcut: pj - disabled: true - name: pinterest engine: pinterest @@ -1916,7 +1913,7 @@ engines: - name: pixabay images engine: pixabay pixabay_type: images - categories: images + categories: stock_images shortcut: pixi disabled: true @@ -2173,7 +2170,6 @@ engines: - name: shopify stock engine: shopify_stock shortcut: shs - disabled: true - name: sogou engine: sogou @@ -2208,7 +2204,6 @@ engines: - name: stocksnap engine: stocksnap shortcut: sto - disabled: true - name: askubuntu engine: stackexchange