2026-09-01 02:44:57 +00:00
|
|
|
|
#!/bin/bash
|
|
|
|
|
|
# send-qr.sh — 发送指定账号的登录二维码(固定操作,2026-08-31)
|
2026-09-01 02:52:16 +00:00
|
|
|
|
# 用法:bash send-qr.sh <hr1|hr2|both> [group|dm]
|
2026-09-01 02:44:57 +00:00
|
|
|
|
# hr1/hr2 指定账号;both=两个都发
|
2026-09-01 02:52:16 +00:00
|
|
|
|
# group 发到数字HR群(默认——主场景是群里@机器人要码)
|
|
|
|
|
|
# dm 发到用户私聊(仅用户在私聊明确要码时用)
|
2026-09-01 02:44:57 +00:00
|
|
|
|
# 说明:强制刷新登录页拿新码(保证有效),发送失败自动降级纯文字。
|
|
|
|
|
|
# 这是固化脚本——AI 被要求发二维码时直接执行本命令,不做多余分析。
|
|
|
|
|
|
|
|
|
|
|
|
set -u
|
|
|
|
|
|
SCRIPTS=/opt/data/skills/recruitment-resume-screener/scripts
|
|
|
|
|
|
HERMES=/opt/hermes/.venv/bin/hermes
|
|
|
|
|
|
DM='oc_d09c77b62ca5f90f6699830fbc695c44'
|
|
|
|
|
|
GROUP='oc_7ef4980f25ec2a80bb013d5dd79b9864'
|
|
|
|
|
|
|
2026-09-01 02:52:16 +00:00
|
|
|
|
ACCTS="${1:?用法: send-qr.sh <hr1|hr2|both> [group|dm]}"
|
|
|
|
|
|
TARGET="${2:-group}"
|
|
|
|
|
|
[ "$TARGET" = "dm" ] && DEST=$DM || DEST=$GROUP
|
2026-09-01 02:44:57 +00:00
|
|
|
|
|
|
|
|
|
|
[ "$ACCTS" = "both" ] && ACCTS="hr1 hr2"
|
|
|
|
|
|
|
|
|
|
|
|
for ACCT in $ACCTS; do
|
|
|
|
|
|
case $ACCT in
|
|
|
|
|
|
hr1) PORT=9223; LABEL="Chrome·合塑账号";;
|
|
|
|
|
|
hr2) PORT=9225; LABEL="Edge·派卡账号";;
|
|
|
|
|
|
*) echo "未知账号: $ACCT(只支持 hr1/hr2/both)"; exit 1;;
|
|
|
|
|
|
esac
|
|
|
|
|
|
QR=/tmp/zhaopin-login-qr-$ACCT-request.png
|
|
|
|
|
|
echo "[$ACCT] 抓取二维码(刷新登录页拿新码)..."
|
|
|
|
|
|
if node "$SCRIPTS/login-qrcode.js" $PORT $QR 2>&1 | grep -q SAVED && [ -s "$QR" ]; then
|
|
|
|
|
|
printf "🚨 当前%s(%s)账号登录二维码(实时抓取):\n扫码可重新登录" "$ACCT" "$LABEL" > /tmp/qr-req-$ACCT.txt
|
|
|
|
|
|
echo "MEDIA:$QR" >> /tmp/qr-req-$ACCT.txt
|
|
|
|
|
|
$HERMES send -t "feishu:$DEST" -f /tmp/qr-req-$ACCT.txt >/dev/null 2>&1 \
|
|
|
|
|
|
&& echo "[$ACCT] ✅ 已发送二维码 → $([ "$DEST" = "$GROUP" ] && echo 群 || echo 私聊)" \
|
|
|
|
|
|
|| echo "[$ACCT] ❌ 发送失败"
|
|
|
|
|
|
else
|
|
|
|
|
|
echo "[$ACCT] ❌ 二维码抓取失败(CDP不通或页面异常)"
|
|
|
|
|
|
fi
|
|
|
|
|
|
done
|