feat(metadata): improve model ID redirect logic and provider ordering

- Fix CivArchive model ID redirect logic to only follow redirects when context points to original model
- Rename CivitaiModelMetadataProvider to CivArchiveModelMetadataProvider for consistency
- Reorder fallback metadata providers to prioritize Civitai API over CivArchive API for better metadata quality
- Remove unused asyncio import and redundant logging from metadata sync service
This commit is contained in:
Will Miao
2025-10-11 16:11:13 +08:00
parent c3a66ecf28
commit 1e8bd88e28
5 changed files with 17 additions and 49 deletions

View File

@@ -120,7 +120,7 @@ async def test_get_model_by_hash_transforms_payload(downloader):
file_meta = result["files"][0]
assert file_meta["hashes"]["SHA256"] == "E2B7A280D6539556F23F380B3F71E4E22BC4524445C4C96526E117C6005C6AD3"
assert file_meta["mirrors"][0]["url"] == "https://civitai.com/api/download/models/1976567"
assert file_meta["primary"] is False
assert file_meta["primary"] is True
assert result["source"] == "civarchive"
assert result["images"][0]["url"] == "https://img.genur.art/example.png"

View File

@@ -108,6 +108,7 @@ def metadata_provider(monkeypatch):
"creator": {"username": "Author"},
"files": [
{
"type": "Model",
"primary": True,
"downloadUrl": "https://example.invalid/file.safetensors",
"name": "file.safetensors",
@@ -206,6 +207,7 @@ async def test_download_uses_active_mirrors(monkeypatch, scanners, metadata_prov
"creator": {"username": "Author"},
"files": [
{
"type": "Model",
"primary": True,
"downloadUrl": "https://example.invalid/file.safetensors",
"mirrors": [