fix: handle civitai not found responses

This commit is contained in:
pixelpaws
2025-10-28 21:47:30 +08:00
parent ce3adaf831
commit dc1f7ab6fe
7 changed files with 194 additions and 10 deletions

View File

@@ -27,6 +27,7 @@ from ...services.service_registry import ServiceRegistry
from ...services.settings_manager import get_settings_manager
from ...services.websocket_manager import ws_manager
from ...services.downloader import get_downloader
from ...services.errors import ResourceNotFoundError
from ...utils.constants import (
CIVITAI_USER_MODEL_TYPES,
DEFAULT_NODE_COLOR,
@@ -618,7 +619,10 @@ class ModelLibraryHandler:
if not metadata_provider:
return web.json_response({"success": False, "error": "Metadata provider not available"}, status=503)
response = await metadata_provider.get_model_versions(model_id)
try:
response = await metadata_provider.get_model_versions(model_id)
except ResourceNotFoundError:
return web.json_response({"success": False, "error": "Model not found"}, status=404)
if not response or not response.get("modelVersions"):
return web.json_response({"success": False, "error": "Model not found"}, status=404)

View File

@@ -29,7 +29,7 @@ from ...services.use_cases import (
)
from ...services.websocket_manager import WebSocketManager
from ...services.websocket_progress_callback import WebSocketProgressCallback
from ...services.errors import RateLimitError
from ...services.errors import RateLimitError, ResourceNotFoundError
from ...utils.file_utils import calculate_sha256
from ...utils.metadata_manager import MetadataManager
@@ -863,7 +863,10 @@ class ModelCivitaiHandler:
try:
model_id = request.match_info["model_id"]
metadata_provider = await self._metadata_provider_factory()
response = await metadata_provider.get_model_versions(model_id)
try:
response = await metadata_provider.get_model_versions(model_id)
except ResourceNotFoundError:
return web.Response(status=404, text="Model not found")
if not response or not response.get("modelVersions"):
return web.Response(status=404, text="Model not found")