#!/usr/bin/env python3

import os
import sys
import socket
import urllib.request
import subprocess
import tempfile
import random  # Pour créer un nom unique

print("Content-Type: text/plain\n")
print("test")

resultat = subprocess.run(
        ["python3", "fetch.py", "1"],
        capture_output=True,  # Capture ce que le script affiche avec print()
        text=True,            # Convertit automatiquement les octets en chaîne de caractères (str)
        check=True
)
code_latex = resultat.stdout

print(code_latex)

# On génère un nom unique pour éviter les conflits si 2 personnes cliquent en même temps
id_unique = f"fiche_{random.randint(1000, 9999)}"
dossier_courant = os.path.dirname(os.path.abspath(__file__))

compiler = subprocess.run(
        ["luatex", "-interaction=nonstopmode", f"-output-directory={dossier_courant}", f"-jobname={id_unique}", "\\input /dev/stdin"],
        input=code_latex.encode('utf-8'),
        capture_output=True,
        text=False
)

print(compiler.stdout)

# Chemins des fichiers générés localement
chemin_pdf = os.path.join(dossier_courant, f"{id_unique}.pdf")
chemin_log = os.path.join(dossier_courant, f"{id_unique}.log")

print("yeyeyey")

# Lecture et envoi du PDF si existant
if os.path.exists(chemin_pdf):
	print("yeyeyey2")
	with open(chemin_pdf, "rb") as f:
		pdf_data = f.read()
	sys.stdout.buffer.write(pdf_data)
	os.remove(chemin_pdf)
	if os.path.exists(chemin_log):
		os.remove(chemin_log)
