import subprocess
import re

# Fichier Org d'origine
fichier_org = "livre.org"
style_css = "style.css"

# Copie du fichier Org
fichier_org_copie = "livre_org_copie.org"

# Créer une copie du fichier Org
with open(fichier_org, "r") as fichier:
    contenu_org = fichier.read()

with open(style_css, "r") as fichier:
    contenu_css = fichier.read()

# Compter le nombre de lignes du fichier original
nb_lignes_origine = len(contenu_org.splitlines())

# Supprimer les titres qui ne contiennent pas le tag :title:
contenu_org = re.sub(r"^\*+.*\n", lambda x: x.group() if ":title:" in x.group() else "", contenu_org, flags=re.MULTILINE)

# Effacer toutes les occurences de ":title:"
contenu_org = re.sub(r":title:", "", contenu_org)

# Compter le nombre de lignes du fichier modifié
nb_lignes_modifie = len(contenu_org.splitlines())

# Afficher le nombre de lignes supprimées
nb_lignes_supprimees = nb_lignes_origine - nb_lignes_modifie
print(f"Nombre de lignes supprimées : {nb_lignes_supprimees}")

# Écrire la copie du fichier Org
with open(fichier_org_copie, "w") as fichier:
    fichier.write(contenu_org)

print('Convertir la copie du fichier Org en HTML')

# Convertir la copie du fichier Org en HTML
process = subprocess.run(["pandoc", "livre_org_copie.org", "-o", "livre.html"], capture_output=True, text=True)

# Afficher les messages de console du subprocess
print(process.stdout)
print(process.stderr)


# ouvrir le html et insérer le style css TODO
with open("livre.html", "r") as fichier:
    contenu_html = fichier.read()
contenu_html = re.sub("</head>", "<style type='text/css' >"+contenu_css+"</style></head>", contenu_org)
with open(fichier_org_copie, "w") as fichier:
    fichier.write(contenu_org)

print('Convertir la copie du fichier Org en pdf')
process = subprocess.run(["pandoc", "livre.org", "-o", "livre.pdf"], capture_output=True, text=True)

# Afficher les messages de console du subprocess
print(process.stdout)
print(process.stderr)

print('Convertir la copie du fichier Org en ebook')
process = subprocess.run(["pandoc", "livre.org", "-o", "livre.epub"], capture_output=True, text=True)

# Afficher les messages de console du subprocess
print(process.stdout)
print(process.stderr)
