#!/usr/bin/env bash

set -euo pipefail

API_KEY="gHzfGYLgbD8D_EdMAUuyoqQA3akTxsWR8Zj"
API_SECRET="TS5ttyQ6rv8BTc6mC6BYFJ"

DOMAIN="bitheart.org"
NAME="vastfrps"
TYPE="A"
TTL=600

# 获取当前公网 IP
CURRENT_IP="$(curl -s ipinfo.io | jq .ip)"
CURRENT_IP=${CURRENT_IP//\"/}

if [[ -z "$CURRENT_IP" ]]; then
  echo "Failed to get current public IP"
  exit 1
fi

echo $CURRENT_IP > /opt/download/pubip.txt

# 获取 GoDaddy 当前 DNS 记录 IP
DNS_IP="$(curl -s \
  -H "Authorization: sso-key ${API_KEY}:${API_SECRET}" \
  -H "Accept: application/json" \
  "https://api.godaddy.com/v1/domains/${DOMAIN}/records/${TYPE}/${NAME}" \
  | sed -n 's/.*"data":"\([^"]*\)".*/\1/p')"

if [[ "$CURRENT_IP" == "$DNS_IP" ]]; then
  echo "IP unchanged: $CURRENT_IP"
  exit 0
fi

echo "Updating ${NAME}.${DOMAIN}: ${DNS_IP} -> ${CURRENT_IP}"

curl -s -X PUT \
  -H "Authorization: sso-key ${API_KEY}:${API_SECRET}" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  "https://api.godaddy.com/v1/domains/${DOMAIN}/records/${TYPE}/${NAME}" \
  -d "[{\"data\":\"${CURRENT_IP}\",\"ttl\":${TTL}}]"

echo "Done"
