diff --git a/api/scanner.py b/api/scanner.py index 2501e0f..4003e9c 100644 --- a/api/scanner.py +++ b/api/scanner.py @@ -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( diff --git a/scraper.py b/scraper.py index 36637bd..969623d 100644 --- a/scraper.py +++ b/scraper.py @@ -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: diff --git a/web/main.js b/web/main.js index a18d340..d0cc894 100644 --- a/web/main.js +++ b/web/main.js @@ -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');