Browse Source

[fix] favicons: don't hard code settings folder to /etc/searxng

The location of the local settings depends on environment ``SEARXNG_SETTINGS_PATH``
and can be different from ``/etc/searxng``.  Issue was reported on Matrix [1].

To get the location function ``searx.settings_loader.get_user_cfg_folder()``
should be used.

[1] https://matrix.to/#/!vxScbLNEAmRvOraXBn:matrix.org/$5xNMYvONGB-mPt2B3ttoL27QncRFhkjGkO-TISdmP08?via=matrix.org&via=tchncs.de&via=envs.net

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
Markus Heiser 6 months ago
parent
commit
b14d885f23
1 changed files with 3 additions and 2 deletions
  1. 3 2
      searx/favicons/__init__.py

+ 3 - 2
searx/favicons/__init__.py

@@ -22,8 +22,9 @@ def init():
     # pylint: disable=import-outside-toplevel
     # pylint: disable=import-outside-toplevel
 
 
     from . import config, cache, proxy
     from . import config, cache, proxy
+    from .. import settings_loader
 
 
-    cfg_file = pathlib.Path("/etc/searxng/favicons.toml")
+    cfg_file = (settings_loader.get_user_cfg_folder() or pathlib.Path("/etc/searxng")) / "favicons.toml"
     if not cfg_file.exists():
     if not cfg_file.exists():
         if is_active():
         if is_active():
             logger.error(f"missing favicon config: {cfg_file}")
             logger.error(f"missing favicon config: {cfg_file}")
@@ -34,4 +35,4 @@ def init():
     cache.init(cfg.cache)
     cache.init(cfg.cache)
     proxy.init(cfg.proxy)
     proxy.init(cfg.proxy)
 
 
-    del cache, config, proxy, cfg
+    del cache, config, proxy, cfg, settings_loader