Checkpoint

This commit is contained in:
Will Miao
2025-02-04 10:50:57 +08:00
parent c9390c9d32
commit 5ed037b219
3 changed files with 49 additions and 63 deletions

View File

@@ -4,7 +4,6 @@ import logging
from aiohttp import web from aiohttp import web
from typing import Dict, List from typing import Dict, List
from ..services.civitai_client import CivitaiClient from ..services.civitai_client import CivitaiClient
from ..utils.file_utils import update_civitai_metadata, load_metadata
from ..config import config from ..config import config
from ..services.lora_scanner import LoraScanner from ..services.lora_scanner import LoraScanner
from operator import itemgetter from operator import itemgetter

View File

@@ -62,10 +62,7 @@ class LoraFileHandler(FileSystemEventHandler):
logger.info(f"Processing {len(changes)} file changes") logger.info(f"Processing {len(changes)} file changes")
async with self.scanner._cache._lock: cache = await self.scanner.get_cached_data() # 先完成可能的初始化
# 获取当前缓存
cache = await self.scanner.get_cached_data()
needs_resort = False needs_resort = False
new_folders = set() # 用于收集新的文件夹 new_folders = set() # 用于收集新的文件夹
@@ -91,15 +88,7 @@ class LoraFileHandler(FileSystemEventHandler):
logger.error(f"Error processing {action} for {file_path}: {e}") logger.error(f"Error processing {action} for {file_path}: {e}")
if needs_resort: if needs_resort:
cache.sorted_by_name = sorted( await cache.resort()
self.scanner._cache.raw_data,
key=lambda x: x['model_name'].lower() # Case-insensitive sort
)
cache.sorted_by_date = sorted(
self.scanner._cache.raw_data,
key=itemgetter('modified'),
reverse=True
)
# 更新文件夹列表,包括新添加的文件夹 # 更新文件夹列表,包括新添加的文件夹
all_folders = set(cache.folders) | new_folders all_folders = set(cache.folders) | new_folders

View File

@@ -91,8 +91,6 @@ class LoraScanner:
# 确保缓存已初始化 # 确保缓存已初始化
cache = await self.get_cached_data() cache = await self.get_cached_data()
async with cache._lock:
# Select sorted data based on sort_by parameter # Select sorted data based on sort_by parameter
data = (cache.sorted_by_date if sort_by == 'date' data = (cache.sorted_by_date if sort_by == 'date'
else cache.sorted_by_name) else cache.sorted_by_name)
@@ -177,7 +175,7 @@ class LoraScanner:
if self._cache is None: if self._cache is None:
return False return False
return self._cache.update_preview_url(file_path, preview_url) return await self._cache.update_preview_url(file_path, preview_url)
async def scan_single_lora(self, file_path: str) -> Optional[Dict]: async def scan_single_lora(self, file_path: str) -> Optional[Dict]:
"""Scan a single LoRA file and return its metadata""" """Scan a single LoRA file and return its metadata"""