#!/bin/bash
clear

# --- Definisi Warna ---
yellow="\033[0;33m"
ungu="\033[0;35m"
Red="\033[91;1m"
Xark="\033[0m"
BlueCyan="\033[5;36m"
WhiteBe="\033[5;37m"
GreenBe="\033[5;32m"
YellowBe="\033[5;33m"
BlueBe="\033[5;34m"

# --- Ambil Nama Admin ---
if [[ -e /etc/xray/username ]]; then
    nama=$(cat /etc/xray/username)
else
    nama="Admin"
fi

# --- LOGIKA PENGHITUNGAN USER (Sesuai Request) ---
# Menghitung VLESS
vlx=$(grep -c -E "^#& " "/etc/xray/config.json")
# Cek jika vlx 0 untuk menghindari error pembagian
if [[ $vlx -gt 0 ]]; then let vla=$vlx/2; else vla=0; fi

# Menghitung VMESS
vmc=$(grep -c -E "^### " "/etc/xray/config.json")
if [[ $vmc -gt 0 ]]; then let vma=$vmc/2; else vma=0; fi

# Menghitung SSH
ssh1="$(awk -F: '$3 >= 1000 && $1 != "nobody" {print $1}' /etc/passwd | wc -l)"

# Menghitung TROJAN (Tanda #!)
trx=$(grep -c -E "^#! " "/etc/xray/config.json")
if [[ $trx -gt 0 ]]; then let trb=$trx/2; else trb=0; fi

# Menghitung SHADOWSOCKS (Tanda #ss#)
ssx=$(grep -c -E "^#ss# " "/etc/xray/config.json")
if [[ $ssx -gt 0 ]]; then let ssa=$ssx/2; else ssa=0; fi


# --- Fungsi Garis ---
function baris_panjang() {
  echo -e "${BlueCyan} ——————————————————————————————————— ${Xark} "
}

# --- Banner Utama ---
function xdxl_Banner() {
    clear
    baris_panjang
    echo -e "${ungu}           $nama       ${Xark} "
    baris_panjang
    # Menampilkan Status User
    echo -e "${WhiteBe} SSH: ${GreenBe}$ssh1 ${WhiteBe}| ${YellowBe}VMESS: ${GreenBe}$vma ${WhiteBe}| ${BlueCyan}VLESS: ${GreenBe}$vla ${WhiteBe}| ${Red}TROJAN: ${GreenBe}$trb ${Xark}"
    baris_panjang
}

function Sc_Credit(){
    sleep 1
    baris_panjang
    echo -e "${ungu}  Terimakasih Telah Menggunakan ${Xark}"
    echo -e "${ungu}           Script Credit ${Xark}"
    echo -e "${ungu}           $nama ${Xark}"
    baris_panjang
    echo ""
    read -rp "press any key for back"
    # Ganti dengan perintah menu anda, misal: menu / m-trojan
    menu 
}

# --- Animasi Loading ---
duration=3
frames=("██10%" "█████35%" "█████████65%" "█████████████80%" "█████████████████████90%" "█████████████████████████100%")
num_frames=${#frames[@]}
num_iterations=$((duration))

Loading_Animasi() {
    for ((i = 0; i < num_iterations; i++)); do
        clear
        index=$((i % num_frames))
        color_code=$((31 + i % 7))
        echo ""
        echo ""
        echo ""
        echo -e "\e[1;${color_code}m ${frames[$index]}\e[0m"
        sleep 0.5
    done
}

function Loading_Succes() {
    clear
    echo -e  "\033[5;32mSuccess\033[0m"
    sleep 2
    clear
}

# --- LIST MEMBER TROJAN ---
function Daftar_Member_Trojan() {
    baris_panjang
    echo ""
    # Menggunakan tanda #! untuk Trojan
    if grep -q "^#! " "/etc/xray/config.json"; then
        grep -E "^#! " "/etc/xray/config.json" | cut -d ' ' -f 2-3 | column -t | sort | uniq | lolcat
    else
        echo -e "${Red} Tidak ada user Trojan ditemukan.${Xark}"
    fi
    echo ""
    baris_panjang
    echo ""
}

# --- CEK DETAIL CONFIG TROJAN ---
function Cek_Config_Trojan() {
    read -rp "Input Username : " user
    if [ -z "$user" ]; then
        echo -e "User Tidak Ditemukan!!!"
        read -n 1 -s -r -p "Enter Back To Menu"
        menu
    else
        # Cek apakah user ada (grep #! user)
        if ! grep -q "^#! $user" "/etc/xray/config.json"; then
             echo -e "${Red}User '$user' tidak ditemukan di daftar Trojan!${Xark}"
             read -n 1 -s -r -p "Enter Back To Menu"
             exit 0
        fi

        CITY=$(cat /etc/xray/city 2>/dev/null)
        ISP=$(cat /etc/xray/isp 2>/dev/null)
        domain=$(cat /etc/xray/domain 2>/dev/null)
        
        # Cek Limit IP Trojan
        if [[ -e /etc/kyt/limit/trojan/ip/$user ]]; then
            iplimit=$(cat /etc/kyt/limit/trojan/ip/$user)
        else
            iplimit="Unlimited"
        fi

        # Cek Quota Trojan
        if [[ -e /etc/trojan/$user ]]; then
            Quota1=$(cat /etc/trojan/$user)
            Quota=$((Quota1 / 1024 / 1024 / 1024))
        else
            Quota="Unlimited"
        fi

        # Ambil Password/UUID (Logic sama dgn vless tapi source config mungkin beda posisi)
        # Biasanya Trojan password ada di struktur JSON
        uuid=$(grep -w "$user" -A 1 /etc/xray/config.json | grep "password" | cut -d '"' -f 4 | head -1)
        # Fallback jika logic di atas gagal (mencoba logic script vless anda)
        if [[ -z "$uuid" ]]; then
            uuid=$(grep -E "^},{" "/etc/xray/config.json" | grep -i '"'"${user}"'"' | cut -d " " -f 2 | cut -d '"' -f 2 | uniq )
        fi

        # Ambil Expired (Tanda #!)
        exp=$(grep -E "^#! " "/etc/xray/config.json" | grep -w "$user" | cut -d ' ' -f 3 | uniq)

        # --- GENERATE LINK TROJAN ---
        # Trojan WS TLS
        trojanlink1="trojan://${uuid}@${domain}:443?path=%2Ftrojan-ws&security=tls&host=${domain}&type=ws&sni=${domain}#${user}"
        
        # Trojan GRPC (ServiceName biasanya trojan-grpc)
        trojanlink2="trojan://${uuid}@${domain}:443?mode=gun&security=tls&type=grpc&serviceName=trojan-grpc&sni=${domain}#${user}"
    fi
}

function Details_Account() {
    baris_panjang
    echo -e "\033[37m TROJAN XRAY INFO \033[0m"
    baris_panjang
    echo -e ""
    echo -e "\033[37m Remarks     : ${user} "
    echo -e "\033[37m Domain      : ${domain}"
    echo -e "\033[37m User Quota  : ${Quota} GB"
    echo -e "\033[37m User Ip     : ${iplimit} IP"
    echo -e "\033[37m Port TLS    : 443"
    echo -e "\033[37m Password    : ${uuid}"
    echo -e "\033[37m Locations   : $CITY"
    echo -e "\033[37m ISP         : $ISP"
    echo -e "\033[37m Path WS     : /trojan-ws "
    echo -e "\033[37m ServiceName : trojan-grpc"
}

function Link_Json() {
    baris_panjang
    echo -e "\033[37m Link WS TLS : ${trojanlink1}"
    baris_panjang
    echo -e "\033[37m Link GRPC   : ${trojanlink2}"
    baris_panjang
    # Sesuaikan path openclash jika perlu
    echo -e "\033[37m OpenClash   : https://${domain}:81/trojan-$user.txt"
}

function Details_Expiry() {
    baris_panjang
    echo -e "\033[33m Expiry      : $exp \033[0m "
}

# --- EKSEKUSI ---
xdxl_Banner
echo "     "
Daftar_Member_Trojan
echo "     "
Cek_Config_Trojan
clear
Loading_Animasi
Loading_Succes
Details_Account
Link_Json
Details_Expiry
Sc_Credit