Fix+Debug: generate-previews mit Dir-Info + no such column fix (SW by-v939)

This commit is contained in:
rene 2026-05-14 12:54:31 +02:00
parent 8080d7cda1
commit 947832f63d

View file

@ -1058,21 +1058,25 @@ async def ors_stats(user=Depends(require_mod)):
@router.post("/media/generate-previews")
async def generate_media_previews(user=Depends(require_admin)):
"""Generiert fehlende _preview.jpg für alle Bilder in /data/media."""
import io as _io
"""Generiert fehlende _preview.webp für alle Bilder in /data/media."""
import logging as _log
from media_utils import generate_preview, _PREVIEW_EXTS
_logger = _log.getLogger(__name__)
MEDIA_DIR = os.getenv("MEDIA_DIR", "/data/media")
generated = 0
skipped = 0
errors = 0
dirs_info = {}
for subdir in ("diary", "forum", "breeds", "breeds/gallery", "breeds/submissions"):
folder = os.path.join(MEDIA_DIR, subdir)
if not os.path.isdir(folder):
dirs_info[subdir] = "not found"
continue
for fname in os.listdir(folder):
# Nur Original-Bilder (keine _preview, _thumb, Videos, PDFs)
files = os.listdir(folder)
dirs_info[subdir] = f"{len(files)} files"
for fname in files:
low = fname.lower()
if "_preview" in low or "_thumb" in low:
continue
@ -1091,10 +1095,13 @@ async def generate_media_previews(user=Depends(require_admin)):
generated += 1
else:
skipped += 1
_logger.warning(f"Preview None für {subdir}/{fname}")
except Exception as exc:
errors += 1
_logger.error(f"Preview-Fehler {subdir}/{fname}: {exc}")
return {"generated": generated, "skipped": skipped, "errors": errors}
_logger.info(f"generate-previews: {generated} neu, {skipped} vorhanden, {errors} Fehler | dirs: {dirs_info}")
return {"generated": generated, "skipped": skipped, "errors": errors, "dirs": dirs_info}
# ------------------------------------------------------------------