summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBnyro <bnyro@tutanota.com>2025-05-21 14:52:16 +0200
committerGitHub <noreply@github.com>2025-05-21 14:52:16 +0200
commit8bff73c9b6312984de4ae7707ae2f796cc3182ff (patch)
tree40c45eb21a30e0cce2abbc27520490d0f3e8645b
parent7420706a5074803a78f3c795cf79427746e504e0 (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.py10
-rw-r--r--searx/engines/selfhst.py2
-rw-r--r--searx/engines/svgrepo.py4
-rw-r--r--searx/settings.yml1
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