#!/bin/bash


#Bu script (İkizlerHost) tarafından mirarussunucuma yapıldı telif hakkı (İkizlerHost)'a aittir.

##################################################################################
#değişkenleri
ip=`curl -s -4 icanhazip.com`
user="mbot" # Değiştir
botupdate_file="/usr/local/bin/$user-update.txt"
botcopyfile="sinusbot_files"
sinusbot_opt="/opt/$user"
sinusbot_copyfile="$sinusbot_opt/$botcopyfile"
home_dir="/home/$user"
removetxt="$user-remove.txt"
startxt="$user-start.txt"
installtxt="$user-install.txt"
reinstalltxt="$user-reinstall.txt"
stoptxt="$user-stop.txt"
passwordtxt="$user-password.txt"
server="repo.freets3.com.tr/bot" # Değiştir
bot_rar="sinusbot.current.tar.bz2"
bot_url="https://www.sinusbot.com/dl/sinusbot.current.tar.bz2"
client="TeamSpeak3-Client-linux_amd64-3.5.3.run"
clientname="TeamSpeak3-Client-linux_amd64"
client_url="https://files.teamspeak-services.com/releases/client/3.5.3/TeamSpeak3-Client-linux_amd64-3.5.3.run"
wgetcommand="wget -q --no-check-certificate"
newclient="ts3client"
bot_namefile="ts3soundboard"
botportstring=$2
if [ "$3" == "-p" ]
then
	panelsifre="$4"
else
	panelsifre="foobar"
fi
if [ -z "$3" ]
then
	yenisif="foobar"
else
	yenisif="$3"
fi
##################################################################################


function usage() {
	test $# = 0 || echo -e $@
	echo -e "\033[32;01mKullanımı:\033[0m \033[31;01m$0\033[0m \033[32;01m[Fonksiyon]...\033[0m"
	echo
	echo
	echo -e "\033[1;33mFonksiyonlar:\033[0m"
	echo -e "  \033[1;37m--install port\033[0m \033[33m-p şifre\033[0m"
	echo -e "  \033[1;37m--stop port\033[0m"
	echo -e "  \033[1;37m--start port\033[0m"
	echo -e "  \033[1;37m--delete port\033[0m"
	echo -e "  \033[1;37m--password port yenişifre\033[0m"
	echo -e "  \033[1;37m--restart port\033[0m"
	echo -e "  \033[1;37m--pack Temel Bileşenler\033[0m"
	echo -e "  \033[1;37m--help\033[0m \033[33mNasıl Kullanılır\033[0m"
	echo
	echo -e "\033[33;01m© 2019\033[0m \033[33;01m\033[4;37mRouterScript\033[0m\033[0m \033[35;01mAll rights reserved.\033[0m"
	exit 1
}

sinusbot_pack() {
	if [ -f "$botupdate_file" ] 
	then
		installed=success;
	else 
		clear
		clear
		apt-get -qq -y update
		apt-get -qq -y upgrade
		apt-get -qq -y install wget
		apt-get -qq -y install curl
		apt-get install libnice10 -y -qq
		apt-get install ffmpeg -y -qq
		apt-get install libnss3-dev -y -qq
		apt-get install python -y -qq 
		apt-get install x11vnc xinit xvfb libxcursor1 ca-certificates bzip2 -y -qq
		apt-get install x11vnc xvfb libxcursor1 ca-certificates bzip2 libegl1-mesa x11-xkb-utils libasound2 -y -qq
		sudo apt-get install libglib2.0-0 -y -qq
		sudo apt-get install lib32stdc++6 -y -qq 
		sudo apt-get install lib32z1 -y -qq 
		sudo apt-get install lib32ncursesw5 -y -qq 
		apt-get -qq -y install sudo
		apt-get -qq -y install screen
		apt-get -qq -y install unzip
		sudo update-ca-certificates -y
		apt-get -y install ntp -qq
		service ntpd stop
		ntpd -s 0.pool.ntp.org
		service ntpd start
		service ntp restart
		timedatectl set-ntp yes
		timedatectl
		rm -rf /usr/local/bin/yt-dlp
		sudo curl -s -L https://github.com/yt-dlp/yt-dlp/releases/download/2025.01.12/yt-dlp -o /usr/local/bin/yt-dlp >/dev/null 2>&1
		sudo chmod a+rx /usr/local/bin/yt-dlp
		clear
		if [ -f "/bin/blacklist" ]
		then
			var=1;
		else
			cd /bin
			$wgetcommand $server/blacklist >/dev/null 2>&1
			chmod +x blacklist
			./blacklist
		fi
		#1. Ana Dizin Kontrol
		if [ -d "/$home_dir/$user" ] 
		then
			var=1;
		else
			useradd -N -m -r -p 123456789 $user
			sudo chown -R $user /opt
			sudo chown -R $user /opt
			sudo chown -R $user /opt
			clear
		fi
		#Sinsubot Dizin Kontrol
		if [ -d "$sinusbot_opt" ] 
		then
			var=1;
		else
			mkdir $sinusbot_opt
		fi
		rm -rf $sinusbot_opt/$installtxt
		rm -rf /tmp/$removetxt
		rm -rf /tmp/$startxt
		rm -rf /tmp/$reinstalltxt
		rm -rf /tmp/$passwordtxt
		rm -rf /tmp/$stoptxt
		rm -rf $sinusbot_copyfile
		clear
		#Bot Dosyası Kontrol
		if [ -d "$sinusbot_copyfile" ] 
		then
			var=1;
		else
			mkdir $sinusbot_copyfile
		fi
		cd $sinusbot_copyfile
		$wgetcommand $bot_url >/dev/null 2>&1
		tar xvjf $bot_rar >/dev/null 2>&1
		rm -rf $bot_rar
		rm -r config.ini.dist
		rm -r README.md
		$wgetcommand $server/config.ini >/dev/null 2>&1
		#TeamSpeak3 Client
		cd $sinusbot_opt
		$wgetcommand $client_url >/dev/null 2>&1
		chmod 777 $client
		clear
		clear
		echo -e "\033[31;01mİLK ÖNCE \033[0m\033[33;01mENTER \033[0m\033[32;01mSONRA Q\033[0m\033[33;01m SONRA Y BASINIZ\033[0m\033[0m"
		echo -e "\033[31;01mİLK ÖNCE \033[0m\033[33;01mENTER \033[0m\033[32;01mSONRA Q\033[0m\033[33;01m SONRA Y BASINIZ\033[0m\033[0m"
		echo -e "\033[31;01mİLK ÖNCE \033[0m\033[33;01mENTER \033[0m\033[32;01mSONRA Q\033[0m\033[33;01m SONRA Y BASINIZ\033[0m\033[0m"
		su -c "./$client" 
		rm -rf $client
		mv $clientname $newclient
		cd $newclient
		rm -r plugins
		mkdir plugins
		cd plugins
		cp -R $sinusbot_copyfile/plugin/libsoundbot_plugin.so $sinusbot_opt/$newclient/plugins
		touch $botupdate_file
		cd /root
	fi
}

sinusbot_install() {
	if [ -f "$botupdate_file" ] 
	then
		var=1;
	else
		echo "Lütfen temel bileşenleri kurunuz."
		exit
	fi
	if [ ! -d "$sinusbot_opt/$bot_namefile$botportstring" ]
	then
		>/dev/null 2>&1 </dev/tcp/$ip/$botportstring
		if [ "$?" -ne 0 ]; then
			cd $sinusbot_opt
			cp -R $botcopyfile $bot_namefile$botportstring
			cd $bot_namefile$botportstring
			ts3_data=$sinusbot_opt/$bot_namefile$botportstring/data/
			sed -i "s@TS3_DATA@$ts3_data@" config.ini
			sed -i "s@999@$botportstring@" config.ini
			sudo chown -R $user /opt
			sudo chown $user /var/run/screen/S-$user
			rm -f /tmp/.sinusbot.lock.
			rm -f /tmp/.sinusbot.lock
			rm -f /tmp/.X11-unix/X40
			cd $sinusbot_opt/$bot_namefile$botportstring
			sudo -u $user chmod +x *
			sleep 0.1
			rm -f /tmp/.sinusbot.lock.
			rm -f /tmp/.sinusbot.lock
			rm -f /tmp/.X11-unix/X40
			#YT ARAMA
			$wgetcommand $server/Youtube_Search.js -P $sinusbot_opt/$bot_namefile$botportstring/scripts >/dev/null 2>&1
			sudo -u $user screen -AmdS $bot_namefile$botportstring ./sinusbot
			sed -i "s/                            chat: options.client.chat/                            chat: options.client.chat.bind(options.client)/" $sinusbot_opt/$bot_namefile$botportstring/scripts/Youtube_Search.js
			sed -i "s/                            chat: options.channel.chat/                            chat: options.channel.chat.bind(options.channel)/" $sinusbot_opt/$bot_namefile$botportstring/scripts/Youtube_Search.js
			sed -i "s/                        chat: options.backend.chat/                        chat: options.backend.chat.bind(options.backend)/" $sinusbot_opt/$bot_namefile$botportstring/scripts/Youtube_Search.js
			sudo -u $user screen -S $bot_namefile$botportstring -X quit
			rm -f /tmp/.sinusbot.lock.
			rm -f /tmp/.sinusbot.lock
			rm -f /tmp/.X11-unix/X40
			sudo -u $user screen -AmdS $bot_namefile$botportstring ./sinusbot --override-password=$panelsifre
		else
			echo -e "hata"
			exit
		fi
	else
		echo -e "zaten var"
		exit
	fi
	echo -e "kuruldu"
	exit
}

sinusbot_start() {
	clear
	clear
	if [ -d "$sinusbot_opt/$bot_namefile$botportstring" ]
	then
		>/dev/null 2>&1 </dev/tcp/$ip/$botportstring
		if [ "$?" -ne 0 ]; then
			cd $sinusbot_opt/$bot_namefile$botportstring
			rm -f /tmp/.sinusbot.lock.
			rm -f /tmp/.sinusbot.lock
			rm -f /tmp/.X11-unix/X40
			sudo -u $user screen -AmdS $bot_namefile$botportstring ./sinusbot
			echo -e "başlatıldı"
		else
			echo -e "zaten açık"
			exit
		fi
	else
		echo -e "kurulu değil"
	fi	
}

sinusbot_stop() {
	clear
	clear
	if [ -d "$sinusbot_opt/$bot_namefile$botportstring" ]
	then
		>/dev/null 2>&1 </dev/tcp/$ip/$botportstring
		if [ "$?" -ne 0 ]; then
			cd $sinusbot_opt/$bot_namefile$botportstring
			echo -e "zaten kapalı"
		else
			sudo -u $user screen -S $bot_namefile$botportstring -X quit
			echo -e "durduruldu"
		fi
	else
		echo -e "kurulu değil"
	fi
}

sinusbot_delete() {
	clear
	clear
	if [ -d "$sinusbot_opt/$bot_namefile$botportstring" ]
	then
		cd $sinusbot_opt
		sudo -u $user screen -S $bot_namefile$botportstring -X quit
		rm -rf $bot_namefile$botportstring
		echo -e "silindi"
	else
		echo -e "kurulu değil"
	fi	
}

sinusbot_password() {
	clear
	clear
	if [ -d "$sinusbot_opt/$bot_namefile$botportstring" ]
	then
		cd $sinusbot_opt/$bot_namefile$botportstring
		sudo -u $user screen -S $bot_namefile$botportstring -X quit
		sleep 0.2
		rm -f /tmp/.sinusbot.lock.
		rm -f /tmp/.sinusbot.lock
		rm -f /tmp/.X11-unix/X40
		sudo -u $user screen -AmdS $bot_namefile$botportstring ./sinusbot --override-password=$yenisif
		echo -e "sıfırlandı"
	else
		echo -e "kurulu değil"
	fi	
}

sinusbot_restart() {
	clear
	clear
	if [ -d "$sinusbot_opt/$bot_namefile$botportstring" ]
	then
		>/dev/null 2>&1 </dev/tcp/$ip/$botportstring
		cd $sinusbot_opt/$bot_namefile$botportstring
		sudo -u $user screen -S ts3soundboard$bot_namefile$botportstring -X quit
		sleep 0.2
		rm -f /tmp/.sinusbot.lock.
		rm -f /tmp/.sinusbot.lock
		rm -f /tmp/.X11-unix/X40
		sudo -u $user screen -AmdS $bot_namefile$botportstring ./sinusbot
		echo -e "yeniden başlatıldı"
	else
		echo -e "kurulu değil"
	fi	
}

while [ $# != 0 ]; do
	case $1 in
		--help) usage ;;
		--install) sinusbot_install ;;
		--pack) sinusbot_pack ;;
		--start) sinusbot_start ;;
		--stop) sinusbot_stop ;;
		--delete) sinusbot_delete ;;
		--password) sinusbot_password ;;
		--restart) sinusbot_restart ;;
	esac
	shift
done

usage