小红花与直播口令
mcloud-sign 提供三种使用方式:CLI 主流程内开启直播口令任务、独立入口 autoDrawRedFlower,以及手工传入口令的 drawRedFlower。
单文件入口导出 drawRedFlower:
import { drawRedFlower } from "./index.mjs";
await drawRedFlower([ "云盘宠粉会员日", "会员日福利多多"]);该入口会加载配置并遍历全部有效账号。也可以传入第二个参数指定配置路径:
await drawRedFlower(["口令内容"], "/absolute/path/to/asign.json");autoDrawRedFlower 会自动获取直播口令并遍历所有账号领取小红花,不依赖 CLI 主流程,适合在直播活动时段配合 cron 调用:
import { autoDrawRedFlower } from "./index.mjs";
await autoDrawRedFlower();// 或指定配置路径await autoDrawRedFlower("/absolute/path/to/asign.json");也可以使用 CLI 包附带的独立运行入口:
npm run dev:koulingcron 示例(活动时段内每 30 分钟一次):
0,30 9-11 * * * cd /path/to/mcloud-sign && npx tsx -e "import('@asunajs/core').then(m => m.autoDrawRedFlower())"对每个账号,程序会:
- 检查「中国移动云盘」主播是否开播,未开播则跳过口令抓取与领取。
- 获取当前小红花数量。
- 上报直播活动所需埋点。
- 尝试领取首次参与奖励。
- 逐个兑换口令。
- 查询复活花和最终数量。
被服务端拒绝的口令(非成功、非已兑换)会记录为无效口令,并自动重新监听一次直播间、只提交新发现的口令。多账号共享一份口令缓存(5 小时 TTL),首个账号抓取成功后,后续账号直接复用,无效口令会从缓存中剔除。
getLiveKouling 并行从两个来源抓取口令,合并去重后返回:
- WebSocket 实时监听直播弹幕(默认收到首个口令即返回,内部超时上限 180 秒)。
- 小红书主页抓取。
仅监听主播「中国移动云盘」的直播中直播间;其他主播或未开播时会跳过。
- 口令通常有活动时效,过期后接口会返回业务结果。
- 直播未开播、SSO 或直播登录临时失败时,任务会跳过或降级(验证失败不拦截,避免漏掉口令)。
- WebSocket 弹幕解析按格式提取口令(多行「复制口令N:」、单行、「口令是XXX」、纯数字编号),并对「口令是什么?」这类提问式弹幕做了过滤。