#!/bin/bash

# =============================================
#            [ Konfigurasi Awal ]
# =============================================
clear
export RED='\033[0;31m'
export GREEN='\033[0;32m'
export YELLOW='\033[0;33m'
export BLUE='\033[0;34m'
export CYAN='\033[0;36m'
export NC='\033[0m'
export WH='\033[1;37m'
export PURPLE='\033[0;35m'

# =============================================
#            [ Konfigurasi URL & Izin ]
# =============================================
IPVPES="https://raw.githubusercontent.com/hokagelegend9999/ijin/refs/heads/main/alpha"
MYIP=$(curl -sS ipv4.icanhazip.com)
DATE_SERVER=$(curl -v --insecure --silent https://google.com/ 2>&1 | grep Date | sed -e 's/< Date: //')
TODAY=$(date +"%Y-%m-%d" -d "$DATE_SERVER")

# =============================================
#            [ Fungsi Pengecekan ]
# =============================================
checking_sc() {
    local useexp=$(wget -qO- $IPVPES | grep $MYIP | awk '{print $3}')
    local client_name=$(wget -qO- $IPVPES | grep $MYIP | awk '{print $2}')
    
    if [[ "$TODAY" < "$useexp" ]]; then
        EXP_DATE=$useexp
        CLIENT_NAME=$client_name
        current_epoch=$(date +%s)
        exp_epoch=$(date -d "$useexp" +%s)
        days_remaining=$(( (exp_epoch - current_epoch) / 86400 ))
        return 0
    else
        clear
        echo -e "\033[1;93m────────────────────────────────────────────\033[0m"
        echo -e "\033[42m          404 NOT FOUND AUTOSCRIPT          \033[0m"
        echo -e "\033[1;93m────────────────────────────────────────────\033[0m"
        echo -e ""
        echo -e "             ${RED}PERMISSION DENIED !${NC}"
        echo -e "   \033[0;33mYour VPS${NC} $MYIP \033[0;33mHas been Banned${NC}"
        echo -e "     \033[0;33mBuy access permissions for scripts${NC}"
        echo -e "             \033[0;33mContact Admin :${NC}"
        echo -e "       ${GREEN}Telegram${NC} https://t.me/hokagelegend1"
        echo -e "\033[1;93m────────────────────────────────────────────\033[0m"
        exit 1
    fi
}
checking_sc

# =============================================
#            [ Fungsi Tampilan Menu ]
# =============================================
show_main_menu() {
    clear
    # --- DATA SISTEM ---
    MODEL2=$(cat /etc/os-release | grep -w PRETTY_NAME | head -n1 | sed 's/[=PRETTY_NAME"]//g')
    LOADCPU=$(printf '%-0.1f' "$(top -bn1 | awk '/Cpu/ { print 100 - $8 }')")
    CORE=$(nproc)
    tram=$(free -h | awk '/Mem:/ {print $2}')
    uram=$(free -h | awk '/Mem:/ {print $3}')
    ISP=$(curl -s ipinfo.io/org | cut -d ' ' -f 2-10)
    CITY=$(curl -s ipinfo.io/city)
    SERONLINE=$(uptime -p | cut -d " " -f 2-)

    # --- STATUS SERVICE ---
    # Xray
    if systemctl is-active --quiet xray; then status_xray="${GREEN}ON${NC}"; else status_xray="${RED}OFF${NC}"; fi
    # Nginx
    if systemctl is-active --quiet nginx; then status_nginx="${GREEN}ON${NC}"; else status_nginx="${RED}OFF${NC}"; fi
    # Dropbear
    if /etc/init.d/dropbear status >/dev/null 2>&1; then status_beruangjatuh="${GREEN}ON${NC}"; else status_beruangjatuh="${RED}OFF${NC}"; fi
    
    # --- SSH WS ---
    # Cek status service 'ws' (websocket tunnel)
    ssh_ws_proc=$(systemctl status ws | grep Active | awk '{print $3}' | sed 's/(//g' | sed 's/)//g')
    if [[ $ssh_ws_proc == "running" ]]; then status_ws="${GREEN}ON${NC}"; else status_ws="${RED}OFF${NC}"; fi

    # --- STATUS BOT (FIXED: Check 'kyt' service) ---
    if systemctl is-active --quiet kyt; then 
        status_bot="${GREEN}ON${NC}"
    else 
        status_bot="${RED}OFF${NC}"
    fi

    # --- TAMPILAN PANEL ---
    echo -e "$GREEN╭═══════════════════════════════════════════════════╮${NC}"
    echo -e "$GREEN│${NC} ${WH}           • ALPHA SCRIPT TELEGRAM PRO •         ${NC} $GREEN│${NC}"
    echo -e "$GREEN╰═══════════════════════════════════════════════════╯${NC}"
    echo -e "$GREEN╭═══════════════════════════════════════════════════╮${NC}"
    echo -e "$GREEN│ ${WH}Client Name    : ${GREEN}${CLIENT_NAME:-User}${NC}"
    echo -e "$GREEN│ ${WH}Days Remaining : ${GREEN}${days_remaining} hari${NC}"
    echo -e "$GREEN├───────────────────────────────────────────────────┤${NC}"
    echo -e "$GREEN│ ${WH}System OS      : ${CYAN}$MODEL2${NC}"
    echo -e "$GREEN│ ${WH}Memory Usage   : ${CYAN}$uram / $tram${NC}"
    echo -e "$GREEN│ ${WH}CPU Usage      : ${CYAN}$LOADCPU% (${CORE} Core)${NC}"
    echo -e "$GREEN│ ${WH}ISP / City     : ${CYAN}$ISP / $CITY${NC}"
    echo -e "$GREEN│ ${WH}IP-VPS         : ${CYAN}$MYIP${NC}"
    echo -e "$GREEN│ ${WH}Uptime         : ${CYAN}$SERONLINE${NC}"
    echo -e "$GREEN╰═══════════════════════════════════════════════════╯${NC}"
    
    # --- PANEL STATUS SERVER ---
    echo -e "$BLUE╔════════════════════════════════════════════════════╗${NC}"
    echo -e "$BLUE║${CYAN}     🚀    S T A T U S   S E R V E R    🚀           ${BLUE}║${NC}"
    echo -e "$BLUE╠════════════════════════════════════════════════════╣${NC}"
    echo -e "$BLUE║${WH}🌐WS:$status_ws |${WH}⚡XRAY:$status_xray | ${WH}🖥️ NGINX:$status_nginx |${WH}🔒DB:$status_beruangjatuh | ${WH}🤖BOT:$status_bot${BLUE} ║${NC}"
    echo -e "$BLUE╚════════════════════════════════════════════════════╝${NC}"

    # --- MENU UTAMA ---
    echo -e "$GREEN╭═══════════════════════════════════════════════════╮${NC}"
    echo -e "$GREEN│                   ${WH}MENU UTAMA${NC}                       ${GREEN}│${NC}"
    echo -e "$GREEN├───────────────────────────────────────────────────┤${NC}"
    echo -e "$GREEN│ ${WH}[1] Menu BOT Panel                              ${GREEN}│${NC}"
    echo -e "$GREEN│ ${WH}[2] Menu BOT Notifikasi                         ${GREEN}│${NC}"
    echo -e "$GREEN│ ${WH}[3] Menu BOT Backup                             ${GREEN}│${NC}"
	echo -e "$GREEN│ ${WH}[4] UPDATE BOT TELEGRAM                             ${GREEN}│${NC}"
    echo -e "$GREEN│ ${WH}[x] Exit Menu BOT                               ${GREEN}│${NC}"
    echo -e "$GREEN╰═══════════════════════════════════════════════════╯${NC}"
    echo -ne "  ${WH}Select From Options [ 1 - 3 or x ] : ${NC}"
}

# =============================================
#            [ Loop Menu Utama ]
# =============================================
while true; do
    show_main_menu
    read -r menu
    case $menu in
        1) clear ; checking_sc ; mbot-panel ;;
        2) clear ; checking_sc ; bot ;;
        3) 
            clear 
            checking_sc 
            echo -e "\n${YELLOW}Note: ${NC}"
            echo -e "Sebelum Menggunakan BOT Backup"
            echo -e "Harap Setup Dulu ID & Bot Token Kamu !"
            sleep 2
            mbot-backup
            ;;
		4)  
            clear
            echo -e "${GREEN} [INFO] Writing New Update Script...${NC}"
            
            # --- START SCRIPT UPDATE ---
            cat << 'EOF' > /usr/bin/update-bot
#!/bin/bash
# Fixed Update Script by Hokage Legend

# Dependencies
apt-get install ruby zip unzip wget -y > /dev/null 2>&1
if ! command -v lolcat &> /dev/null; then
    gem install lolcat &> /dev/null
fi

clear

# --- FUNGSI ANIMASI ---
fun_bar() {
    CMD="$1"
    (
        [[ -e $HOME/fim ]] && rm $HOME/fim
        $CMD >/dev/null 2>&1
        touch $HOME/fim
    ) >/dev/null 2>&1 &

    tput civis
    echo -ne "  \033[0;33mSedang Memproses Update \033[1;37m- \033[0;33m["
    while true; do
        for ((i = 0; i < 18; i++)); do
            echo -ne "\033[0;32m#"
            sleep 0.1s
        done
        if [[ -e $HOME/fim ]]; then
            rm $HOME/fim
            break
        fi
        echo -e "\033[0;33m]"
        sleep 1s
        tput cuu1
        tput dl1
        echo -ne "  \033[0;33mSedang Memproses Update \033[1;37m- \033[0;33m["
    done
    echo -e "\033[0;33m]\033[1;37m -\033[1;32m SUKSES !\033[1;37m"
    tput cnorm
}

# --- FUNGSI UPDATE UTAMA ---
res1() {
    # 0. Stop Service
    systemctl stop kyt

    # ==========================================
    # 1. UPDATE MODULES (METODE LANGSUNG)
    # ==========================================
    rm -rf /usr/bin/kyt/modules
    mkdir -p /usr/bin/kyt/modules
    
    wget -q -O modules.zip "https://raw.githubusercontent.com/hokagelegend9999/alpha.v2/main/bot/modules.zip"
    
    # Unzip langsung ke tujuan (-d)
    unzip -o modules.zip -d /usr/bin/kyt/modules/ > /dev/null 2>&1
    
    # PENTING: Cek jika zip membuat folder ganda (modules/modules)
    if [ -d "/usr/bin/kyt/modules/modules" ]; then
        mv /usr/bin/kyt/modules/modules/* /usr/bin/kyt/modules/
        rm -rf /usr/bin/kyt/modules/modules
    fi
    rm -f modules.zip
    
    # ==========================================
    # 2. UPDATE SHELL & BOT FOLDER (FIXED)
    # ==========================================
    rm -rf /usr/bin/kyt/shell
    mkdir -p /usr/bin/kyt/shell
    
    wget -q -O shell.zip "https://raw.githubusercontent.com/hokagelegend9999/alpha.v2/main/bot/shell.zip"
    
    # Unzip langsung ke tujuan (-d)
    unzip -o shell.zip -d /usr/bin/kyt/shell/ > /dev/null 2>&1
    
    # PENTING: Logika Perbaikan Folder
    # Jika hasil unzip membuat folder induk "shell", pindahkan isinya keluar
    if [ -d "/usr/bin/kyt/shell/shell" ]; then
        mv /usr/bin/kyt/shell/shell/* /usr/bin/kyt/shell/
        rm -rf /usr/bin/kyt/shell/shell
    fi
    # (Folder 'bot' sekarang pasti aman ada di /usr/bin/kyt/shell/bot)
    
    rm -f shell.zip

    # ==========================================
    # 3. IZIN EKSEKUSI (RECURSIVE)
    # ==========================================
    # Ini wajib agar file dalam folder 'bot' terbaca
    chmod +x -R /usr/bin/kyt/shell/
    chmod +x -R /usr/bin/kyt/modules/

    # Restart Service
    systemctl enable kyt
    systemctl restart kyt
}

# --- EKSEKUSI ---
rm -rf update-bot
echo -e "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" | lolcat
echo -e " \e[1;97;101m UPDATE BOT TELEGRAM  !              \e[0m"
echo -e "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" | lolcat
echo -e ""
echo -e "  \033[1;91m Update Script Service & Menu\033[1;37m"

fun_bar 'res1'

echo -e "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" | lolcat
echo -e ""
echo -e " \033[1;32m Update Selesai! Cek Bot /start.\033[0m"
echo -e ""
read -n 1 -s -r -p "Tekan [ Enter ] untuk kembali ke menu"
menu
EOF
            # --- END SCRIPT UPDATE ---

            chmod +x /usr/bin/update-bot
            echo -e "${GREEN} [INFO] Executing Update...${NC}"
            sleep 2
            /usr/bin/update-bot
            ;;
        x|X) echo -e "\n${RED}Keluar dari menu...${NC}" ; exit 0 ;;
        *) echo -e "\n${RED}Pilihan tidak valid!${NC}" ; sleep 1 ;;
    esac
done