Archived
This repository has been archived on 2026-10-02 . You can view files and clone it. You cannot open issues or pull requests or push a commit.
4d3204213e03284d55ad55c48ded0a501caa9f5f
为什么:播客单集直链解析的唯一入口,前 20 行是降级阶梯的嵌套构造 (if 套 for 套 if),与尝试循环混在同一个函数里,改音质口径要通读全函数。 拆出: - _falldown_order(模块级纯函数):降级尝试序列——auto→通用阶梯原序 / 已知音质→向下后缀 / 未知音质→该音质优先+通用阶梯,去重保序收敛为 dict.fromkeys;_FALLDOWN_LADDER 从函数内上移模块级 - resolve_episode_url 只剩尝试循环;song_id 的 int 防御上提循环外 (循环不变量:原实现首轮即判、失败直接 None,url_v1 从未收到过坏 sid) 先写测试后动代码:新增 tests/test_resolve_episode_url.py 11 例,在未改动 实现上一次跑绿,钉住核心口径——「只向下不向上」(standard 绝不回退到 exhigh,历史坑)、未知音质前置、垃圾 song_id 零请求、APIException 降级、 data[0] 无 url 降级、结果映射缺省值。 门禁:ruff 全过 · pyright 0/0 · pytest 370 passed(359→370)。
Languages
Python
61%
TypeScript
32.2%
CSS
6.6%
Dockerfile
0.1%