mirror of
https://github.com/willmiao/ComfyUI-Lora-Manager.git
synced 2026-03-21 21:22:11 -03:00
fix(updates): avoid caching failed civitai lookups
This commit is contained in:
@@ -222,6 +222,7 @@ class ModelUpdateService:
|
|||||||
should_fetch = force_refresh or not existing or self._is_stale(existing, now)
|
should_fetch = force_refresh or not existing or self._is_stale(existing, now)
|
||||||
# release lock during network request
|
# release lock during network request
|
||||||
fetched_versions: List[int] | None = None
|
fetched_versions: List[int] | None = None
|
||||||
|
refresh_succeeded = False
|
||||||
if metadata_provider and should_fetch:
|
if metadata_provider and should_fetch:
|
||||||
try:
|
try:
|
||||||
response = await metadata_provider.get_model_versions(model_id)
|
response = await metadata_provider.get_model_versions(model_id)
|
||||||
@@ -236,7 +237,11 @@ class ModelUpdateService:
|
|||||||
exc_info=True,
|
exc_info=True,
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
fetched_versions = self._extract_version_ids(response)
|
if response is not None:
|
||||||
|
extracted = self._extract_version_ids(response)
|
||||||
|
if extracted is not None:
|
||||||
|
fetched_versions = extracted
|
||||||
|
refresh_succeeded = True
|
||||||
|
|
||||||
async with self._lock:
|
async with self._lock:
|
||||||
existing = self._get_record(model_type, model_id)
|
existing = self._get_record(model_type, model_id)
|
||||||
@@ -256,11 +261,11 @@ class ModelUpdateService:
|
|||||||
|
|
||||||
version_ids = (
|
version_ids = (
|
||||||
fetched_versions
|
fetched_versions
|
||||||
if fetched_versions is not None
|
if refresh_succeeded
|
||||||
else (list(existing.version_ids) if existing else [])
|
else (list(existing.version_ids) if existing else [])
|
||||||
)
|
)
|
||||||
largest = max(version_ids) if version_ids else None
|
largest = max(version_ids) if version_ids else None
|
||||||
last_checked = now if fetched_versions is not None else (
|
last_checked = now if refresh_succeeded else (
|
||||||
existing.last_checked_at if existing else None
|
existing.last_checked_at if existing else None
|
||||||
)
|
)
|
||||||
record = ModelUpdateRecord(
|
record = ModelUpdateRecord(
|
||||||
@@ -315,12 +320,14 @@ class ModelUpdateService:
|
|||||||
]
|
]
|
||||||
return sorted(dict.fromkeys(normalized))
|
return sorted(dict.fromkeys(normalized))
|
||||||
|
|
||||||
def _extract_version_ids(self, response) -> List[int]:
|
def _extract_version_ids(self, response) -> Optional[List[int]]:
|
||||||
if not isinstance(response, Mapping):
|
if not isinstance(response, Mapping):
|
||||||
return []
|
return None
|
||||||
versions = response.get("modelVersions")
|
versions = response.get("modelVersions")
|
||||||
if not isinstance(versions, Iterable):
|
if versions is None:
|
||||||
return []
|
return []
|
||||||
|
if not isinstance(versions, Iterable):
|
||||||
|
return None
|
||||||
normalized = []
|
normalized = []
|
||||||
for entry in versions:
|
for entry in versions:
|
||||||
if isinstance(entry, Mapping):
|
if isinstance(entry, Mapping):
|
||||||
|
|||||||
Reference in New Issue
Block a user