| 
									
										
										
										
											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 | 
					
						
							| 
									
										
										
										
											2024-10-22 09:05:00 +02:00
										 |  |  |     from .. import settings_loader | 
					
						
							| 
									
										
										
										
											2024-08-19 17:47:54 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-10-22 09:05:00 +02:00
										 |  |  |     cfg_file = (settings_loader.get_user_cfg_folder() or pathlib.Path("/etc/searxng")) / "favicons.toml" | 
					
						
							| 
									
										
										
										
											2024-08-19 17:47:54 +02:00
										 |  |  |     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) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-10-22 09:05:00 +02:00
										 |  |  |     del cache, config, proxy, cfg, settings_loader |