fix(metadata): refresh metadata sync settings

This commit is contained in:
pixelpaws
2025-10-08 10:38:05 +08:00
parent 0c023c9888
commit 08a449db99

View File

@@ -1,6 +1,7 @@
import logging
import os
import re
from typing import TYPE_CHECKING, Optional
from ..recipes.constants import GEN_PARAM_KEYS
from ..services.metadata_service import get_default_metadata_provider, get_metadata_provider
@@ -21,20 +22,31 @@ _preview_service = PreviewAssetService(
)
_metadata_sync_service: MetadataSyncService | None = None
_metadata_sync_service_settings: Optional["SettingsManager"] = None
if TYPE_CHECKING: # pragma: no cover - import for type checkers only
from ..services.settings_manager import SettingsManager
def _get_metadata_sync_service() -> MetadataSyncService:
"""Return the shared metadata sync service, initialising it lazily."""
global _metadata_sync_service
if _metadata_sync_service is None:
global _metadata_sync_service, _metadata_sync_service_settings
settings_manager = get_settings_manager()
if (
_metadata_sync_service is None
or _metadata_sync_service_settings is not settings_manager
):
_metadata_sync_service = MetadataSyncService(
metadata_manager=MetadataManager,
preview_service=_preview_service,
settings=get_settings_manager(),
settings=settings_manager,
default_metadata_provider_factory=get_default_metadata_provider,
metadata_provider_selector=get_metadata_provider,
)
_metadata_sync_service_settings = settings_manager
return _metadata_sync_service