Spaces:
Paused
Paused
| #!/bin/bash | |
| ### Yukki Music Bot Installer | |
| pprint (){ | |
| cred='\033[0;31m' | |
| cgreen='\033[0;32m' | |
| cyellow='\033[0;33m' | |
| cblue='\033[0;34m' | |
| cpurple='\033[0;35m' | |
| eval "export color='$cpurple'" | |
| [ ! -z $2 ] && eval "export color=\"\$$2\"" | |
| printf "$color $1" | |
| } | |
| color_reset(){ printf '\033[0;37m';} | |
| yesnoprompt(){ | |
| old_stty_cfg=$(stty -g) | |
| stty raw -echo ; answer=$(head -c 1) | |
| stty $old_stty_cfg | |
| echo "$answer" | grep -iq "^y" | |
| } | |
| update() { | |
| pprint "\n\nUpdating package list.. " | |
| sudo apt update 2>&1 | grep "can be upgraded" &>/dev/null | |
| if [ $? -eq 0 ]; then | |
| pprint "UPDATE AVAILABLE" "cgreen" | |
| pprint "\n\nDo you want to automatically upgrade (y/n)?" | |
| if yesnoprompt; then | |
| pprint "\n\nUpgrading packages.. " | |
| sudo apt upgrade -y &>/dev/null && | |
| pprint "DONE!\n\n" "cgreen" || (pprint "FAIL.\n\n" "cred"; exit 1) | |
| else | |
| echo | |
| fi | |
| else | |
| pprint "ALREADY UP TO DATE\n\n" "cgreen" | |
| fi | |
| } | |
| packages(){ | |
| if ! command -v pip &>/dev/null; then | |
| pprint "Couldn't found pip, installing now.. " | |
| sudo apt install python3-pip -y 2>pypilog.txt 1>/dev/null && | |
| pprint "SUCCESS.\n\n" "cgreen" || (pprint "FAIL.\n\n" "cred"; exit 1) | |
| fi | |
| if ! command -v ffmpeg &>/dev/null; then | |
| pprint "Couldn't found ffmpeg, installing now.. " | |
| if sudo apt install ffmpeg -y &>/dev/null;then | |
| pprint "SUCCESS.\n\n" "cgreen" | |
| else | |
| pprint "FAIL.\n\n" "cred" | |
| pprint "You need to install ffmpeg manually in order to use YukkiMusicBot, exiting..\n" "cblue" | |
| exit 1 | |
| fi | |
| fi | |
| # Check ffmpeg version and warn user if necessary. | |
| fv=$(grep -Po 'version (3.*?) ' <<< $(ffmpeg -version)) && | |
| pprint "Playing live streams not going to work since you have ffmpeg $fv, live streams are supported by version 4+.\n" "cblue" | |
| } | |
| node(){ | |
| command -v npm &>/dev/null && return | |
| pprint "Installing Nodejs and Npm.. " | |
| curl -fssL https://deb.nodesource.com/setup_18.x | sudo -E bash - &>nodelog.txt && | |
| sudo apt install nodejs -y &>>nodelog.txt && | |
| sudo npm i -g npm &>>nodelog.txt && | |
| pprint "SUCCESS!\n" "cgreen" || (pprint "FAIL.\n" "cred"; exit 1) | |
| } | |
| repo(){ | |
| # Get git repo if the installer is runned standalone | |
| [[ ! "YukkiMusicBot" == $(basename -s .git `git config --get remote.origin.url`) ]] && | |
| git clone https://github.com/TeamYukki/YukkiMusicBot && cd YukkiMusicBot | |
| } | |
| installation(){ | |
| pprint "\n\nUpgrading pip and installing dependency packages.. " | |
| pip3 install -U pip &>>pypilog.txt && | |
| pip3 install -U -r requirements.txt &>>pypilog.txt && | |
| pprint "DONE.\n" "cgreen" && return | |
| pprint "FAIL.\n" "cred" | |
| exit 1 | |
| } | |
| clear | |
| pprint "Welcome to Yukki Music Bot Setup Installer\n\n" | |
| pprint "If you see any error during Installation Process, Please refer to these files for logs: " | |
| pprint "\nFor node js errors , Checkout nodelog.txt" | |
| pprint "\nFor pypi packages errors , Checkout pypilog.txt" | |
| sleep 2 | |
| pprint "\n\nScript needs sudo privileges in order to update & install packages.\n" | |
| sudo test | |
| update | |
| packages | |
| node | |
| repo | |
| installation | |
| pprint "\n\n\n\n\nYukki Music Bot Installation Completed!" "cgreen" | |
| sleep 4 | |
| clear | |
| pprint "\nEnter Your Values Below\n\n\n" | |
| pprint "API ID: "; color_reset; read api_id | |
| pprint "\nAPI HASH: "; color_reset; read api_hash | |
| pprint "\nBOT TOKEN: "; color_reset; read bot_token | |
| pprint "\nMONGO DB URI: "; color_reset; read mongo_db | |
| pprint "\nLOG GROUP ID: "; color_reset; read logger | |
| pprint "\nPYROGRAM STRING SESSION OF ASSISTANT ACCOUNT: "; color_reset; read string_session | |
| pprint "\nMUSIC BOT NAME: "; color_reset; read mbt | |
| pprint "\nOWNER ID:"; color_reset; read ownid | |
| pprint "\n\nProcessing your vars, Wait a while!" "cgreen" | |
| if [ -f .env ]; then | |
| rm .env | |
| fi | |
| echo """API_ID = $api_id | |
| API_HASH = $api_hash | |
| BOT_TOKEN = $bot_token | |
| MONGO_DB_URI = $mongo_db | |
| LOG_GROUP_ID = $logger | |
| MUSIC_BOT_NAME = $mbt | |
| STRING_SESSION = $string_session | |
| OWNER_ID = $ownid""" > .env | |
| clear | |
| pprint "\n\n\nYour Vars have been saved Successfully!, Thanks for using Yukki Installer, now you can proceed by starting the bot with bash start!" | |
| pprint "\n\n\nWant more vars?" | |
| pprint "\nCheckout config.py and README.md inside config folder for addtional vars. You can change all images , thumbnails, mode and everything from vars. Have a look towards them\n\n" | |