From 7ab577a1fba43578b77f56b76275d0e65d03b318 Mon Sep 17 00:00:00 2001 From: Markus Heiser Date: Mon, 19 Aug 2024 17:47:54 +0200 Subject: [mod] Revision of the favicon solution All favicons implementations have been documented and moved to the Python package: searx.favicons There is a configuration (based on Pydantic) for the favicons and all its components: searx.favicons.config A solution for caching favicons has been implemented: searx.favicon.cache If the favicon is already in the cache, the returned URL is a data URL [1] (something like `data:image/png;base64,...`). By generating a data url from the FaviconCache, additional HTTP roundtripps via the favicon_proxy are saved: favicons.proxy.favicon_url The favicon proxy service now sets a HTTP header "Cache-Control: max-age=...": favicons.proxy.favicon_proxy The resolvers now also provide the mime type (data, mime): searx.favicon.resolvers [1] https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs Signed-off-by: Markus Heiser --- searx/preferences.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'searx/preferences.py') diff --git a/searx/preferences.py b/searx/preferences.py index 92758efa6..18c3f08d8 100644 --- a/searx/preferences.py +++ b/searx/preferences.py @@ -13,7 +13,7 @@ from collections import OrderedDict import flask import babel -from searx import settings, autocomplete, favicon_resolver +from searx import settings, autocomplete, favicons from searx.enginelib import Engine from searx.plugins import Plugin from searx.locales import LOCALE_NAMES @@ -409,7 +409,7 @@ class Preferences: 'favicon_resolver': EnumStringSetting( settings['search']['favicon_resolver'], locked=is_locked('favicon_resolver'), - choices=list(favicon_resolver.backends.keys()) + [''] + choices=list(favicons.proxy.CFG.resolver_map.keys()) + [''] ), 'image_proxy': BooleanSetting( settings['server']['image_proxy'], -- cgit v1.2.3