fix: 修复全局扫描不下载预览图及强制覆盖失效的问题
- 修正全局扫描默认跳过媒体下载的问题,使其能正常获取预览图。 - 修正 --force-overwrite 未生效的问题,开启强制覆盖时将主动清理旧的自定义预览文件。 - 调整前端扫描向导按钮逻辑,默认指向全局扫描以避免遗漏非当前页面的模型。
This commit is contained in:
+4
-1
@@ -151,6 +151,7 @@ async def api_scan_all(request):
|
||||
virtual_rename = data.get("virtual_rename", False)
|
||||
physical_rename = data.get("physical_rename", False)
|
||||
force_overwrite = data.get("force_overwrite", False)
|
||||
skip_media = data.get("skip_media", False)
|
||||
|
||||
try:
|
||||
with open(marker_file, 'w') as f: f.write('1')
|
||||
@@ -165,7 +166,7 @@ async def api_scan_all(request):
|
||||
for base_dir in paths:
|
||||
if not os.path.exists(base_dir): continue
|
||||
print(f"[Anomalous Browser] Global scan processing: {base_dir}")
|
||||
cmd = [sys.executable, scraper_path, base_dir, "--skip-media"]
|
||||
cmd = [sys.executable, scraper_path, base_dir]
|
||||
if offline_only:
|
||||
cmd.append("--offline-only")
|
||||
if skip_rename:
|
||||
@@ -176,6 +177,8 @@ async def api_scan_all(request):
|
||||
cmd.append("--physical-rename")
|
||||
if force_overwrite:
|
||||
cmd.append("--force-overwrite")
|
||||
if skip_media:
|
||||
cmd.append("--skip-media")
|
||||
if not use_local_metadata:
|
||||
cmd.append("--skip-local-metadata")
|
||||
subprocess.run(
|
||||
|
||||
+15
-5
@@ -408,14 +408,24 @@ def main():
|
||||
print(f"[+] 媒体下载成功 -> {os.path.basename(saved_path)}")
|
||||
# Promote to .preview if no custom cover exists
|
||||
has_custom = False
|
||||
for c_ext in ['.preview.png', '.preview.jpg', '.preview.jpeg', '.preview.webp', '.preview.gif', '.preview.avif', '.preview.mp4', '.preview.webm', '.preview.mov', '.preview.avi', '.png', '.jpg', '.jpeg', '.webp', '.gif', '.avif', '.mp4', '.webm', '.mov', '.avi']:
|
||||
p = old_base + c_ext
|
||||
if os.path.exists(p) and not p.endswith('.civitai_bak' + c_ext):
|
||||
has_custom = True
|
||||
break
|
||||
if not args.force_overwrite:
|
||||
for c_ext in ['.preview.png', '.preview.jpg', '.preview.jpeg', '.preview.webp', '.preview.gif', '.preview.avif', '.preview.mp4', '.preview.webm', '.preview.mov', '.preview.avi', '.png', '.jpg', '.jpeg', '.webp', '.gif', '.avif', '.mp4', '.webm', '.mov', '.avi']:
|
||||
p = old_base + c_ext
|
||||
if os.path.exists(p) and not p.endswith('.civitai_bak' + c_ext):
|
||||
has_custom = True
|
||||
break
|
||||
if not has_custom:
|
||||
ext = os.path.splitext(saved_path)[1]
|
||||
import shutil
|
||||
if args.force_overwrite:
|
||||
for c_ext in ['.preview.png', '.preview.jpg', '.preview.jpeg', '.preview.webp', '.preview.gif', '.preview.avif', '.preview.mp4', '.preview.webm', '.preview.mov', '.preview.avi', '.png', '.jpg', '.jpeg', '.webp', '.gif', '.avif', '.mp4', '.webm', '.mov', '.avi']:
|
||||
p = old_base + c_ext
|
||||
if os.path.exists(p) and not p.endswith('.civitai_bak' + c_ext):
|
||||
try:
|
||||
os.remove(p)
|
||||
print(f"[*] 强制覆盖: 已删除旧预览文件 {os.path.basename(p)}")
|
||||
except:
|
||||
pass
|
||||
preview_ext = ext if ext.startswith('.preview.') else f".preview{ext}"
|
||||
shutil.copy2(saved_path, old_base + preview_ext)
|
||||
else:
|
||||
|
||||
+1
-1
@@ -887,7 +887,7 @@ class AnomalousBrowser {
|
||||
document.body.appendChild(wizard);
|
||||
};
|
||||
|
||||
scanBtn.onclick = () => createWizardModal();
|
||||
scanBtn.onclick = () => createWizardModal(true);
|
||||
this.sidebarActions.appendChild(scanBtn);
|
||||
|
||||
const energyBtn = document.createElement('button');
|
||||
|
||||
Reference in New Issue
Block a user