__init__.py 964 B

12345678910111213141516171819202122232425262728293031323334353637
  1. # SPDX-License-Identifier: AGPL-3.0-or-later
  2. """Implementations for providing the favicons in SearXNG"""
  3. from __future__ import annotations
  4. __all__ = ["init", "favicon_url", "favicon_proxy"]
  5. import pathlib
  6. from searx import logger
  7. from searx import get_setting
  8. from .proxy import favicon_url, favicon_proxy
  9. logger = logger.getChild('favicons')
  10. def is_active():
  11. return bool(get_setting("search.favicon_resolver", False))
  12. def init():
  13. # pylint: disable=import-outside-toplevel
  14. from . import config, cache, proxy
  15. cfg_file = pathlib.Path("/etc/searxng/favicons.toml")
  16. if not cfg_file.exists():
  17. if is_active():
  18. logger.error(f"missing favicon config: {cfg_file}")
  19. cfg_file = config.DEFAULT_CFG_TOML
  20. logger.debug(f"load favicon config: {cfg_file}")
  21. cfg = config.FaviconConfig.from_toml_file(cfg_file, use_cache=True)
  22. cache.init(cfg.cache)
  23. proxy.init(cfg.proxy)
  24. del cache, config, proxy, cfg