Files
comic-manager/main.py
T

66 lines
1.9 KiB
Python

# main.py
import argparse
from core.scanner import find_comic_files
from core.pipeline import Pipeline
def parse_args():
parser = argparse.ArgumentParser(description="Gestor de cómics CBR/CBZ")
parser.add_argument("--ruta", required=True)
parser.add_argument("--listar", action="store_true")
parser.add_argument("--validar", action="store_true")
parser.add_argument("--limpiar", action="store_true")
parser.add_argument("--convertir", action="store_true")
parser.add_argument("--estandarizar", action="store_true")
parser.add_argument("--formato", choices=["cbz", "cbr"], default="cbz")
parser.add_argument("--renumerar", action="store_true")
parser.add_argument("--uniformizar-imagenes", action="store_true")
parser.add_argument("--formato-imagen", choices=["jpg", "png", "webp"], default="jpg")
return parser.parse_args()
def main():
args = parse_args()
comic_files = find_comic_files(args.ruta)
if args.listar:
for f in comic_files:
print(f)
if args.validar:
pipeline = Pipeline(steps=[])
for f in comic_files:
result = pipeline.run(f)
if result.has_issues():
print(result.full_report())
print()
return
steps = []
if args.limpiar or args.estandarizar:
steps.append("clean")
if args.renumerar:
steps.append("normalize_pages")
if args.uniformizar_imagenes:
steps.append("normalize_images")
if args.convertir or args.estandarizar:
steps.append("convert")
if steps:
pipeline = Pipeline(
steps=steps,
desired_format=args.formato,
desired_image_format="." + args.formato_imagen,
)
for f in comic_files:
result = pipeline.run(f)
print(result.summary())
if __name__ == "__main__":
main()