mirror of
https://forge.chapril.org/tykayn/book_generator
synced 2025-06-20 01:34:43 +02:00
37 lines
1.7 KiB
Python
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")
|