"""
Script para importar archivos HTML y convertirlos a un archivo Markdown.
"""
import os
import sys
from pathlib import Path
import json
from utils.html_parser import procesar_html
from utils.markdown_handler import escribir_archivo_markdown
# Forzar UTF-8 en la salida estándar
sys.stdout.reconfigure(encoding="utf-8")
def main():
# Cargar configuraciones del entorno
configs = json.loads(os.environ.get("SCRIPT_CONFIGS", "{}"))
# Obtener working directory
working_directory = configs.get("working_directory", ".")
# Obtener configuraciones de nivel 2 (grupo)
group_config = configs.get("level2", {})
output_file = group_config.get("output_file", "contenido.md")
attachments_dir = group_config.get("attachments_dir", "adjuntos")
# Obtener directorio de salida (nivel 3)
work_config = configs.get("level3", {})
output_directory = work_config.get("output_directory", ".")
# Construir rutas absolutas
input_dir = (
working_directory # El directorio de trabajo es el directorio de entrada
)
output_path = os.path.join(output_directory, output_file)
attachments_path = os.path.join(output_directory, attachments_dir)
# Debug prints
print(f"Working directory: {working_directory}")
print(f"Input directory: {input_dir}")
print(f"Output directory: {output_directory}")
print(f"Output file: {output_path}")
print(f"Attachments directory: {attachments_path}")
# Asegurar que existen los directorios
os.makedirs(attachments_path, exist_ok=True)
# Verificar si el directorio de entrada existe
input_path = Path(input_dir)
if not input_path.exists():
print(f"Error: Input directory {input_path} does not exist")
return
# Buscar archivos HTML
html_files = []
for ext in ["*.html", "*.htm"]:
html_files.extend(list(input_path.glob(ext)))
print(f"Found {len(html_files)} HTML files")
if not html_files:
print("No HTML files found in the input directory.")
return
# Procesar archivos HTML
paginas = []
total_files = len(html_files)
successful_files = 0
failed_files = 0
for i, archivo in enumerate(html_files, 1):
print(f"\nProcessing [{i}/{total_files}] {archivo}")
pagina = procesar_html(archivo, attachments_path)
if pagina:
paginas.append(pagina)
# Verificar si hubo error al procesar
if pagina.contenido.startswith("Error al procesar:"):
failed_files += 1
print(f"❌ Failed: {pagina.contenido}")
else:
successful_files += 1
print(f"✅ Success: {pagina.titulo}")
# Escribir el archivo Markdown
if paginas:
print(f"\nSummary:")
print(f"- Total files: {total_files}")
print(f"- Successfully processed: {successful_files}")
print(f"- Failed: {failed_files}")
print(f"\nWriting {len(paginas)} pages to {output_path}")
if escribir_archivo_markdown(paginas, output_path):
print("Markdown file created successfully.")
else:
print("Error creating Markdown file.")
else:
print("No pages to write.")
if __name__ == "__main__":
main()