2024-08-19 17:47:54 +02:00
|
|
|
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
|
|
"""Implementations for providing the favicons in SearXNG"""
|
|
|
|
|
|
|
|
from __future__ import annotations
|
|
|
|
|
|
|
|
__all__ = ["init", "favicon_url", "favicon_proxy"]
|
|
|
|
|
|
|
|
import pathlib
|
|
|
|
from searx import logger
|
|
|
|
from searx import get_setting
|
|
|
|
from .proxy import favicon_url, favicon_proxy
|
|
|
|
|
|
|
|
logger = logger.getChild('favicons')
|
|
|
|
|
|
|
|
|
|
|
|
def is_active():
|
|
|
|
return bool(get_setting("search.favicon_resolver", False))
|
|
|
|
|
|
|
|
|
|
|
|
def init():
|
|
|
|
|
|
|
|
# pylint: disable=import-outside-toplevel
|
|
|
|
|
|
|
|
from . import config, cache, proxy
|
|
|
|
|
|
|
|
cfg_file = pathlib.Path("/etc/searxng/favicons.toml")
|
|
|
|
if not cfg_file.exists():
|
|
|
|
if is_active():
|
|
|
|
logger.error(f"missing favicon config: {cfg_file}")
|
2024-09-20 18:08:40 +02:00
|
|
|
cfg_file = config.DEFAULT_CFG_TOML_PATH
|
2024-08-19 17:47:54 +02:00
|
|
|
|
|
|
|
logger.debug(f"load favicon config: {cfg_file}")
|
|
|
|
cfg = config.FaviconConfig.from_toml_file(cfg_file, use_cache=True)
|
|
|
|
cache.init(cfg.cache)
|
|
|
|
proxy.init(cfg.proxy)
|
|
|
|
|
|
|
|
del cache, config, proxy, cfg
|