Added a line to code to the shutdown function to inform the user of exiting the program upon calling the function. And, Also wrote a section of CONTRIBUTING.md to help beginner developers to setup their fork of the repo as many beginners to github might not know how to setup this up.
98 lines
5.1 KiB
Python
Executable File
98 lines
5.1 KiB
Python
Executable File
#!/usr/bin/env python
|
|
import math
|
|
from subprocess import Popen
|
|
from os import name
|
|
|
|
from prawcore import ResponseException
|
|
|
|
from reddit.subreddit import get_subreddit_threads
|
|
from utils.cleanup import cleanup
|
|
from utils.console import print_markdown, print_step
|
|
from utils import settings
|
|
|
|
from video_creation.background import (
|
|
download_background,
|
|
chop_background_video,
|
|
get_background_config,
|
|
)
|
|
from video_creation.final_video import make_final_video
|
|
from video_creation.screenshot_downloader import download_screenshots_of_reddit_posts
|
|
from video_creation.voices import save_text_to_mp3
|
|
|
|
__VERSION__ = "2.3.1"
|
|
__BRANCH__ = "develop"
|
|
|
|
print(
|
|
"""
|
|
██████╗ ███████╗██████╗ ██████╗ ██╗████████╗ ██╗ ██╗██╗██████╗ ███████╗ ██████╗ ███╗ ███╗ █████╗ ██╗ ██╗███████╗██████╗
|
|
██╔══██╗██╔════╝██╔══██╗██╔══██╗██║╚══██╔══╝ ██║ ██║██║██╔══██╗██╔════╝██╔═══██╗ ████╗ ████║██╔══██╗██║ ██╔╝██╔════╝██╔══██╗
|
|
██████╔╝█████╗ ██║ ██║██║ ██║██║ ██║ ██║ ██║██║██║ ██║█████╗ ██║ ██║ ██╔████╔██║███████║█████╔╝ █████╗ ██████╔╝
|
|
██╔══██╗██╔══╝ ██║ ██║██║ ██║██║ ██║ ╚██╗ ██╔╝██║██║ ██║██╔══╝ ██║ ██║ ██║╚██╔╝██║██╔══██║██╔═██╗ ██╔══╝ ██╔══██╗
|
|
██║ ██║███████╗██████╔╝██████╔╝██║ ██║ ╚████╔╝ ██║██████╔╝███████╗╚██████╔╝ ██║ ╚═╝ ██║██║ ██║██║ ██╗███████╗██║ ██║
|
|
╚═╝ ╚═╝╚══════╝╚═════╝ ╚═════╝ ╚═╝ ╚═╝ ╚═══╝ ╚═╝╚═════╝ ╚══════╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝
|
|
"""
|
|
)
|
|
# Modified by JasonLovesDoggo
|
|
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. You can find solutions to many common problems in the [Documentation](https://luka-hietala.gitbook.io/documentation-for-the-reddit-bot/)"
|
|
)
|
|
print_step(f"You are using v{__VERSION__} of the bot")
|
|
|
|
|
|
def main(POST_ID=None):
|
|
cleanup()
|
|
reddit_object = get_subreddit_threads(POST_ID)
|
|
length, number_of_comments = save_text_to_mp3(reddit_object)
|
|
length = math.ceil(length)
|
|
download_screenshots_of_reddit_posts(reddit_object, number_of_comments)
|
|
bg_config = get_background_config()
|
|
download_background(bg_config)
|
|
chop_background_video(bg_config, length)
|
|
make_final_video(number_of_comments, length, reddit_object, bg_config)
|
|
|
|
|
|
def run_many(times):
|
|
for x in range(1, times + 1):
|
|
print_step(
|
|
f'on the {x}{("th", "st", "nd", "rd", "th", "th", "th", "th", "th", "th")[x % 10]} iteration of {times}'
|
|
) # correct 1st 2nd 3rd 4th 5th....
|
|
main()
|
|
Popen("cls" if name == "nt" else "clear", shell=True).wait()
|
|
|
|
|
|
def shutdown():
|
|
print_markdown("## Clearing temp files")
|
|
# Informs the user of exiting the program
|
|
print("Exiting...")
|
|
cleanup()
|
|
exit()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
config = settings.check_toml("utils/.config.template.toml", "config.toml")
|
|
config is False and exit()
|
|
try:
|
|
if config["settings"]["times_to_run"]:
|
|
run_many(config["settings"]["times_to_run"])
|
|
|
|
elif len(config["reddit"]["thread"]["post_id"].split("+")) > 1:
|
|
for index, post_id in enumerate(config["reddit"]["thread"]["post_id"].split("+")):
|
|
index += 1
|
|
print_step(
|
|
f'on the {index}{("st" if index % 10 == 1 else ("nd" if index % 10 == 2 else ("rd" if index % 10 == 3 else "th")))} post of {len(config["reddit"]["thread"]["post_id"].split("+"))}'
|
|
)
|
|
main(post_id)
|
|
Popen("cls" if name == "nt" else "clear", shell=True).wait()
|
|
else:
|
|
main()
|
|
except KeyboardInterrupt:
|
|
shutdown()
|
|
except ResponseException:
|
|
# error for invalid credentials
|
|
print_markdown("## Invalid credentials")
|
|
print_markdown("Please check your credentials in the config.toml file")
|
|
|
|
shutdown()
|
|
|
|
# todo error
|