|  | # 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
 | 
						
						
						
							|  |     from .. import settings_loader
 | 
						
						
						
							|  | 
 | 
						
						
						
							|  |     cfg_file = (settings_loader.get_user_cfg_folder() or pathlib.Path("/etc/searxng")) / "favicons.toml"
 | 
						
						
						
							|  |     if not cfg_file.exists():
 | 
						
						
						
							|  |         if is_active():
 | 
						
						
						
							|  |             logger.error(f"missing favicon config: {cfg_file}")
 | 
						
						
						
							|  |         cfg_file = config.DEFAULT_CFG_TOML_PATH
 | 
						
						
						
							|  | 
 | 
						
						
						
							|  |     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, settings_loader
 |