"""Parche idempotente: registra el blueprint de reacciones en app.py y añade
la tarjeta en templates/index.html. Ejecutar dentro de ~/apps/quimica/ del servidor.
"""
import os

APP = "app.py"
INDEX = "templates/index.html"


def aplicar_app():
    with open(APP, encoding="utf-8") as f:
        texto = f.read()
    if "reacciones_cdt" in texto:
        print("app.py: ya registrado, omitiendo")
        return
    # Insertar import tras el import del blueprint RA3.
    marca = "from ra3_cdt1 import bp as ra3_bp"
    import_bloque = f"{marca}\nfrom reacciones_cdt import bp as reacciones_bp"
    texto = texto.replace(marca, import_bloque, 1)
    marca2 = "app.register_blueprint(ra3_bp)"
    texto = texto.replace(marca2, f"{marca2}\napp.register_blueprint(reacciones_bp)", 1)
    with open(APP, "w", encoding="utf-8") as f:
        f.write(texto)
    print("app.py: blueprint registrado")


def aplicar_index():
    with open(INDEX, encoding="utf-8") as f:
        texto = f.read()
    if "reacciones-quimicas" in texto:
        print("index.html: tarjeta ya presente, omitiendo")
        return
    ancla = '<div class="card proximamente">'
    tarjeta = (
        '<div class="card">\n'
        '<h2>Reacciones Químicas (4.1)</h2>\n'
        '<p>Concepto de reacción química, evidencias, representación simbólica '
        'y clasificación (síntesis, descomposición, sustitución simple, doble '
        'sustitución y combustión). Actividad a libro abierto.</p>\n'
        '<a class="btn" href="/quimica/reacciones-quimicas">Abrir actividad</a>\n'
        '</div>\n'
    )
    if ancla in texto:
        texto = texto.replace(ancla, tarjeta + ancla, 1)
    else:
        texto = texto.rstrip() + "\n" + tarjeta
    with open(INDEX, "w", encoding="utf-8") as f:
        f.write(texto)
    print("index.html: tarjeta añadida")


if __name__ == "__main__":
    aplicar_app()
    aplicar_index()