From da6ff83033f25ed519ed428ae56bc6a72cd6244c Mon Sep 17 00:00:00 2001 From: Sergio Date: Wed, 18 Feb 2026 12:03:49 +0100 Subject: [PATCH] scanner.py --- core/scanner.py | 21 +++++++++++++++++++++ main.py | 26 ++++++++++++++++++++++++++ 2 files changed, 47 insertions(+) create mode 100644 core/scanner.py create mode 100644 main.py diff --git a/core/scanner.py b/core/scanner.py new file mode 100644 index 0000000..9c1be86 --- /dev/null +++ b/core/scanner.py @@ -0,0 +1,21 @@ +# core/scanner.py + +import os + +VALID_EXTENSIONS = {".cbr", ".cbz"} + +def find_comic_files(base_path): + """ + Recorre recursivamente un directorio y devuelve una lista + con todos los archivos .cbr y .cbz encontrados. + """ + comic_files = [] + + for root, _, files in os.walk(base_path): + for file in files: + ext = os.path.splitext(file)[1].lower() + if ext in VALID_EXTENSIONS: + full_path = os.path.join(root, file) + comic_files.append(full_path) + + return comic_files diff --git a/main.py b/main.py new file mode 100644 index 0000000..950b20a --- /dev/null +++ b/main.py @@ -0,0 +1,26 @@ +# main.py + +import sys +from core.scanner import find_comic_files + +def main(): + # Obtener ruta desde argumentos o pedirla + if len(sys.argv) > 1: + base_path = sys.argv[1] + else: + base_path = input("Introduce la ruta de la colección: ").strip() + + print(f"Buscando archivos CBR/CBZ en: {base_path}\n") + + comic_files = find_comic_files(base_path) + + if not comic_files: + print("No se encontraron archivos .cbr o .cbz") + return + + print("Archivos encontrados:") + for f in comic_files: + print(f" - {f}") + +if __name__ == "__main__": + main()