新增被顶号检测: km-modal弹窗+精确文案+重登按钮三重判定, 命中即停任务+群告警(kicked_out状态)
This commit is contained in:
@@ -117,6 +117,7 @@ function maybeSendReport(myStatus, chatLeft) {
|
|||||||
} catch (e) { log(`日报生成/发送失败: ${String(e.message).slice(0, 150)}`); }
|
} catch (e) { log(`日报生成/发送失败: ${String(e.message).slice(0, 150)}`); }
|
||||||
}
|
}
|
||||||
function statusText(s) {
|
function statusText(s) {
|
||||||
|
if (s === 'kicked_out') return '🚨 被顶号(他处登录)';
|
||||||
if (s === 'login_expired') return '🚨 登录失效';
|
if (s === 'login_expired') return '🚨 登录失效';
|
||||||
if (s === 'alert') return '⚠️ 异常中止';
|
if (s === 'alert') return '⚠️ 异常中止';
|
||||||
if (s === 'chat_exhausted') return '✅ 聊天耗尽收工';
|
if (s === 'chat_exhausted') return '✅ 聊天耗尽收工';
|
||||||
@@ -152,6 +153,12 @@ function statusText(s) {
|
|||||||
|
|
||||||
const { code, out } = await runBatch();
|
const { code, out } = await runBatch();
|
||||||
|
|
||||||
|
// 被顶号(账号在其他设备登录)→ 群告警,立即结束(2026-08-27)
|
||||||
|
if (/账号被顶/.test(out)) {
|
||||||
|
send(GROUP, `🚨 ${ACCT}(${ACCT === 'hr1' ? 'Chrome·合塑账号' : 'Edge·派卡账号'})被其他人登录了(账号在其他设备/浏览器登录,当前已退出),任务停止。如非本人操作请注意账号安全`);
|
||||||
|
maybeSendReport('kicked_out', lastChatLeft);
|
||||||
|
break;
|
||||||
|
}
|
||||||
// 登录失效 → 群告警,结束
|
// 登录失效 → 群告警,结束
|
||||||
if (/登录已失效|passport\.zhaopin\.com/.test(out)) {
|
if (/登录已失效|passport\.zhaopin\.com/.test(out)) {
|
||||||
send(GROUP, `🚨 ${ACCT}(${ACCT === 'hr1' ? 'Chrome·合塑账号' : 'Edge·派卡账号'})智联登录态已失效,今日筛选中止,请在任务机重新登录智联`);
|
send(GROUP, `🚨 ${ACCT}(${ACCT === 'hr1' ? 'Chrome·合塑账号' : 'Edge·派卡账号'})智联登录态已失效,今日筛选中止,请在任务机重新登录智联`);
|
||||||
|
|||||||
@@ -296,8 +296,13 @@ async function checkPageHealth(page) {
|
|||||||
captcha: !!document.querySelector('.verify-wrap,.captcha,.slider-verify,.tcaptcha-iframe') || /安全验证|请完成验证|滑块验证|图形验证码/i.test(body),
|
captcha: !!document.querySelector('.verify-wrap,.captcha,.slider-verify,.tcaptcha-iframe') || /安全验证|请完成验证|滑块验证|图形验证码/i.test(body),
|
||||||
risk: /操作过于频繁|访问受限|账号异常|请求异常/i.test(body),
|
risk: /操作过于频繁|访问受限|账号异常|请求异常/i.test(body),
|
||||||
greetLimit: /打招呼已达上限|已达到.*上限|今日打招呼次数已用完|打招呼额度不足/i.test(body),
|
greetLimit: /打招呼已达上限|已达到.*上限|今日打招呼次数已用完|打招呼额度不足/i.test(body),
|
||||||
|
// 被顶号检测(2026-08-27):km-modal 消息弹窗 + 精确文案 + 重新登录按钮,三者俱全才判定,防误报
|
||||||
|
kicked: !!document.querySelector('.km-modal.km-modal--message-box .km-modal__title-inner')
|
||||||
|
&& /账号已在其他设备或浏览器登录/.test(body)
|
||||||
|
&& !!document.querySelector('.km-modal.km-modal--message-box .km-button--primary'),
|
||||||
};
|
};
|
||||||
}).catch(() => ({ captcha: false, risk: false, greetLimit: false }));
|
}).catch(() => ({ captcha: false, risk: false, greetLimit: false, kicked: false }));
|
||||||
|
if (info.kicked) return '🚨 ALERT: 账号被顶:您的账号已在其他设备或浏览器登录';
|
||||||
if (info.captcha) return '🚨 ALERT: 触发验证码/风控,已暂停';
|
if (info.captcha) return '🚨 ALERT: 触发验证码/风控,已暂停';
|
||||||
if (info.risk) return '🚨 ALERT: 触发风控限制,已暂停';
|
if (info.risk) return '🚨 ALERT: 触发风控限制,已暂停';
|
||||||
if (info.greetLimit) return '🚨 ALERT: 打招呼已达上限,停止打招呼';
|
if (info.greetLimit) return '🚨 ALERT: 打招呼已达上限,停止打招呼';
|
||||||
|
|||||||
Reference in New Issue
Block a user