From fa4dfd4efea01d558dd4c8b0d6db39708ee03917 Mon Sep 17 00:00:00 2001
From: Markus Heiser <markus.heiser@darmarit.de>
Date: Tue, 29 Oct 2024 17:32:30 +0100
Subject: [PATCH] [fix] favicons: msgspec.ValidationError: Expected `Path`, got
 `str` - at `$.favicons.cache.db_url`

Closes: https://github.com/searxng/searxng/issues/3975
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
---
 searx/favicons/cache.py  | 4 ++--
 searx/favicons/config.py | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/searx/favicons/cache.py b/searx/favicons/cache.py
index c46eb5621..1aa722d89 100644
--- a/searx/favicons/cache.py
+++ b/searx/favicons/cache.py
@@ -20,11 +20,11 @@
 from __future__ import annotations
 from typing import Literal
 
+import os
 import abc
 import dataclasses
 import hashlib
 import logging
-import pathlib
 import sqlite3
 import tempfile
 import time
@@ -103,7 +103,7 @@ class FaviconCacheConfig(msgspec.Struct):  # pylint: disable=too-few-public-meth
       :py:obj:`.cache.FaviconCacheMEM` (not recommended)
     """
 
-    db_url: pathlib.Path = pathlib.Path(tempfile.gettempdir()) / "faviconcache.db"
+    db_url: str = tempfile.gettempdir() + os.sep + "faviconcache.db"
     """URL of the SQLite DB, the path to the database file."""
 
     HOLD_TIME: int = 60 * 60 * 24 * 30  # 30 days
diff --git a/searx/favicons/config.py b/searx/favicons/config.py
index bf53b0821..33aa157d6 100644
--- a/searx/favicons/config.py
+++ b/searx/favicons/config.py
@@ -27,10 +27,10 @@ class FaviconConfig(msgspec.Struct):  # pylint: disable=too-few-public-methods
     By specifying a version, it is possible to ensure downward compatibility in
     the event of future changes to the configuration schema"""
 
-    cache: FaviconCacheConfig = FaviconCacheConfig
+    cache: FaviconCacheConfig = msgspec.field(default_factory=FaviconCacheConfig)
     """Setup of the :py:obj:`.cache.FaviconCacheConfig`."""
 
-    proxy: FaviconProxyConfig = FaviconCacheConfig
+    proxy: FaviconProxyConfig = msgspec.field(default_factory=FaviconProxyConfig)
     """Setup of the :py:obj:`.proxy.FaviconProxyConfig`."""
 
     @classmethod