66 lines
1.9 KiB
Python
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()
|