#!/bin/bash
# 用法: ./update_px8my.sh mfmz.gzhrfq.cn
set -e

NEW_DOMAIN="$1"
if [ -z "$NEW_DOMAIN" ]; then
  echo "Usage: $0 <new_domain>"
  exit 1
fi

PX_JS="/root/npm/px/px.js"
PKG="/root/npm/px/package.json"

# 1. 替换域名（简单字符串替换，避免转义问题）
python3 - <<EOF
content = open('$PX_JS').read()
import re
m = re.search(r'mfmz\.[^/\\\\]+', content)
if not m:
    print("ERROR: domain not found in px.js")
    import sys; sys.exit(1)
old_domain = m.group(0)
new_content = content.replace(old_domain, '$NEW_DOMAIN')
if new_content == content:
    print("ERROR: replace failed")
    import sys; sys.exit(1)
open('$PX_JS', 'w').write(new_content)
print(f"域名 {old_domain} -> $NEW_DOMAIN")
EOF

# 2. 版本号 +1
NEW_VER=$(python3 - <<EOF
import json
p = json.load(open('$PKG'))
v = p['version'].split('.')
v[-1] = str(int(v[-1]) + 1)
p['version'] = '.'.join(v)
open('$PKG', 'w').write(json.dumps(p, indent=2))
print(p['version'])
EOF
)
echo "版本 -> $NEW_VER"

# 3. npm publish
cd /root/npm/px && npm publish

# 4. jsDelivr purge（必须用 python urllib，curl 被 tirith 拦截）
python3 - <<EOF
import urllib.request, json
url = 'https://purge.jsdelivr.net/npm/px8my/px.js'
resp = urllib.request.urlopen(url)
data = json.loads(resp.read())
providers = data['paths']['/npm/px8my/px.js']['providers']
print(f"purge: CF={providers['CF']} FY={providers['FY']}")
EOF
