from pathlib import Path
p = Path('diagnose/check-disk-bark.sh')
s = p.read_text()
old = """url_encode() {\n  local raw=\"$1\"\n  log \"func=url_encode enter\"\n  require_command python3\n  local encoded\n  encoded=\"$(python3 - <<'PY' \"$raw\"\nimport sys, urllib.parse\nprint(urllib.parse.quote(sys.argv[1], safe=''))\nPY\n)\"\n  log \"func=url_encode success\"\n  printf '%s' \"$encoded\"\n}\n"""
new = """url_encode() {\n  local raw=\"$1\"\n  log \"func=url_encode enter\"\n  require_command python3\n  local encoded\n  encoded=\"$(python3 -c 'import sys, urllib.parse; print(urllib.parse.quote(sys.argv[1], safe=\"\"))' \"$raw\")\"\n  log \"func=url_encode success\"\n  printf '%s' \"$encoded\"\n}\n"""
s = s.replace(old, new)
old = """  while IFS='|' read -r filesystem usage mountpoint; do\n    [ -n \"${filesystem:-}\" ] || continue\n    usage_num=\"${usage%%%}\"\n    log \"func=analyze_disk_usage inspect filesystem=$filesystem mountpoint=$mountpoint usage=$usage\"\n    if [ \"$usage_num\" -ge \"$THRESHOLD\" ]; then\n      ALERT_COUNT=$((ALERT_COUNT + 1))\n      ALERT_LINES=\"${ALERT_LINES}${mountpoint} ${usage} (${filesystem})\"$'\\n'\n      log \"func=analyze_disk_usage alert mountpoint=$mountpoint usage=$usage filesystem=$filesystem\"\n    fi\n  done <<EOF_DISK\n$disk_lines\nEOF_DISK\n\n  log \"func=analyze_disk_usage success alert_count=$ALERT_COUNT\"\n}\n"""
new = """  while IFS='|' read -r filesystem usage mountpoint; do\n    [ -n \"${filesystem:-}\" ] || continue\n    usage_num=\"${usage%%%}\"\n    if ! printf '%s' \"$usage_num\" | grep -Eq '^[0-9]+$'; then\n      fail \"磁盘使用率解析失败: filesystem=$filesystem usage=$usage mountpoint=$mountpoint\"\n    fi\n    log \"func=analyze_disk_usage inspect filesystem=$filesystem mountpoint=$mountpoint usage=$usage\"\n    if [ \"$usage_num\" -ge \"$THRESHOLD\" ]; then\n      ALERT_COUNT=$((ALERT_COUNT + 1))\n      ALERT_LINES=\"${ALERT_LINES}${mountpoint} ${usage} (${filesystem})\"$'\\n'\n      log \"func=analyze_disk_usage alert mountpoint=$mountpoint usage=$usage filesystem=$filesystem\"\n    fi\n  done < <(printf '%s\\n' \"$disk_lines\")\n\n  log \"func=analyze_disk_usage success alert_count=$ALERT_COUNT\"\n}\n"""
s = s.replace(old, new)
old = """  if [ -n \"$BARK_PROXY_VALUE\" ]; then\n    curl_args+=(--proxy \"$BARK_PROXY_VALUE\")\n    log \"func=send_bark_alert proxy=$BARK_PROXY_VALUE\"\n  else\n    log \"func=send_bark_alert skip reason=no_proxy\"\n  fi\n\n  encoded_title=\"$(url_encode \"$title\")\"\n  encoded_body=\"$(url_encode \"$body\")\"\n  encoded_group=\"$(url_encode \"$BARK_GROUP\")\"\n  api_url=\"$BARK_SERVER_VALUE/$BARK_KEY_VALUE/$encoded_title/$encoded_body?group=$encoded_group\"\n  curl -fsS --connect-timeout 10 --max-time 30 \"${curl_args[@]}\" \"$api_url\" >/dev/null\n\n  log \"func=send_bark_alert success mode=curl_api group=$BARK_GROUP host=$HOST_LABEL server=$BARK_SERVER_VALUE\"\n}\n"""
new = """  if [ -n \"$BARK_PROXY_VALUE\" ]; then\n    curl_args+=(--proxy \"$BARK_PROXY_VALUE\")\n    log \"func=send_bark_alert proxy_configured=yes proxy_redacted=yes\"\n  else\n    log \"func=send_bark_alert skip reason=no_proxy\"\n  fi\n\n  encoded_title=\"$(url_encode \"$title\")\"\n  encoded_body=\"$(url_encode \"$body\")\"\n  encoded_group=\"$(url_encode \"$BARK_GROUP\")\"\n  api_url=\"$BARK_SERVER_VALUE/$BARK_KEY_VALUE/$encoded_title/$encoded_body?group=$encoded_group\"\n\n  local rc=0\n  if [ \"${#curl_args[@]}\" -gt 0 ]; then\n    set +e\n    curl -fsS --connect-timeout 10 --max-time 30 \"${curl_args[@]}\" \"$api_url\" >/dev/null\n    rc=$?\n    set -e\n    if [ \"$rc\" -eq 0 ]; then\n      log \"func=send_bark_alert success mode=curl_api_proxy group=$BARK_GROUP host=$HOST_LABEL server=$BARK_SERVER_VALUE\"\n      return 0\n    fi\n    log \"func=send_bark_alert proxy_failed rc=$rc fallback=direct\"\n  fi\n\n  curl -fsS --connect-timeout 10 --max-time 30 \"$api_url\" >/dev/null\n  log \"func=send_bark_alert success mode=curl_api_direct group=$BARK_GROUP host=$HOST_LABEL server=$BARK_SERVER_VALUE\"\n}\n"""
s = s.replace(old, new)
if 'done <<EOF_DISK' in s or 'proxy=$BARK_PROXY_VALUE' in s or "python3 - <<'PY'" in s:
    raise SystemExit('patch incomplete')
p.write_text(s)

p2 = Path('deploy/systemd/install-disk-alert-systemd.sh')
s2 = p2.read_text().replace('DISK_ALERT_THRESHOLD=98', 'DISK_ALERT_THRESHOLD=85')
s2 = s2.replace('BARK_PROXY=socks5h://root:Gpt6545398@31.58.223.35:1080', 'BARK_PROXY=')
p2.write_text(s2)
