34 lines
1.0 KiB
Python
34 lines
1.0 KiB
Python
# 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,
|
|
)
|