book_generator/structure_generator.py
2025-02-22 23:34:25 +01:00

37 lines
1.7 KiB
Python

# 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")