feat(qqmusic): 日志与通知按体系分组,每条都标清是什么签到
原来 63 处 step 和 60+ 处 log 全平铺,看日志分不清哪条属于哪套体系: [签到] / [金币] / [福利站] 混在一起,通知里也是「✓ 签到 +15」这种没有上下文的行。 日志前缀统一成「体系·子项」两段: [任务中心·签到] [任务中心·挂件] [任务中心·装扮] [任务中心·听书] [任务中心·节目] [任务中心·领奖] (原 [任务]) [福利站·签到] [福利站·礼券] [福利站·激励] [福利站·月里程碑] [福利站·月礼] [福利站·抽奖] [福利站·周里程碑] [金币·签到] [金币·抽奖签到] run() 里加四段分隔标题,日志一眼能看出走到哪套: ───── ① 任务中心(成长值)───── ───── ② 会员福利站(成长值 + 权益)───── ───── ③ 金币中心(金币,不计入成长值)───── ───── ④ VIP 体验券(分享卡)───── 末尾补一行说明:金币中心为独立体系,不产成长值(明细见上方 ③ 段)。 之前只有「本次新增成长值合计: 45」,看不出金币那部分跑没跑。 step 名同样统一成「体系·子项」(63 处),renderAccount 按体系分组渲染: 🟢 1006764347:成长值 +45 📈 任务中心(成长值) ✓ 签到 +15 ✓ 挂件 已佩戴 · 无需处理 1 项:装扮 🎁 会员福利站(成长值 + 权益) ✓ 签到 15成长值(本月 8 天) ✓ 礼券 +10 心愿值 💰 金币中心(金币,不计成长值) ✓ 签到 已签 + 30 金币 · 无需处理 1 项:抽奖签到 分组规则: - 组内每条都是「子项名 + detail」,不再出现只有 detail 的行 - 整组全 skip 时收成一行「💰 金币中心(金币,不计成长值):签到、抽奖签到 今日无需处理」 - 未知前缀落到「📌 其他」组,名字原样保留 - 分享卡链接改成「🔗 领卡链接 <url>」单独一行 coinCenter / 金币抽奖签到开头各加一行开始日志,带 ActID 值 —— 换季排查时 直接能看到脚本用的是哪个 ActID。 新增 test_render.js:24 条断言冻结分组契约 ① 三套体系各自成组 + 组标题 emoji + 金币标注不计成长值 ② 组内每条都带子项名(断言没有「只有 detail」的行) ③ 整组 skip 收成一行 ④ ActID 过期 → warn 单独列且 detail 含 ActID ⑤ 分享卡链接单独一行 ⑥ 空 steps 不崩 ⑦ 未知前缀 → 其他组 test_coin.js 里 3 处 step 名断言同步改成新名(金币·签到 / 金币·抽奖签到)。
This commit is contained in:
@@ -131,10 +131,10 @@ async function runCase(name, script, want) {
|
||||
ok(`返回 0(金币不计入成长值)`, t === 0, String(t))
|
||||
for (const [k, v] of Object.entries(want)) {
|
||||
if (k === 'status') {
|
||||
const s = c.steps.find(x => x.name === '金币签到')
|
||||
const s = c.steps.find(x => x.name === '金币·签到')
|
||||
ok(`step 存在且 status=${v}`, s && s.status === v, JSON.stringify(c.steps.map(x => `${x.name}:${x.status}`)))
|
||||
} else if (k === 'has') {
|
||||
const s = c.steps.find(x => x.name === '金币签到')
|
||||
const s = c.steps.find(x => x.name === '金币·签到')
|
||||
ok(`detail 含「${v}」`, s && s.detail.includes(v), s && s.detail)
|
||||
} else if (k === 'calls') {
|
||||
ok(`请求次数 = ${v}`, calls.length === v, String(calls.length))
|
||||
@@ -223,7 +223,7 @@ async function runCase(name, script, want) {
|
||||
}
|
||||
const c = mkClient()
|
||||
await c.coinCenter()
|
||||
const s = c.steps.find(x => x.name === '金币抽奖签到')
|
||||
const s = c.steps.find(x => x.name === '金币·抽奖签到')
|
||||
ok('金币抽奖签到有独立 step', !!s, JSON.stringify(c.steps.map(x => x.name)))
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user