from utils . console import print_markdown
from reddit . subreddit import get_subreddit_threads
from video_creation . background import download_background , chop_background_video
from video_creation . voices import save_text_to_mp3
from video_creation . screenshot_downloader import download_screenshots_of_reddit_posts
from video_creation . final_video import make_final_video
from dotenv import load_dotenv
import os , time , shutil
REQUIRED_VALUES = [ " REDDIT_CLIENT_ID " , " REDDIT_CLIENT_SECRET " , " REDDIT_USERNAME " , " REDDIT_PASSWORD " , " OPACITY " ]
print_markdown (
" ### Thanks for using this tool! [Feel free to contribute to this project on GitHub!](https://lewismenelaws.com) If you have any questions, feel free to reach out to me on Twitter or submit a GitHub issue. "
)
time . sleep ( 3 )
load_dotenv ( )
configured = True
if not os . path . exists ( " .env " ) :
shutil . copy ( " .env.template " , " .env " )
configured = False
for val in REQUIRED_VALUES :
if val not in os . environ or not os . getenv ( val ) :
print ( f " Please set the variable \" { val } \" in your .env file. " )
configured = False
try :
float ( os . getenv ( " OPACITY " ) )
except :
print ( f " Please ensure that OPACITY is set between 0 and 1 in your .env file " )
configured = False
if configured :
reddit_object = get_subreddit_threads ( os . getenv ( " VOICE " ) )
length , number_of_comments = save_text_to_mp3 ( reddit_object , os . getenv ( " VOICE " ) )
download_screenshots_of_reddit_posts ( reddit_object , number_of_comments , os . getenv ( " THEME " , " light " ) )
download_background ( )
chop_background_video ( length )
final_video = make_final_video ( number_of_comments )