#!/bin/bash
# Script Detail Shadowsocks Robust
# Input: $1 (Username)

user="$1"

# Jika tidak ada input user, stop
if [[ -z "$user" ]]; then
    echo "Error|Input Kosong"
    exit 0
fi

# Default Values
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/PASSWORD ---
# Shadowsocks menggunakan password/method
# Kita cari "password" di sekitar baris "user"
raw_uuid=$(grep -A 5 -B 5 "\"$user\"" "/etc/xray/config.json" | grep "password" | head -1)
if [[ -n "$raw_uuid" ]]; then
    uuid=$(echo "$raw_uuid" | sed 's/\"//g' | sed 's/password://g' | sed 's/,//g' | tr -d '[:space:]')
fi

# --- 2. CARI EXPIRED ---
# Cari baris komentar #ss# yang mengandung user
# Format regex #ss#
raw_exp=$(grep "^#ss# " "/etc/xray/config.json" | grep -w "$user" | head -1)
if [[ -n "$raw_exp" ]]; then
    exp=$(echo "$raw_exp" | awk '{print $3}')
fi

# --- 3. CARI QUOTA ---
# Sesuaikan path quota (misal /etc/shadowsocks/ atau /etc/ss/)
if [[ -e /etc/shadowsocks/$user ]]; then
    byte=$(cat /etc/shadowsocks/$user)
    if [[ -z "$byte" ]]; then byte=0; fi
    val_quota=$((byte / 1024 / 1024 / 1024))
    quota="${val_quota} GB"
fi

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

# --- 5. GENERATE LINK ---
# Format SS: ss://base64(method:password)@domain:port...
# Disini kita generate format Xray yang umum (WS & GRPC)

# Encryption Method (Default Xray biasanya aes-128-gcm atau chacha20-ietf-poly1305)
cipher="aes-128-gcm" 
# Perlu encode method:password ke base64 untuk standar link SS
user_pass_b64=$(echo -n "${cipher}:${uuid}" | base64 -w 0)

# Link TLS (WS)
tls="ss://${user_pass_b64}@${domain}:443?path=%2Fss-ws&security=tls&plugin=none&type=ws#${user}"

# Link GRPC
grpc="ss://${user_pass_b64}@${domain}:443?mode=gun&security=tls&encryption=none&type=grpc&serviceName=ss-grpc&sni=${domain}#${user}"

# --- 6. OUTPUT ---
# Output satu baris lurus tanpa enter
echo -n "$user|$domain|$uuid|$exp|$quota|$iplimit|$tls|$grpc"