Skip to content

恢复 CloudMusic 查询与下载可靠性,补齐跨平台测试 - #23

Merged
p697 merged 2 commits into
masterfrom
codex/restore-cloudmusic-reliability
Sep 29, 2026
Merged

p697 merged 2 commits into
masterfrom
codex/restore-cloudmusic-reliability

Conversation

@p697

@p697 p697 commented Sep 29, 2026 •

Copy link
Copy Markdown
Owner

旧版的请求序列化、过时接口和按位置拼接数据会导致查询失败、单曲歌单异常、歌曲信息串位、评论重复与遗漏;下载还存在跨平台路径错误、切换音质丢失目录以及失败覆盖文件的风险。

本次恢复维护为 0.2.0,保留主要公共函数和对象用法,修复上述问题,新增可配置 cookie/超时/代理的 Client,复用连接并保留服务端会话。歌曲元数据与音频权限分离,音频信息按批次延迟加载;下载使用流式写入和原子替换,错误统一为可处理的异常。更新搜索、歌单和评论接口,补齐响应校验和分页停止条件。

同时迁移到 pyproject.toml、移除未使用的 HTML 抓取和旧线程池依赖,更新文档与迁移说明,并新增三系统测试和发行包安装检查。本轮不发布 PyPI,也未加入封面标签等额外功能。

验证:

  • Python 3.12.12、3.14.6 各 98 项离线/本地 HTTP 测试通过;语句与分支合计覆盖率 99.15%,Ruff 通过。
  • wheel/sdist 构建成功;全新环境安装 wheel 并从仓库外导入成功,无 lxml/threadpool。
  • 匿名实网曾通过歌曲详情、搜索、完整 123 首歌单和歌词;同请求也观察到网易云 -462 验证要求。专辑、评论的完整实网测试未通过,真实音频下载和登录态用户功能未完成验收。这些限制完整记录在 docs/verification.md,不将远端拒绝计为测试成功。
  • GitHub CI:Linux/macOS/Windows × Python 3.10/3.12/3.14,共 9 组测试,另有独立打包检查;最终提交 364ffcb 的 10 项检查全部通过。

兼容性变化:最低 Python 3.10;单元素列表正确返回列表;音频属性延迟访问;错误改为明确异常。未获权限或仅提供试听时不会假装下载成功。历史 PR #14、#17、#21 的路径与目录传递修复方向已在 README 致谢,未直接合并旧实现。

@p697
p697 merged commit 56bdae4 into master Sep 29, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant