mirror of
https://github.com/Paillat-dev/FABLE.git
synced 2026-01-02 01:06:20 +00:00
Initial commit
This commit is contained in:
55
main.py
Normal file
55
main.py
Normal file
@@ -0,0 +1,55 @@
|
||||
import os
|
||||
import json
|
||||
import asyncio
|
||||
import logging
|
||||
|
||||
from generators.ideas import generate_ideas
|
||||
from generators.script import generate_script
|
||||
from generators.montage import mount, prepare, translate
|
||||
from generators.miniature import generate_miniature
|
||||
|
||||
logging.basicConfig(level=logging.INFO)
|
||||
|
||||
async def main():
|
||||
if input("Do you want to generate new ideas? (y/n)") == "y":
|
||||
ideas = await generate_ideas()
|
||||
if not os.path.exists('ideas'): os.makedirs('ideas')
|
||||
with open('ideas/ideas.json', 'w', encoding='utf-8') as f:
|
||||
f.write(ideas)
|
||||
with open('ideas/ideas.json', 'r', encoding='utf-8') as f:
|
||||
ideas = json.load(f)
|
||||
f.close()
|
||||
for i in range(len(ideas)):
|
||||
print(str(i) + ". " + ideas[i]['title'])
|
||||
idea = int(input("Which idea do you want to generate a script for? (enter the number): "))
|
||||
idea = ideas[idea]
|
||||
title = idea['title']
|
||||
title = title[:25]
|
||||
i = 0
|
||||
path = "videos/" + title
|
||||
path = path.replace(" ", "_").replace(":", "")
|
||||
if not os.path.exists(path + "/script.json"):
|
||||
script = await generate_script(idea['title'], idea['description'])
|
||||
if os.path.exists(path) and os.path.exists(path + "/script.json"):
|
||||
if input("There is already a script for this idea. Do you want to overwrite it? (y/n)") != "y":
|
||||
print("Exiting...")
|
||||
exit(1)
|
||||
if not os.path.exists(path): os.makedirs(path)
|
||||
with open(path + "/script.json", 'w', encoding='utf-8') as f:
|
||||
f.write(script)
|
||||
f.close()
|
||||
script = prepare(path)
|
||||
credits = mount(path, script)
|
||||
with open(path + "/meta.txt", 'w', encoding='utf-8') as f:
|
||||
f.write(f"Title: {idea['title']}\nDescription: {idea['description']}\nMusic credits: {credits}")
|
||||
f.close()
|
||||
with open(path + "/meta_FR.txt", 'w', encoding='utf-8') as f:
|
||||
transtitle = translate('FR', idea['title']) #use the non formatted title
|
||||
transdesc = translate('FR', idea['description'])
|
||||
f.write(f"Titre: {transtitle}\nDescription: {transdesc}\nCrédits musicaux: {credits}")
|
||||
f.close()
|
||||
generate_miniature(path, title=idea['title'], description=idea['description'])
|
||||
print(f"Your video is ready! You can find it in {path}.")
|
||||
|
||||
if __name__ == "__main__":
|
||||
asyncio.run(main())
|
||||
Reference in New Issue
Block a user