#!/bin/bash

# --- 配置区 ---
SUB_URL="https://45.137.180.230/api/getData/Authorize?token=048f12afb09c43b81f1ce0c35aac3564"
CONFIG_FILE="config.yaml"
BACKUP_FILE="config.yaml.bak"

# 你的自定义头部配置（去掉了密码，保留核心设置）
read -r -d '' HEADER << EOM
# 基础配置
port: 7890
socks-port: 7891
redir-port: 7892
allow-lan: true
bind-address: "*"
mode: rule
log-level: info
ipv6: false

# 面板配置（无密码模式）
external-controller: 0.0.0.0:9090
secret: ""

EOM
# --- 配置区结束 ---

echo "开始下载订阅..."

# 1. 下载订阅内容
curl -l -k -s -H "User-Agent: clash" "$SUB_URL" -o temp_sub.yaml

# 2. 检查是否下载成功
if [ -s temp_sub.yaml ] && (grep -q "proxies:" temp_sub.yaml || grep -q "proxy-providers:" temp_sub.yaml); then
    echo "下载成功，正在清洗并合并配置..."
    
    # 备份旧配置
    cp "$CONFIG_FILE" "$BACKUP_FILE" 2>/dev/null
    
    # 3. 清洗订阅文件，删除所有可能冲突的全局行
    sed -i '/^port:/d' temp_sub.yaml
    sed -i '/^socks-port:/d' temp_sub.yaml
    sed -i '/^redir-port:/d' temp_sub.yaml
    sed -i '/^mixed-port:/d' temp_sub.yaml
    sed -i '/^allow-lan:/d' temp_sub.yaml
    sed -i '/^bind-address:/d' temp_sub.yaml
    sed -i '/^mode:/d' temp_sub.yaml
    sed -i '/^log-level:/d' temp_sub.yaml
    sed -i '/^ipv6:/d' temp_sub.yaml
    sed -i '/^external-controller:/d' temp_sub.yaml
    sed -i '/^external-ui:/d' temp_sub.yaml
    sed -i '/^secret:/d' temp_sub.yaml
    
    # 4. 合并：自定义头部 + 清洗后的订阅内容
    echo "$HEADER" > "$CONFIG_FILE"
    cat temp_sub.yaml >> "$CONFIG_FILE"
    
    # 清理临时文件
    rm temp_sub.yaml
    
    echo "配置已更新！正在重启 Mihomo..."
    docker compose restart mihomo
    
    echo "------------------------------------"
    echo "更新完成！"
    echo "Yacd 地址: http://你的服务器IP:8090"
    echo "API 地址: http://你的服务器IP:9090"
    echo "密码栏请保持: 为空"
    echo "------------------------------------"
else
    echo "错误：下载失败或订阅格式不正确！"
    [ -f temp_sub.yaml ] && rm temp_sub.yaml
    exit 1
fi
