diff --git a/Install.bat b/Install.bat new file mode 100644 index 0000000..f867c37 --- /dev/null +++ b/Install.bat @@ -0,0 +1,110 @@ +@echo off +setlocal enabledelayedexpansion +set VENV_DIR=.venv +set "requirements_file=requirements.txt" +:main +cls +:: Check if Python version 3.10.x is installed and create/activate a virtual environment. +python --version 2>NUL | findstr /R "3.10" > NUL +if %errorlevel% NEQ 0 ( + powershell write-host -fore Red It looks like python version 3.10.x isn't installed. Please refer to the documentation for help. + powershell write-host -fore Red https://reddit-video-maker-bot.netlify.app/docs/prerequisites +) else ( + powershell write-host -fore Green Python 3.10 is installed and running. + :activate + if exist "%VENV_DIR%" ( + echo Activating virtual environment... + call "%VENV_DIR%\Scripts\activate.bat" + ) else ( + echo Creating virtual environment... + python -m venv %VENV_DIR% + goto activate + ) + python.exe -m pip install --upgrade pip >NUL + if %errorlevel% equ 0 ( + powershell write-host -fore Green Pip is up-to-date. + ) else ( + powershell write-host -fore Green Pip has been upgraded to the latest version. + ) + :: Check if requirements.txt exists + if not exist %requirements_file% ( + powershell write-host -fore Red %requirements_file% does not exist. + exit /b 1 + ) + :: Loop through each line in requirements.txt and check if the package is installed + echo Checking dependencies... + for /f "tokens=1 delims=~=" %%a in (%requirements_file%) do ( + pip show %%a >nul 2>&1 + if errorlevel 1 ( + powershell write-host -fore Red %%a is not installed. + set "missing=1" + ) + ) + :: Check if any packages are missing + if defined missing ( + powershell write-host -fore Yellow One or more required packages are missing. + :ask_for_choice + powershell write-host -fore Yellow Do you want to install them? [Y/N]: + set /p choice= + set "choice=!choice:~0,1!" + set "choice=!choice:~0,1!" + if /i "!choice!"=="Y" ( + pip install -r "%requirements_file%" + if errorlevel 1 ( + powershell write-host -fore Red Installation failed. + goto :ask_for_choice + ) else ( + powershell write-host -fore Green Installation successful. + ) + ) else if /i "!choice!"=="N" ( + echo You chose not to install missing packages. + goto again + ) else ( + powershell write-host -fore Red Invalid choice. Please enter Y or N. + goto :ask_for_choice + ) + ) else ( + powershell write-host -fore Green All required packages are installed. + ) + :playwright_check + pip show playwright >nul 2>&1 + if %errorlevel% equ 0 ( + powershell write-host -fore Green Playwright is installed. + ) else ( + echo Installing Playwright... + python -m playwright install + python -m playwright install-deps + goto playwright_check + ) + :runbot? + powershell write-host -fore Yellow Would you like to run the bot now? [Y/N]: + set /p choice= + set "choice=!choice:~0,1!" + set "choice=!choice:~0,1!" + if /i "!choice!"=="Y" ( + call run.bat + goto :exit + ) else if /i "!choice!"=="N" ( + goto :again + ) else ( + powershell write-host -fore Red Invalid choice. Please enter Y or N. + goto :runbot? + ) +) +:again +powershell write-host -fore Yellow Do you want to run the script again? [Y/N]: +set /p choice= +set "choice=!choice:~0,1!" +set "choice=!choice:~0,1!" +if /i "!choice!"=="Y" ( + goto :main +) else if /i "!choice!"=="N" ( + goto :exit +) else ( + powershell write-host -fore Red Invalid choice. Please enter Y or N. + goto :again +) +endlocal +:exit +echo Press any key to exit ... +pause >nul \ No newline at end of file diff --git a/run.bat b/run.bat index 38bbeb7..f9b2aef 100644 --- a/run.bat +++ b/run.bat @@ -4,12 +4,30 @@ set VENV_DIR=.venv if exist "%VENV_DIR%" ( echo Activating virtual environment... call "%VENV_DIR%\Scripts\activate.bat" -) - -echo Running Python script... -python main.py + echo Running Python script... + python main.py + if errorlevel 1 ( + echo An error occurred. Press any key to exit. + pause >nul + exit + ) -if errorlevel 1 ( - echo An error occurred. Press any key to exit. - pause >nul +) else ( + setlocal enabledelayedexpansion + :again + powershell write-host -fore Yellow It does not look like the prerequisites for the bot had been installed. + powershell write-host -fore Yellow Would you like to do that now? [Y/N]: + set /p choice= + set "choice=!choice:~0,1!" + set "choice=!choice:~0,1!" + if /i "!choice!"=="Y" ( + call install.bat + ) else if /i "!choice!"=="N" ( + exit + ) else ( + cls + powershell write-host -fore Red Invalid choice. Please enter Y or N. + goto :again + ) + endlocal )