|
|
|
|
|
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 deploy DragMusic, exiting...\n" "cblue" |
|
exit 1 |
|
fi |
|
fi |
|
|
|
|
|
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_19.x | sudo -E bash - &>nodelog.txt && |
|
sudo apt install -y nodejs &>>nodelog.txt && |
|
sudo npm i -g npm &>>nodelog.txt && |
|
pprint "SUCCESS!\n" "cgreen" || (pprint "FAIL.\n" "cred"; exit 1) |
|
} |
|
|
|
|
|
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 DragMusic 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 1 |
|
pprint "\n\nScript needs sudo privileges in order to update & install packages.\n" |
|
sudo test |
|
|
|
update |
|
packages |
|
node |
|
installation |
|
pprint "\n\n\n\n\nDragMusic Installation Completed !" "cgreen" |
|
sleep 1 |
|
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 "\nOWNER ID:"; color_reset; read ownid |
|
pprint "\nMONGO DB URI: "; color_reset; read mongo_db |
|
pprint "\nLOG GROUP ID: "; color_reset; read logger |
|
pprint "\nSTRING SESSION: "; color_reset; read string_session |
|
|
|
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 |
|
LOGGER_ID = $logger |
|
STRING_SESSION = $string_session |
|
OWNER_ID = $ownid""" > .env |
|
clear |
|
|
|
pprint "\n\n\nThanks for using DragMusic installer, your vars have been saved successfully ! \nIf you wanna add more variables add them in your env by : vi .env" |
|
pprint "\n\nNow you can start the bot by : bash start\n\n" |
|
|