import os
import re
import shutil

# Configuración
directorio = "."
# Agrega aquí las extensiones que uses
extensiones_permitidas = (".jpg", ".jpeg", ".png", ".webp")

for archivo in os.listdir(directorio):
    # Verificamos si es un archivo con la extensión permitida
    if archivo.lower().endswith(extensiones_permitidas):
        
        # 1. Separamos nombre y extensión (guardamos la extensión tal cual)
        nombre_original, extension = os.path.splitext(archivo)
        ext_minuscula = extension.lower() # Forzamos la extensión a minúsculas
        
        # 2. Pasamos el cuerpo del nombre a MAYÚSCULAS
        nombre_mayus = nombre_original.upper()
        
        # 3. Extraemos los códigos (ej: VPC10, L0211) 
        # El regex busca grupos de letras y números
        codigos = re.findall(r'[A-Z0-9]+', nombre_mayus)
        
        # Filtramos la letra "Y" si quedó suelta como código
        codigos = [c for c in codigos if c != "Y"]

        if len(codigos) > 1:
            print(f"Separando: '{archivo}' -> {codigos}")
            for cod in codigos:
                # Nombre en MAYÚSCULAS + extensión en minúsculas
                nuevo_nombre = f"{cod}{ext_minuscula}"
                shutil.copy2(os.path.join(directorio, archivo), os.path.join(directorio, nuevo_nombre))
            
            # Opcional: Descomenta la línea de abajo para borrar el original combinado
            # os.remove(os.path.join(directorio, archivo))
            
        elif len(codigos) == 1:
            # Si solo hay un código, simplemente lo renombramos a Mayúsculas.jpg
            nuevo_nombre = f"{codigos[0]}{ext_minuscula}"
            if archivo != nuevo_nombre:
                print(f"Renombrando: {archivo} -> {nuevo_nombre}")
                os.rename(os.path.join(directorio, archivo), os.path.join(directorio, nuevo_nombre))
