Refactor metadata handling to use unified provider system

- Replaced direct usage of Civitai client with a fallback metadata provider across all recipe parsers.
- Updated metadata service to improve initialization and error handling.
- Enhanced download manager to utilize a downloader service for file operations.
- Improved recipe scanner to fetch model information through the new metadata provider.
- Updated utility functions to streamline image downloading and processing.
- Added comprehensive logging and error handling for better debugging and reliability.
- Introduced `get_default_metadata_provider()` for simplified access to the default provider.
- Ensured backward compatibility with existing APIs and workflows.
This commit is contained in:
Will Miao
2025-09-09 20:57:45 +08:00
parent 1ea468cfc4
commit 6fd74952b7
15 changed files with 350 additions and 178 deletions

View File

@@ -730,11 +730,10 @@ class ModelScanner:
if needs_metadata_update and model_id:
logger.debug(f"Fetching missing metadata for {file_path} with model ID {model_id}")
from ..services.civitai_client import CivitaiClient
client = CivitaiClient()
from ..services.metadata_service import get_default_metadata_provider
metadata_provider = await get_default_metadata_provider()
model_metadata, status_code = await client.get_model_metadata(model_id)
await client.close()
model_metadata, status_code = await metadata_provider.get_model_metadata(model_id)
if status_code == 404:
logger.warning(f"Model {model_id} appears to be deleted from Civitai (404 response)")