fix(master): 修复 Bot 凭证切换交互三连 bug (Issue #102 后续)

- 提示文本被吞: curl JSON 内 \\` 触发反引号命令替换, 改纯文本两行式提示
- 完整凭证无响应: B2 拦截器仅认引用回复, 增加文本形态双触发兜底
- 输入格式: 支持上下两行 (Token/ChatID), 兼容一行空格分隔
This commit is contained in:
hotyue
2026-08-26 08:04:05 +00:00
parent ff2c30df09
commit 40b1c7b9fa
2 changed files with 15 additions and 4 deletions
+13 -2
View File
@@ -289,9 +289,19 @@ while true; do
# ---------------------------------------------------------- # ----------------------------------------------------------
# [业务流 B2] 拦截并解析 Bot 凭证切换回执 (Issue #102) # [业务流 B2] 拦截并解析 Bot 凭证切换回执 (Issue #102)
# [双触发] ① 引用回复提示消息 ② 文本形态直接命中 "Token + ChatID"
# (客户端未挂引用时兜底,防止凭证消息被静默吞掉)
# ---------------------------------------------------------- # ----------------------------------------------------------
RECONFIG_CANDIDATE=""
if [[ "$REPLY_TO_TEXT" == *"🔁 请回复本消息填写新 Bot 凭证:"* ]]; then if [[ "$REPLY_TO_TEXT" == *"🔁 请回复本消息填写新 Bot 凭证:"* ]]; then
RECONFIG_INPUT=$(echo "$TEXT" | tr -cd '0-9A-Za-z:_ \n-' | tr -s ' \n' ' ' | sed 's/^ //; s/ $//') RECONFIG_CANDIDATE="$TEXT"
elif [[ "$TEXT" =~ ^[0-9]{6,}:[A-Za-z0-9_-]{30,}[[:space:]]+-?[0-9]{5,}[[:space:]]*$ ]] || \
[[ "$TEXT" =~ ^[0-9]{6,}:[A-Za-z0-9_-]{30,}[[:space:]]*$ ]]; then
RECONFIG_CANDIDATE="$TEXT"
fi
if [ -n "$RECONFIG_CANDIDATE" ]; then
# [格式归一] 支持上下两行 (Token/ChatID) 或一行空格分隔
RECONFIG_INPUT=$(echo "$RECONFIG_CANDIDATE" | tr '\n' ' ' | tr -cd '0-9A-Za-z:_ -' | tr -s ' ' | sed 's/^ //; s/ $//')
if [ -n "$RECONFIG_INPUT" ]; then if [ -n "$RECONFIG_INPUT" ]; then
TEXT="do_reconfig:${RECONFIG_INPUT}" TEXT="do_reconfig:${RECONFIG_INPUT}"
fi fi
@@ -429,9 +439,10 @@ while true; do
"reconfig_input") "reconfig_input")
if [ -z "$CB_ID" ]; then send_msg "$CHAT_ID" "⛔ 安全拦截:非法特权执行环境。"; continue; fi if [ -z "$CB_ID" ]; then send_msg "$CHAT_ID" "⛔ 安全拦截:非法特权执行环境。"; continue; fi
CHAT_ID=$(echo "$CHAT_ID" | tr -cd '0-9-') CHAT_ID=$(echo "$CHAT_ID" | tr -cd '0-9-')
# [Issue #102 修复] 原 \\` 在双引号内触发反引号命令替换,格式文本被吞;改用纯文本两行式提示
curl -s -X POST "https://api.telegram.org/bot${TG_TOKEN}/sendMessage" \ curl -s -X POST "https://api.telegram.org/bot${TG_TOKEN}/sendMessage" \
-H "Content-Type: application/json" \ -H "Content-Type: application/json" \
-d "{\"chat_id\":\"$CHAT_ID\",\"text\":\"🔁 请回复本消息填写新 Bot 凭证:\\n格式: \\`新Token 新ChatID\\` (空格分隔)\\n示例: \\`123456789:AAH... 123456789\\`\",\"parse_mode\":\"Markdown\",\"reply_markup\":{\"force_reply\":true}}" > /dev/null -d "{\"chat_id\":\"$CHAT_ID\",\"text\":\"🔁 请回复本消息填写新 Bot 凭证:\\n第一行: 新 Token (形如 123456789:AAH...)\\n第二行: 新 Chat ID (形如 -1001234567890)\\n*(也支持一行空格分隔)*\",\"parse_mode\":\"Markdown\",\"reply_markup\":{\"force_reply\":true}}" > /dev/null
;; ;;
"do_reconfig:*") "do_reconfig:*")
+2 -2
View File
@@ -1,2 +1,2 @@
MASTER_VERSION=4.3.4 MASTER_VERSION=4.3.5
AGENT_VERSION=4.3.4 AGENT_VERSION=4.3.5