#!/usr/bin/env python3
"""
Agrega el shortcode {{< tutorial-links >}} al final de todos los posts
dentro de content/post//*.md

Uso:
Colócate dentro de la carpeta content/post/ y ejecuta:
python3 agregar_tutorial_links.py

O bien, ejecútalo desde cualquier lugar indicando la ruta:
    python3 agregar_tutorial_links.py /ruta/a/content/post

Características:
- Es idempotente: si el post ya tiene el shortcode, no lo duplica.
- Ignora archivos _index.md (son páginas de listado, no posts).
- Solo procesa archivos .md
- Hace un respaldo opcional (ver DRY_RUN abajo) antes de tocar nada.
"""

import sys
from pathlib import Path

Cambia a True si quieres solo ver qué archivos se modificarían,

sin escribir nada todavía (simulación).

DRY_RUN = False

SHORTCODE_BLOCK = “\n{{< tutorial-links >}}\n \n”

def procesar_post(filepath: Path) → bool:
"""Agrega el shortcode al final del archivo si no está ya presente.
Retorna True si el archivo fue modificado."""

contenido = filepath.read_text(encoding="utf-8")

# Evitar duplicados si el script se ejecuta más de una vez
if "{{< tutorial-links >}}" in contenido:
    return False

# Aseguramos que el contenido actual termine con salto de línea
# antes de pegar el bloque nuevo, para no dejar todo pegado.
if not contenido.endswith("\n"):
    contenido += "\n"

nuevo_contenido = contenido + SHORTCODE_BLOCK

if not DRY_RUN:
    filepath.write_text(nuevo_contenido, encoding="utf-8")

return True

def main():
# Carpeta base: si se pasa como argumento se usa esa, si no, la carpeta actual
if len(sys.argv) > 1:
base_dir = Path(sys.argv[1])
else:
base_dir = Path.cwd()

if not base_dir.exists() or not base_dir.is_dir():
    print(f"❌ La carpeta '{base_dir}' no existe o no es un directorio.")
    sys.exit(1)

print(f"📂 Buscando posts dentro de: {base_dir.resolve()}")
if DRY_RUN:
    print("⚠️  Modo simulación (DRY_RUN=True): no se escribirá nada.\n")

modificados = 0
omitidos = 0
total = 0

# Recorre todas las subcarpetas (3ds, gb, gba, etc.) y sus .md
for md_file in sorted(base_dir.rglob("*.md")):
    if md_file.name == "_index.md":
        continue

    total += 1
    if procesar_post(md_file):
        modificados += 1
        print(f"✅ Modificado: {md_file.relative_to(base_dir)}")
    else:
        omitidos += 1
        print(f"⏭️  Ya tenía el shortcode, se omitió: {md_file.relative_to(base_dir)}")

print("\n--- Resumen ---")
print(f"Total de posts encontrados: {total}")
print(f"Modificados: {modificados}")
print(f"Omitidos (ya tenían el shortcode): {omitidos}")

if name == “main”:
main()