Files
workphone-sdk/sdk/scripts/run_kaluo_msg_moments.sh
Manus AI a073d95f1c
Some checks failed
SDK CI / python-compile (push) Has been cancelled
chore: GitHub源码文档交接快照 2026-07-19
保留源码与部署文档,排除超大二进制和本地运行配置。
2026-07-19 16:16:14 +08:00

64 lines
2.8 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env bash
# 无线主控:等待 WS Agent → hook probe → 给卡若发「你好」→ 发朋友圈 → 截图
# 不依赖 Mac ADB / oneclick / ensure_ws_agent.sh
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
SDK_ROOT="$(cd "${SCRIPT_DIR}/.." && pwd)"
DEVICE_ID="${DEVICE_ID:-xgfe65eimrrofyws}"
SDK_PORT="${SDK_PORT:-8899}"
SDK_BASE="http://127.0.0.1:${SDK_PORT}"
OUT_DIR="${SDK_ROOT}/../开发文档/5、接口/images"
LOG="/tmp/wp_kaluo_msg_moments.log"
TO_ID="${TO_ID:-卡若}"
MSG="${MSG:-你好}"
MOMENTS="${MOMENTS:-你好,来自工作手机无线主控测试 $(date '+%Y-%m-%d %H:%M')}"
MAX_WAIT="${WS_WAIT_SEC:-600}"
mkdir -p "$OUT_DIR"
exec > >(tee -a "$LOG") 2>&1
echo "=== $(date) 无线主控:等待 WS Agent ${DEVICE_ID}(最长 ${MAX_WAIT}s==="
echo "Termux 启动命令: bash ${SCRIPT_DIR}/termux_agent_bootstrap.sh ${DEVICE_ID} ${SDK_PORT}"
bash "${SCRIPT_DIR}/wait_ws_agent.sh" "${DEVICE_ID}" "${SDK_BASE}" "${MAX_WAIT}"
echo "=== hook probe经 device_transport / WS==="
PROBE=$(curl -s --max-time 30 "${SDK_BASE}/api/v3/hook/probe/${DEVICE_ID}")
echo "$PROBE" | python3 -m json.tool 2>/dev/null || echo "$PROBE"
supports=$(echo "$PROBE" | python3 -c "import sys,json; print(json.load(sys.stdin).get('supports_hook', False))" 2>/dev/null || echo "False")
if [[ "$supports" != "True" ]]; then
echo "⚠️ supports_hook 未 true仍尝试 executeFrida 可能正在 attach"
fi
echo "=== 发消息给 ${TO_ID}${MSG} ==="
SEND_JSON=$(curl -s -X POST "${SDK_BASE}/api/v3/hook/execute" \
-H "Content-Type: application/json" \
-d "{\"device_id\":\"${DEVICE_ID}\",\"platform\":\"wechat\",\"action\":\"send_message\",\"params\":{\"to_id\":\"${TO_ID}\",\"content\":\"${MSG}\",\"msg_type\":\"text\"},\"hook_only\":true}")
echo "$SEND_JSON" | python3 -m json.tool 2>/dev/null || echo "$SEND_JSON"
echo "=== 发朋友圈 ==="
MOMENTS_JSON=$(curl -s -X POST "${SDK_BASE}/api/v3/moments/post" \
-H "Content-Type: application/json" \
-d "{\"device_id\":\"${DEVICE_ID}\",\"platform\":\"wechat\",\"content\":\"${MOMENTS}\"}")
echo "$MOMENTS_JSON" | python3 -m json.tool 2>/dev/null || echo "$MOMENTS_JSON"
TS=$(date +%Y%m%d_%H%M%S)
SHOT="${OUT_DIR}/moments_success_${TS}.png"
echo "=== 截图 → ${SHOT} ==="
SHOT_JSON=$(curl -s -X POST "${SDK_BASE}/api/v3/devices/${DEVICE_ID}/screenshot")
echo "$SHOT_JSON" | python3 -c "
import sys, json, base64, pathlib
d = json.load(sys.stdin)
data = d.get('data') or {}
b64 = data.get('image') or data.get('base64') or data.get('screenshot')
path = pathlib.Path('${SHOT}')
if b64:
if ',' in b64: b64 = b64.split(',',1)[1]
path.write_bytes(base64.b64decode(b64))
print('saved', path)
else:
print('no image in response', d)
" 2>/dev/null || echo "$SHOT_JSON"
echo "=== 完成 $(date) log=${LOG} ==="