diff --git a/routes/api_routes.py b/routes/api_routes.py index e9b3d32b..3682c61e 100644 --- a/routes/api_routes.py +++ b/routes/api_routes.py @@ -368,7 +368,7 @@ class ApiRoutes: logger.error(f"Error fetching CivitAI data for {lora['file_path']}: {e}") if needs_resort: - cache.sorted_by_name = sorted(cache.raw_data, key=itemgetter('model_name')) + await cache.resort(name_only=True) # 发送完成消息 await ws_manager.broadcast({ diff --git a/services/lora_cache.py b/services/lora_cache.py index d97a6567..9551ff9c 100644 --- a/services/lora_cache.py +++ b/services/lora_cache.py @@ -14,18 +14,19 @@ class LoraCache: def __post_init__(self): self._lock = asyncio.Lock() - async def resort(self): + async def resort(self, name_only: bool = False): """Resort all cached data views""" async with self._lock: self.sorted_by_name = sorted( self.raw_data, key=lambda x: x['model_name'].lower() # Case-insensitive sort ) - self.sorted_by_date = sorted( - self.raw_data, - key=itemgetter('modified'), - reverse=True - ) + if not name_only: + self.sorted_by_date = sorted( + self.raw_data, + key=itemgetter('modified'), + reverse=True + ) # Update folder list self.folders = sorted(list(set( l['folder'] for l in self.raw_data diff --git a/templates/loras.html b/templates/loras.html index 4b5e422c..fd1f4a9d 100644 --- a/templates/loras.html +++ b/templates/loras.html @@ -60,9 +60,9 @@ + {% if is_initializing %} + {% endif %} \ No newline at end of file