#!/bin/bash
apt install jq curl -y

# Membaca input nama depan dari pengguna
read -p "Masukkan nama depan untuk subdomain: " nama_depan

# Membaca input IP VPS dari pengguna
read -p "Masukkan IP VPS: " IP

# Menampilkan menu pilihan domain
echo "Pilih domain:"
echo "1. vpn-express.my.id"
echo "2. vvpnstore.my.id"
echo "3. aivpn.biz.id"
echo "4. aivpn.my.id"
echo "5. vpnx.my.id"

# Membaca input pilihan dari pengguna
read -p "Masukkan nomor domain yang ingin digunakan (1-5): " domain_option

# Menentukan nama domain berdasarkan pilihan pengguna
case $domain_option in
    1)
        DOMAIN="vpn-express.my.id"
        ;;
    2)
        DOMAIN="vvpnstore.my.id"
        ;;
    3)
        DOMAIN="aivpn.biz.id"
        ;;
    4)
        DOMAIN="aivpn.my.id"
        ;;
    5)
        DOMAIN="vpnx.my.id"
        ;;
    *)
        echo "Pilihan tidak valid. Keluar."
        exit 1
        ;;
esac

# Menggabungkan nama depan dengan domain
dns=${nama_depan}.${DOMAIN}

CF_ID=imanfals51@gmail.com
CF_KEY=0f9ed4286475de79bae2b91e9af4f8af9fed9

set -euo pipefail

echo "Updating DNS for ${dns}..."

ZONE=$(curl -sLX GET "https://api.cloudflare.com/client/v4/zones?name=${DOMAIN}&status=active" \
     -H "X-Auth-Email: ${CF_ID}" \
     -H "X-Auth-Key: ${CF_KEY}" \
     -H "Content-Type: application/json" | jq -r .result[0].id)

RECORD=$(curl -sLX GET "https://api.cloudflare.com/client/v4/zones/${ZONE}/dns_records?name=${dns}" \
     -H "X-Auth-Email: ${CF_ID}" \
     -H "X-Auth-Key: ${CF_KEY}" \
     -H "Content-Type: application/json" | jq -r .result[0].id)

if [[ "${#RECORD}" -le 10 ]]; then
     RECORD=$(curl -sLX POST "https://api.cloudflare.com/client/v4/zones/${ZONE}/dns_records" \
     -H "X-Auth-Email: ${CF_ID}" \
     -H "X-Auth-Key: ${CF_KEY}" \
     -H "Content-Type: application/json" \
     --data '{"type":"A","name":"'${dns}'","content":"'${IP}'","ttl":120,"proxied":false}' | jq -r .result.id)
fi

RESULT=$(curl -sLX PUT "https://api.cloudflare.com/client/v4/zones/${ZONE}/dns_records/${RECORD}" \
     -H "X-Auth-Email: ${CF_ID}" \
     -H "X-Auth-Key: ${CF_KEY}" \
     -H "Content-Type: application/json" \
     --data '{"type":"A","name":"'${dns}'","content":"'${IP}'","ttl":120,"proxied":false}')

# Menampilkan pesan sukses dalam bentuk kolom
echo "----------------------"
echo "Sukses!"
echo "----------------------"
echo "Domain : ${dns}"
echo "IP VPS : ${IP}"
echo "----------------------"
