diff --git a/main.py b/main.py index 83991b1..b8692c1 100755 --- a/main.py +++ b/main.py @@ -6,7 +6,6 @@ from pathlib import Path from subprocess import Popen from typing import NoReturn -import ffmpeg from prawcore import ResponseException from utils.console import print_substep from reddit.subreddit import get_subreddit_threads @@ -62,7 +61,6 @@ def main(POST_ID=None) -> None: make_final_video(number_of_comments, length, reddit_object, bg_config) - def run_many(times) -> None: for x in range(1, times + 1): print_step( @@ -73,30 +71,24 @@ def run_many(times) -> None: def shutdown() -> NoReturn: - - if "redditid" in globals() : + if "redditid" in globals(): print_markdown("## Clearing temp files") cleanup(redditid) - print("Exiting...") - sys.exit() print("Exiting...") sys.exit() - - if __name__ == "__main__": if sys.version_info.major != 3 or sys.version_info.minor != 10: print("Hey! Congratulations, you've made it so far (which is pretty rare with no Python 3.10). Unfortunately, this program only works on Python 3.10. Please install Python 3.10 and try again.") sys.exit() - ffmpeg_install() # install ffmpeg if not installed + ffmpeg_install() directory = Path().absolute() config = settings.check_toml( f"{directory}/utils/.config.template.toml", f"{directory}/config.toml" ) - if not config : - sys.exit() + config is False and sys.exit() if ( not settings.config["settings"]["tts"]["tiktok_sessionid"] @@ -125,10 +117,8 @@ if __name__ == "__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() except Exception as err: config["settings"]["tts"]["tiktok_sessionid"] = "REDACTED" diff --git a/run.bat b/run.bat index b37ea3b..d010f81 100644 --- a/run.bat +++ b/run.bat @@ -6,6 +6,9 @@ if exist "%VENV_DIR%" ( call "%VENV_DIR%\Scripts\activate.bat" ) +echo Installing dependencies... +pip install -r requirements.txt + echo Running Python script... python main.py @@ -13,8 +16,3 @@ if errorlevel 1 ( echo An error occurred. Press any key to exit. pause >nul ) - -if exist "%VENV_DIR%" ( - echo Deactivating virtual environment... - call "%VENV_DIR%\Scripts\deactivate.bat" -) diff --git a/utils/ffmpeg_install.py b/utils/ffmpeg_install.py index 3eec405..1171d96 100644 --- a/utils/ffmpeg_install.py +++ b/utils/ffmpeg_install.py @@ -22,13 +22,11 @@ def ffmpeg_install_windows(): for file in os.listdir("ffmpeg/doc"): os.remove(f"ffmpeg/doc/{file}") os.rmdir("ffmpeg/doc") - - os.rmdir("ffmpeg/LICENSE.txt") + os.remove("ffmpeg/LICENSE.txt") os.rmdir("ffmpeg/") print("FFmpeg installed successfully! Please restart your computer and then re-run the program.") - except Exception as e: print( "An error occurred while trying to install FFmpeg. Please try again. Otherwise, please install FFmpeg manually and try again." @@ -77,10 +75,13 @@ def ffmpeg_install(): # Try to run the FFmpeg command subprocess.run(['ffmpeg', '-version'], check=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) except FileNotFoundError as e: - if not os.path.exists("./results") : + # Check if there's ffmpeg.exe in the current directory + if os.path.exists("./ffmpeg.exe"): print('FFmpeg is installed on this system! If you are seeing this error for the second time, restart your computer.') print('FFmpeg is not installed on this system.') - + resp = input( + "We can try to automatically install it for you. Would you like to do that? (y/n): " + ) if resp.lower() == "y": print("Installing FFmpeg...") if os.name == "nt": diff --git a/utils/posttextparser.py b/utils/posttextparser.py index d06fa06..120d4aa 100644 --- a/utils/posttextparser.py +++ b/utils/posttextparser.py @@ -1,5 +1,6 @@ import os import re +import time from typing import List import spacy @@ -9,19 +10,19 @@ from utils.voice import sanitize_text # working good -def posttextparser(obj,*,tried:bool=False) -> List[str]: - text:str = re.sub("\n", " ", obj) - +def posttextparser(obj, *, tried: bool = False) -> List[str]: + text: str = re.sub("\n", " ", obj) try: nlp = spacy.load("en_core_web_sm") except OSError as e: if not tried: os.system("python -m spacy download en_core_web_sm") - return posttextparser(obj,tried=True) - - print_step(" The spacy model can't load. You need to install it with the command \npython -m spacy download en_core_web_sm ") + time.sleep(5) + return posttextparser(obj, tried=True) + print_step( + "The spacy model can't load. You need to install it with the command \npython -m spacy download en_core_web_sm ") raise e - + doc = nlp(text) newtext: list = [] diff --git a/utils/validate.py b/utils/validate.py deleted file mode 100644 index 49df0f2..0000000 --- a/utils/validate.py +++ /dev/null @@ -1,20 +0,0 @@ -import sys -from typing import NoReturn - -from utils import settings -from utils.console import print_substep - - -def validat_env(obj) -> NoReturn | None: - """ - check for wrong - """ - if ( - settings.config["settings"]["tts"]["tiktok_sessionid"] == "" - and settings.config["settings"]["tts"]["voice_choice"] == "tiktok" - ): - print_substep( - "TikTok voice requires a sessionid! Check our documentation on how to obtain one.", - "bold red", - ) - sys.exit() \ No newline at end of file