#!/bin/bash
clear && clear

# Warna
Green="\e[92;1m"
RED="\033[31m"
YELLOW="\033[33m"
BLUE="\033[36m"
FONT="\033[0m"
orange="\e[38;5;130m"
NC='\e[0m'

# Fungsi untuk menampilkan gradasi warna
print_rainbow() {
    local text="$1"
    local length=${#text}
    local start_color=(0 5 0)
    local mid_color=(0 200 0)
    local end_color=(0 5 0)

    for ((i = 0; i < length; i++)); do
        local progress=$((i * 100 / (length - 1)))

        if [ $progress -lt 50 ]; then
            local factor=$((progress * 2))
            r=$(( (start_color[0] * (100 - factor) + mid_color[0] * factor) / 100 ))
            g=$(( (start_color[1] * (100 - factor) + mid_color[1] * factor) / 100 ))
            b=$(( (start_color[2] * (100 - factor) + mid_color[2] * factor) / 100 ))
        else
            local factor=$(((progress - 50) * 2))
            r=$(( (mid_color[0] * (100 - factor) + end_color[0] * factor) / 100 ))
            g=$(( (mid_color[1] * (100 - factor) + end_color[1] * factor) / 100 ))
            b=$(( (mid_color[2] * (100 - factor) + end_color[2] * factor) / 100 ))
        fi

        printf "\e[38;2;%d;%d;%dm%s" "$r" "$g" "$b" "${text:$i:1}"
    done
    echo -e "$NC" 
}

# Menambahkan bot
add_trans() {
    clear
    echo -e "${orange}─────────────────────────────────────────${NC}"
    echo -e "    ${Green}.::::. SETUP BOT BACKUP SERVER .::::.${NC}"
    echo -e "${orange}─────────────────────────────────────────${NC}"
    echo -e " " 
    echo -e " "
    read -rp "[*] Masukkan Bot Token Telegram: " -e bottoken
    read -rp "[*] Masukkan Chat ID Telegram: " -e admin

    sudo mkdir -p /etc/bot

    if [[ ! -f /etc/bot/.notif.db ]]; then
        sudo touch /etc/bot/.notif.db
        sudo chmod 600 /etc/bot/.notif.db
    fi

    if [[ -n "${bottoken}" && -n "${admin}" ]]; then
        echo "#bot# ${bottoken} ${admin}" >> /etc/bot/.notif.db
        echo -e "${orange}─────────────────────────────────────────${NC}"
        echo -e " ${Green}      BOT BACKUP SERVER BERHASIL DITAMBAH  ${NC}"
        echo -e "${orange}─────────────────────────────────────────${NC}"
        echo " Bot Token    : $bottoken"
        echo " ID Telegram  : $admin"
        print_rainbow "─────────────────────────────────────────"
    else
        echo -e "${RED}Input tidak valid. Harap masukkan Bot Token dan ID Telegram.${NC}"
    fi

    read -n 1 -s -r -p "Tekan [ Enter ] untuk kembali ke menu"
    holand
}

# Menghapus bot
dell_bot() {
  clear
  NUMBER_OF_CLIENTS=$(grep -c -E "^#bot# " "/etc/bot/.notif.db")
    if [[ ${NUMBER_OF_CLIENTS} -eq 0 ]]; then
        echo -e "${orange}─────────────────────────────────────────${NC}"
        echo -e "    ${Green}.::::. DELETE BOT BACKUP SERVER .::::.${NC}"
        echo -e "${orange}─────────────────────────────────────────${NC}"
        echo ""
        echo "Tidak ada bot yang terdaftar!"
        echo ""
        print_rainbow "─────────────────────────────────────────"
        read -n 1 -s -r -p "Tekan [ Enter ] untuk kembali ke menu"
        holand
    fi

    clear
    KEY_TELE=$(grep -E "^#bot# " "/etc/bot/.notif.db" | cut -d ' ' -f 3)
    ID_TELE=$(grep -E "^#bot# " "/etc/bot/.notif.db" | cut -d ' ' -f 2)
    sed -i "/^#bot# ${KEY_TELE} ${ID_TELE}/d" /etc/bot/.notif.db
    rm -rf /etc/bot/.notif.db

    clear
    echo -e "${orange}─────────────────────────────────────────${NC}"
    echo -e " ${Green}      BOT BACKUP SERVER BERHASIL DIHAPUS  ${NC}"
    echo -e "${orange}─────────────────────────────────────────${NC}"
    print_rainbow "─────────────────────────────────────────"
    echo " Bot Token    : $KEY_TELE"
    echo " ID Telegram  : $ID_TELE"
    print_rainbow "─────────────────────────────────────────"
    echo ""
    read -n 1 -s -r -p "Tekan [ Enter ] untuk kembali ke menu"
    holand
}

# Menu utama
menu() {
    clear
    # Cek apakah ada bot yang sudah terdaftar
    if [ -f /etc/bot/.notif.db ]; then
        BOT_TOKEN=$(grep -oP "(?<=#bot# ).*" /etc/bot/.notif.db | cut -d ' ' -f 1)
        CHAT_ID=$(grep -oP "(?<=#bot# ).*" /etc/bot/.notif.db | cut -d ' ' -f 2)
    fi

    echo -e "${orange}─────────────────────────────────────────${NC}"
    echo -e "    ${Green}.::::. SETUP BOT BACKUP SERVER .::::.${NC}"
    echo -e "${orange}─────────────────────────────────────────${NC}"
    print_rainbow "─────────────────────────────────────────"
    echo -e "  1. Add Setup Bot Backup Server"
    echo -e "  2. Delete Bot Backup Server"
    echo -e "  x. Exit"
    print_rainbow "─────────────────────────────────────────"

    # Menampilkan info bot jika sudah ada
    if [ -n "$BOT_TOKEN" ] && [ -n "$CHAT_ID" ]; then
        echo -e "  [*] key : $BOT_TOKEN"
        echo -e "  [*] ID : $CHAT_ID"
    else
        echo -e "  [*] No bot set up yet."
    fi

    print_rainbow "─────────────────────────────────────────"
    echo -n "  Pilih Opsi [1-2/x]: "
    read -r opt
    case $opt in
        1) clear; add_trans ;;
        2) clear; dell_bot ;;
        x) clear; echo "Keluar..."; exit ;;
        *) echo -e "${RED}Pilihan tidak valid!${NC}"; sleep 1; menu ;;
    esac
}

menu
