diff --git a/scripts/daily-runner.js b/scripts/daily-runner.js index a0c668d..05b17c7 100644 --- a/scripts/daily-runner.js +++ b/scripts/daily-runner.js @@ -290,17 +290,14 @@ async function verifyBlockedPage() { maybeSendReport('login_expired', lastChatLeft); needRelogin = true; } - // 阻碍即停(v10.6 通用):弹窗无有效简历(限额/提示页等)→ 二次核查确认 → 私聊告警,停止 - // 注意:与风控/验证码分开处理——这种是平台功能限制(如日浏览1000份上限),不是风控 + // 阻碍即停(v10.6 通用,2026-08-27 收紧:碰到即终态停止,当日不再恢复): + // 弹窗无有效简历(日浏览限额/提示页等)→ 私聊告警(附弹窗原文)→ 立即停止 + // 二次核查仅用于给告警补充确认信息,不影响"停止"这个结果 else if (/弹窗无有效简历数据/.test(out)) { - log('弹窗无有效数据,二次核查中...'); - const confirmed = await verifyBlockedPage(); - if (confirmed) { - send(DM, `🚨 ${ACCT} 碰到平台阻碍(${confirmed}),已核查确认,任务停止。请人工查看任务机浏览器确认后再启动\n日志: ${out.match(/弹窗内容: [^\n]*/)?.[0] || ''}`); - maybeSendReport('platform_blocked', lastChatLeft); - break; - } - log('核查未复现(可能是瞬时异常页),跳过继续下一批'); + const detail = await verifyBlockedPage(); + send(DM, `🚨 ${ACCT} 碰到平台阻碍${detail ? `(${detail})` : ''},任务已停止,当日不再重新启动。请人工查看任务机浏览器确认\n日志: ${out.match(/弹窗内容: [^\n]*/)?.[0] || ''}`); + maybeSendReport('platform_blocked', lastChatLeft); + break; } // 风控/验证码 → 私聊告警,结束(不监听,风控需人工评估) else if (/ALERT.*(风控|验证|频繁|受限)/.test(out)) { diff --git a/scripts/stop-tasks.sh b/scripts/stop-tasks.sh index 45cdbb5..a3a9a9c 100755 --- a/scripts/stop-tasks.sh +++ b/scripts/stop-tasks.sh @@ -77,6 +77,19 @@ do_stop() { do_start() { # $1=acct local acct="$1" port label [ "$acct" = "hr1" ] && { port=9223; label=Chrome; } || { port=9225; label=Edge; } + # v10.6 当日平台阻碍保护:已 platform_blocked 的账号当日拒绝启动(限额等不会当日恢复) + local st + st=$(python3 -c " +import json,datetime +try: + s=json.load(open('$STATE_DIR/state-$acct.json')) + bj=datetime.datetime.utcnow()+datetime.timedelta(hours=8) + print(s.get('status','') if s.get('date')==bj.strftime('%Y-%m-%d') else '') +except Exception: print('')" 2>/dev/null) + if [ "$st" = "platform_blocked" ]; then + echo "⛔ $acct 今日已碰到平台阻碍(限额类),按规则当日不再启动。如确认误判,删除 $STATE_DIR/state-$acct.json 后重试" + return 1 + fi # 启动前防重 local existing; existing=$(find_pids "$acct") if [ -n "$existing" ]; then