# créer une structure de livre orgmode selon des contraintes données
# python structure_generator.py --objective_words 1000 --objective_chapter 2000 --number_chapters 10 --number_parts 4 --save_livre True
import argparse
parser = argparse.ArgumentParser(description='Générer un livre avec des chapitres et des parties.')

parser.add_argument('--objective_words', type=int, default=500, help='le nombre de mots par chapitre (par défaut 500)')
parser.add_argument('--objective_chapter', type=int, default=1500, help='le nombre de mots par chapitre (par défaut 1500)')
parser.add_argument('--number_chapters', type=int, default=5, help='le nombre de chapitres (par défaut 5)')
parser.add_argument('--number_parts', type=int, default=3, help='le nombre de parties (par défaut 3)')
parser.add_argument('--save_livre', type=bool, default=False, help='si le fichier "livre.org" doit être écrasé avec la nouvelle structure générée (par défaut False)')


args = parser.parse_args()
print(args)

book_content = ''

for i in range(args.number_chapters):
    book_content += f"\n\n** Chapitre {i+1} :title:target_{args.objective_words}:"
    for j in range(args.number_parts):
            book_content += f"\n\n*** Chapitre {i+1} - Partie {j+1} :title:target_{args.objective_words}:"

print("--------------")
print(book_content)
print("--------------")

if args.save_livre:
    now = datetime.datetime.now()
    date_string = now.strftime("%Y-%m-%d_%H-%M-%S")
    backup_file_path = f"{date_string}__livre.org"
    os.copy("livre.org", backup_file_path)

    with open('livre.org', 'w') as f:
        f.write(book_content)
    print("Livres sauvegardé sous le nom de livre.txt")
else:
    print("Vous pouvez copier cette cascade de parties de livre dans livre.org")
