snowy-yang
|
1b972ec4dd
|
refactor(api)!: 平台 id 收尾统一——migu→mg、apple→ap
补上最后两个多字母 id,至此 15 个平台对外 id 全部为两字母:
kw kg tx wy qs xm me qt lr mg bd jx bl 5s ap
**破坏性变更**:id 出现在所有 URL、/sources 返回以及 data/auth.json 的
凭据键里,咪咕与 Apple Music 已存的登录态会失效,需重新登录。
- sdk/index.ts:id 与 supportQuality 映射键(展示名 `咪咕音乐` /
`Apple Music` 保持不动)
- sdk/types.ts:Source 联合类型
- src/routes.ts:/stream 的 enum ['qs','migu'] → ['qs','mg'],以及
/url/mg、/stream/mg 等路径与 schema 描述
- src/http/migu-stream.ts、src/routes-login.ts、src/server.ts
- test/smoke-test.ts、README.md、docs/API.md 同步
有意未改:域名与 API 路径(music.migu.cn、music.apple.com、
amp-api.music.apple.com、/v1/catalog/cn/apple-curators/…)、
标识符(registerMiguStream、appleAmpGet、APPLE_AMP_API_URL 等)、
sdk/migu 与 sdk/apple 的目录与文件名、错误文案里的平台名。
验证:typecheck ✓、pnpm test 112/112 ✓;另起临时实例实证 /sources
(15/15 平台 id 与展示名全对)与 /login/status,旧 id 零残留。
|
2026-10-03 11:07:21 +08:00 |
|
snowy-yang
|
3381e9b906
|
refactor(api)!: 平台 id 改两字母短码——qian→bd、joox→jx、5sing→5s、bili→bl
对外 id 统一为两字母短码,与既有的 kw/kg/tx/wy/qs/xm/me/qt/lr 对齐;
migu 与 apple 保持原样(Apple Music 没有自然的短码)。
**破坏性变更**:id 出现在所有 URL、/sources 返回、OpenAPI 示例以及
data/auth.json 的凭据键里,这四个平台已存的登录态会失效,需重新登录。
- sdk/index.ts:id 与 supportQuality 映射键
- sdk/types.ts:Source 联合类型
- src/routes.ts 与 routes-login.ts:路由路径与 schema 描述
(/login/bili/qr → /login/bl/qr 等)、/login/status 的响应键
- test/smoke-test.ts、README.md、docs/API.md 同步
有意未改:sdk 目录与文件名仍用平台名(sdk/qian/、sdk/apis/joox.ts …),
规则定为「目录=平台名,id=对外短码」,映射只在 SUPPORTED_SOURCES 一处声明。
域名与正则(joox.com、5sing.kugou.com、/joox\.com\//)、jooxSign 等标识符、
错误文案里的中文平台名、以及 kg 榜单名(含「joox本地热歌榜」)全部保持原样——
它们只是恰好含平台名,并不是 id。
验证:typecheck ✓、pnpm test 112/112 ✓;另起临时实例实证 /sources 与
/login/status 的新 id 与展示名,新旧 id 均无残留。
|
2026-10-03 11:03:06 +08:00 |
|
snowy-yang
|
dd28ba157c
|
docs: 文档与实现对齐,并收录全量代码检查报告
- README:平台能力表按实际能力位修正(qs 歌单/专辑改 —、kw/kg/tx/wy 的
parse 改 ✅、qt/lr 封面改 ✅),接口表补 album 分页位、parse/playlist
支持平台、user-playlist 仅 tx/wy、DELETE 登录端点、qs 扫码方式;
项目结构补 http/ 下 4 个文件与 routes-login 的 bili/lr
- docs/API.md:整篇改为指向 /openapi.json 的速查版,把唯一的接口事实
来源收敛到 JSON Schema;平台数按实际 15 个更新
- CODE-AUDIT.md:新增,记录 2026-10-03 全量检查的 P0/P1/P2 与文档不一致项,
顶部标注修复状态(已修 P0/P1,未动项明确列出)
为什么改写而不是逐条打补丁:文档与实现双向失配的地方太多,逐条修补会留下
自相矛盾的段落;改成「能力以 /sources 与 /openapi.json 为准,文档只做索引」
后,漂移的结构性来源就被消除了。
|
2026-10-03 00:27:30 +08:00 |
|
snowy-yang
|
96f6a7fe91
|
feat(source): 外部音源迁 src/ 并新增 source-simple 进程内直载
- apis/source(.ivm).ts → src/source(.ivm).ts(音源属服务端职责,不入 SDK)
- 新增 src/source-simple.ts:sources/*.mjs 进程内直载(getMusicUrl 极简契约),
与 *.js 的 IVM 沙箱(globalThis.lx 契约)按扩展名混排候选链,失败降权冷却
- server 挂载决策:SOURCE_ENABLED 非 0/false 启用,/url 取流分流到外部音源;
音源模式下登录态不参与取流,自动续期不启动(手动 /login/refresh 仍可用)
- 新增 src/env.ts(.env 最先加载)与 test/source-simple-test.ts(并入 pnpm test)
|
2026-10-01 16:35:08 +08:00 |
|
snowy-yang
|
aca7928019
|
feat(login): kg/tx 登录态自动续期(移植 lx-music-api-server 方案)
- kg: login_by_token 续期(AES-256-CBC + RSA 裸加密,参考其 refresh/kg.py),新 token 回写 data/auth.json
- tx: 新增 sdk/auth/tx.ts —— cookie 解析、VIP 检测(vip_login_base)、
music.login.LoginServer 续期(走既有 musicu.fcg 未签名通道,最佳努力)
- 调度:启动 10s 后首刷 + 每 24h 一次(对齐参考项目 86400s + next_run_time=now)
- /login/tx 支持可选 App 抓包凭据(openId/accessToken/refreshToken/refreshKey)
- 新增 POST /login/refresh 手动续期;/login/status 增补 tx 字段与更新时间
- 补充 /login/tx 文档行与 smoke 测试
|
2026-09-29 20:16:33 +08:00 |
|
snowy-yang
|
354df2e739
|
refactor: 架构整固——分层单向化、全量 TypeScript、直接运行
- 移除 bd/mg 两平台及磁盘残留产物;清理 api-test 死脚本、musicSdk/message+options 死模块、infSign vendor
- musicSdk/ 改名 sdk/;src/common、src/auth、src/apis 整体移入 sdk/,依赖方向定为 src → sdk 严格单向
- src/ 手写 JS 全量转 .ts,删除 JS 类型垫片 modules.d.ts;源码 import 统一 .ts 后缀
- Node 原生类型剥离直接运行 .ts(engines >=22.18),取消 tsc 发射产物,tsc 仅类型检查(pnpm typecheck)
- 删除 kwdes 备用实现与 src/index.ts 转发垫片;测试移至 test/smoke-test.ts
- common/request.ts 补显式导出类型;修复 set-cookie 单值形态、ApiError 类字段等隐患
验证:tsc 零错误,smoke-test 41/41
|
2026-09-25 23:06:23 +08:00 |
|
snowy-yang
|
45f3a4b989
|
feat(login): 新增网易云扫码/手机号登录与酷狗 token 绑定
|
2026-09-18 19:15:11 +08:00 |
|
snowy-yang
|
0f2585e5bd
|
feat(album): 新增 QQ 音乐(tx)专辑支持
|
2026-09-17 06:20:37 +08:00 |
|
snowy-yang
|
b06769dbbd
|
fix(album): 修复 kw 专辑接口——上游通道可用,故障为路由误传参数
|
2026-09-16 22:34:41 +08:00 |
|
snowy-yang
|
23c7ad91e4
|
feat(api): 新增歌手与专辑接口,修复各平台死代码中的多处隐藏 bug
|
2026-09-16 22:23:22 +08:00 |
|
snowy-yang
|
5dd0468860
|
refactor!: 移除品牌字样,音源改为 sources/ 目录自动加载,脚本不入库
|
2026-09-16 21:28:50 +08:00 |
|
snowy-yang
|
c1c8aa4b94
|
refactor(routes)!: 移除旧版 query 风格路由
|
2026-09-16 21:07:01 +08:00 |
|
snowy-yang
|
ab90c5b4c4
|
docs: 移除 lx 音源签名分析与逆向相关表述
|
2026-09-16 20:29:18 +08:00 |
|
snowy-yang
|
2b4bb16e02
|
refactor(server): 迁移到 Fastify 5 + 完善文档与路由参数适配
|
2026-09-09 21:56:06 +08:00 |
|
snowy-yang
|
59b2aae584
|
feat(server): 标准 HTTP 服务器重构 + FastAPI 风格自动文档
|
2026-08-29 11:51:07 +08:00 |
|
archive
|
f289df4cd7
|
存档:TS 重构前基线(lx 聚合源 = isolated-vm 加载器,签名方案已移除)
|
2026-08-28 23:24:49 +08:00 |
|