This commit is contained in:
Bnyro 2025-01-29 20:13:19 +01:00 committed by GitHub
commit 6608c79a07
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 60 additions and 0 deletions

54
searx/engines/selfhst.py Normal file
View File

@ -0,0 +1,54 @@
# SPDX-License-Identifier: AGPL-3.0-or-later
"""selfh.st/icons - A collection of logos for self-hosted dashboards and
documentation"""
from dateutil import parser
about = {
'website': 'https://selfh.st/icons/',
'official_api_documentation': 'https://selfh.st/icons-about/',
"use_official_api": True,
"require_api_key": False,
"results": 'JSON',
}
categories = ['images']
icons_list_url = 'https://cdn.selfh.st/directory/icons.json'
icons_cdn_base_url = 'https://cdn.jsdelivr.net'
def request(query, params):
params['url'] = icons_list_url
params['query'] = query
return params
def response(resp):
results = []
query_parts = resp.search_params['query'].lower().split(' ')
for item in resp.json():
keyword = item['Reference'].lower()
if not any(query_part in keyword for query_part in query_parts):
continue
img_format = None
for format_name in ('SVG', 'PNG', 'WebP'):
if item[format_name] == 'Yes':
img_format = format_name.lower()
break
img_src = f'{icons_cdn_base_url}/gh/selfhst/icons/{img_format}/{item["Reference"]}.{img_format}'
result = {
'template': 'images.html',
'url': img_src,
'title': item['Name'],
'content': '',
'img_src': img_src,
'img_format': img_format,
'publishedDate': parser.parse(item['CreatedAt']),
}
results.append(result)
return results

View File

@ -1693,6 +1693,12 @@ engines:
about:
website: https://searchmysite.net
- name: selfhst icons
engine: selfhst
shortcut: si
inactive: true
disabled: true
- name: sepiasearch
engine: sepiasearch
shortcut: sep