File size: 3,643 Bytes
a8e9b84
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
#!/bin/bash

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

	# 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_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"