# processors/cleaner.py import os import shutil from core.constants import TRASH_FILES from core.result import StepResult def clean_directory(work_dir: str) -> StepResult: """ Elimina TRASH_FILES del directorio ya extraído. Elimina tanto ficheros como directorios de basura (e.g. __MACOSX). Sin I/O de archivo de cómic; trabaja sobre el directorio temporal. """ removed = [] for root, dirs, files in os.walk(work_dir, topdown=False): for f in files: if f.lower() in TRASH_FILES: full = os.path.join(root, f) os.remove(full) removed.append(os.path.relpath(full, work_dir)) for d in dirs: if d.lower() in TRASH_FILES: full = os.path.join(root, d) shutil.rmtree(full, ignore_errors=True) removed.append(os.path.relpath(full, work_dir) + "/") details = [f"Eliminado: {r}" for r in removed] return StepResult( step="clean", changed=bool(removed), details=details, )