diff options
| author | Bnyro <bnyro@tutanota.com> | 2025-05-21 14:52:16 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-05-21 14:52:16 +0200 |
| commit | 8bff73c9b6312984de4ae7707ae2f796cc3182ff (patch) | |
| tree | 40c45eb21a30e0cce2abbc27520490d0f3e8645b | |
| parent | 7420706a5074803a78f3c795cf79427746e504e0 (diff) | |
[refactor] icon engines: add new icon category (#4817)
Icons category makes sense because it allows to quickly search for free SVG
icons to use for websites / other designs with a quick `!icons` query
Icons don't seem to fit into the normal images category that well because icons
are quite a special type of images
| -rw-r--r-- | searx/engines/material_icons.py | 10 | ||||
| -rw-r--r-- | searx/engines/selfhst.py | 2 | ||||
| -rw-r--r-- | searx/engines/svgrepo.py | 4 | ||||
| -rw-r--r-- | searx/settings.yml | 1 |
4 files changed, 8 insertions, 9 deletions
diff --git a/searx/engines/material_icons.py b/searx/engines/material_icons.py index 381cedae1..7dba62c3b 100644 --- a/searx/engines/material_icons.py +++ b/searx/engines/material_icons.py @@ -1,7 +1,5 @@ # SPDX-License-Identifier: AGPL-3.0-or-later -"""Material Icons (images) - -""" +"""Material Icons (icons)""" import re from json import loads @@ -14,6 +12,8 @@ about = { "require_api_key": False, "results": 'JSON', } +categories = ['images', 'icons'] + search_url = "https://fonts.google.com/metadata/icons?key=material_symbols&incomplete=true" result_url = "https://fonts.google.com/icons?icon.query={query}&selected=Material+Symbols+Outlined:{icon_name}:FILL@0{fill};wght@400;GRAD@0;opsz@24" # pylint: disable=line-too-long img_src_url = "https://fonts.gstatic.com/s/i/short-term/release/materialsymbolsoutlined/{icon_name}/{svg_type}/24px.svg" @@ -46,7 +46,7 @@ def response(resp): continue tags = [tag.title() for tag in result["tags"]] - categories = [category.title() for category in result["categories"]] + icon_categories = [category.title() for category in result["categories"]] results.append( { @@ -54,7 +54,7 @@ def response(resp): 'url': result_url.format(icon_name=result["name"], query=result["name"], fill=0 if outlined else 1), 'img_src': img_src_url.format(icon_name=result["name"], svg_type=svg_type), 'title': result["name"].replace("_", "").title(), - 'content': ", ".join(tags) + " / " + ", ".join(categories), + 'content': ", ".join(tags) + " / " + ", ".join(icon_categories), } ) diff --git a/searx/engines/selfhst.py b/searx/engines/selfhst.py index a85c4e877..f5ba3a136 100644 --- a/searx/engines/selfhst.py +++ b/searx/engines/selfhst.py @@ -11,7 +11,7 @@ about = { "require_api_key": False, "results": 'JSON', } -categories = ['images'] +categories = ['images', 'icons'] icons_list_url = 'https://cdn.selfh.st/directory/icons.json' diff --git a/searx/engines/svgrepo.py b/searx/engines/svgrepo.py index 156f4b2a8..0b821ed64 100644 --- a/searx/engines/svgrepo.py +++ b/searx/engines/svgrepo.py @@ -1,5 +1,5 @@ # SPDX-License-Identifier: AGPL-3.0-or-later -"""Svgrepo (images) +"""Svgrepo (icons) """ from lxml import html @@ -14,7 +14,7 @@ about = { } paging = True -categories = ['images'] +categories = ['images', 'icons'] base_url = "https://www.svgrepo.com" results_xpath = "//div[@class='style_nodeListing__7Nmro']/div" diff --git a/searx/settings.yml b/searx/settings.yml index fc654450c..569ff6f3c 100644 --- a/searx/settings.yml +++ b/searx/settings.yml @@ -1053,7 +1053,6 @@ engines: - name: material icons engine: material_icons - categories: images shortcut: mi disabled: true |