#!/bin/bash
set -euo pipefail

SOURCE="/opt/vpn-feed/nodes.txt"
OUTPUT="/opt/vpn-feed/sub.txt"
BACKUP_DIR="/opt/vpn-feed/backups"

REMOTE="root@104.252.19.38"
REMOTE_PORT="443"
SSH_KEY="/root/.ssh/vpnfeed_hostvds"
REMOTE_FILE="/var/www/vpn-feed/api/sub/7f3a9c42-2d91-4e8f-a617-5b30e0c4d892"

mkdir -p "$BACKUP_DIR"

if [ ! -s "$SOURCE" ]; then
    echo "ERROR: nodes.txt is empty or missing"
    exit 1
fi

if ! grep -q '^vless://' "$SOURCE"; then
    echo "ERROR: nodes.txt does not contain a VLESS profile"
    exit 1
fi

if [ -s "$OUTPUT" ]; then
    cp "$OUTPUT" "$BACKUP_DIR/sub-$(date +%Y%m%d-%H%M%S).txt"
fi

base64 -w 0 "$SOURCE" > "$OUTPUT"
printf '\n' >> "$OUTPUT"

scp \
  -i "$SSH_KEY" \
  -P "$REMOTE_PORT" \
  -o BatchMode=yes \
  "$OUTPUT" \
  "$REMOTE:$REMOTE_FILE"

find "$BACKUP_DIR" -type f -name 'sub-*.txt' -mtime +14 -delete

echo "Subscription published successfully."
