#!/bin/bash
# Script Detail VLESS Robust
# Tidak ada exit di awal, script akan berusaha cari data sampai dapat

user="$1"

# Default Values jika data tidak ketemu
domain=$(cat /etc/xray/domain 2>/dev/null)
if [[ -z "$domain" ]]; then domain="localhost"; fi
uuid="uuid-not-found"
exp="Unknown"
quota="Unlimited"
iplimit="Unlimited"

# --- 1. CARI UUID (Metode Pintar) ---
# Mencari string "user" di config.json, lalu ambil baris "id" di sekitarnya (5 baris atas/bawah)
# Ini mengatasi masalah spasi/indentasi yang berantakan.
raw_uuid=$(grep -A 5 -B 5 "\"$user\"" "/etc/xray/config.json" | grep "id" | head -1)
# Bersihkan hasil grep agar sisa UUID murni
if [[ -n "$raw_uuid" ]]; then
    uuid=$(echo "$raw_uuid" | sed 's/\"//g' | sed 's/id://g' | sed 's/,//g' | tr -d '[:space:]')
fi

# --- 2. CARI EXPIRED ---
# Cari baris komentar #& yang mengandung user
# awk '{print $NF}' mengambil kolom terakhir (biasanya tanggal)
raw_exp=$(grep "^#&" "/etc/xray/config.json" | grep -w "$user")
if [[ -n "$raw_exp" ]]; then
    exp=$(echo "$raw_exp" | awk '{print $NF}')
fi

# --- 3. CARI QUOTA ---
if [[ -e /etc/vless/$user ]]; then
    byte=$(cat /etc/vless/$user)
    if [[ -z "$byte" ]]; then byte=0; fi
    # Hitung GB (Integer arithmetic bash)
    val_quota=$((byte / 1024 / 1024 / 1024))
    quota="${val_quota} GB"
fi

# --- 4. CARI IP LIMIT ---
if [[ -e /etc/kyt/limit/vless/ip/$user ]]; then
    iplimit=$(cat /etc/kyt/limit/vless/ip/$user)
    iplimit="${iplimit} IP"
fi

# --- 5. GENERATE LINK ---
# Gunakan UUID yang ditemukan. Jika uuid-not-found, link tetap terbuat tapi tidak valid (setidaknya bot tidak error)
tls="vless://${uuid}@${domain}:443?path=/vless&security=tls&encryption=none&type=ws#${user}"
ntls="vless://${uuid}@${domain}:80?path=/vless&encryption=none&type=ws#${user}"
grpc="vless://${uuid}@${domain}:443?mode=gun&security=tls&encryption=none&type=grpc&serviceName=vless-grpc&sni=${domain}#${user}"

# --- 6. OUTPUT ---
# Format: User|Domain|UUID|Exp|Quota|IPLimit|TLS|NTLS|GRPC
echo "$user|$domain|$uuid|$exp|$quota|$iplimit|$tls|$ntls|$grpc"