Files
ql-scripts/qqmusic/test_sign_run.js
zhuhjay 68721d1abb refactor(qqmusic): 脚本改名 scrip_qqmusic_checkin.js 以匹配订阅白名单
订阅规则 ql repo 的 whitelist 参数是 "scrip_",只有文件名带该前缀的才会被拉取。
原文件名 qqmusic_checkin.js 不在白名单内,青龙订阅拉不到。

- qqmusic/qqmusic_checkin.js -> qqmusic/scrip_qqmusic_checkin.js(git mv 保留历史)
- test_sign_run.js 的 require 路径同步
- qqmusic/README.md 与根 README.md 更新文件名与白名单约定说明
- 根 README 补 QQ音乐条目(环境变量 SH_QQMUSIC_KEY / cron 1 0,6 * * *)

依赖拉取不受影响:订阅命令的 dependence 参数 sendNotify|common 会额外拉这两个文件,
脚本的 require('../sendNotify') 仍指向青龙内置/仓库根的 sendNotify.js。

验证:node --check 通过 / 签名对拍 6 组向量全 PASS / 空 env 优雅跳过 /
单账号与 & 多账号解析正确 / 整串 cookie 形态解析正确
2026-11-04 20:49:54 +08:00

28 lines
1010 B
JavaScript
Raw Permalink 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 node
// 被测模块 vs Python 参考实现的逐字节比对(输入: test_sign_expect.json)
'use strict'
const fs = require('fs')
const path = require('path')
const { zzc, time33 } = require(path.join(__dirname, 'scrip_qqmusic_checkin.js'))
const expect = JSON.parse(fs.readFileSync(path.join(__dirname, 'test_sign_expect.json'), 'utf8'))
let fails = 0
const t33js = time33('Q_H_L_testkey1234567890')
const t33ok = t33js === expect.time33
console.log(`time33 py=${expect.time33} js=${t33js} -> ${t33ok ? 'OK' : 'MISMATCH'}`)
if (!t33ok) fails++
for (const c of expect.cases) {
const got = zzc(c.payload)
const ok = got === c.zzc
if (!ok) {
fails++
console.log(`zzc MISMATCH payload[:40]=${JSON.stringify(c.payload.slice(0, 40))}\n py=${c.zzc}\n js=${got}`)
} else {
console.log(`zzc OK len=${c.len} payload[:28]=${JSON.stringify(c.payload.slice(0, 28))}`)
}
}
console.log('RESULT:', fails === 0 ? 'PASS' : `FAIL(${fails})`)
process.exit(fails === 0 ? 0 : 1)