Commit Graph

  • 22b263f547 refactor: SMTP 发信改 aiosmtplib,最后一个阻塞网络调用从 to_thread 里取出来 main snowy-yang 2026-09-29 15:28:13 +08:00
  • e8cc7cb34a refactor: 本地文件 IO 归位——重活留线程、微秒级直接同步,移除零使用依赖 aiofiles snowy-yang 2026-09-29 15:20:51 +08:00
  • 046225e38d refactor: aria2 改手写原生异步 JSON-RPC,aria2p 与同步 HTTP 栈从依赖树清零 snowy-yang 2026-09-29 15:14:56 +08:00
  • 6c7f8f589e refactor: VIP 单飞锁改 asyncio.Lock,去掉每请求一次线程跳转 snowy-yang 2026-09-29 14:57:24 +08:00
  • 133beab492 chore: 删除 HTTP 线三个垫片,同步/异步桥接层彻底清零 snowy-yang 2026-09-28 20:18:08 +08:00
  • 96af56cc27 refactor: auth_system 全面异步化(aiosqlite),拆掉 web/services 层的 to_thread 桥接 snowy-yang 2026-09-28 20:13:19 +08:00
  • 69a50c2c31 refactor: worker 子系统全面异步化,拆掉同步转异步的桥接层 snowy-yang 2026-09-28 19:36:56 +08:00
  • 65adfc9089 refactor: 删除 aiohttp_compat 垫片,music_api 改走原生 core.http_client snowy-yang 2026-09-28 19:17:03 +08:00
  • b089dadac2 refactor: geo 走原生异步 HTTP,清掉短链展开死链 snowy-yang 2026-09-28 19:10:45 +08:00
  • 064a89d726 refactor: 删除旧前端单体,React 产物成为唯一首页来源 snowy-yang 2026-09-27 18:41:30 +08:00
  • 17b4a99680 test: golden 快照切换到 React 构建产物口径 snowy-yang 2026-09-27 18:35:07 +08:00
  • 58853abd3c chore: 提交 React 前端构建产物(app.js 330KB / auth.js 38KB / app.css 56KB) snowy-yang 2026-09-27 18:35:06 +08:00
  • 8803444755 feat: 后端接线上 React 构建产物,legacy 模板降级为兜底 snowy-yang 2026-09-27 18:35:04 +08:00
  • 3a089caff2 feat: 前端迁移 React 18 + Vite 5 脚手架与保真移植的控制器 snowy-yang 2026-09-27 18:34:49 +08:00
  • 0dbbb3ed63 refactor: 移除 music_api 的 16 个死掉的同步兼容门面 snowy-yang 2026-09-27 17:51:22 +08:00
  • 6fb37534d3 refactor: 计费退款不变量收敛为 Billing.scope()(download.py 25 处手工退款 → 0) snowy-yang 2026-09-27 12:13:00 +08:00
  • 9a34517454 perf: get_conn 每连接固定开销 1.6ms → 0.5ms(-70%) snowy-yang 2026-09-27 11:32:03 +08:00
  • be4dd0646a refactor: /download 同步分支拆解(120 行 / 圈 19 → 78 行 / 圈 14) snowy-yang 2026-09-27 11:11:56 +08:00
  • 4d3204213e refactor: resolve_episode_url 阶梯构造拆解(58 行 / 圈 19 / 嵌套 3 → 36 行 / 圈 12 / 嵌套 2) snowy-yang 2026-09-27 11:00:50 +08:00
  • d2e6856899 refactor: get_playlist_detail 批次拉取拆解(94 行 / 圈 24 / 嵌套 3 → 60 行 / 圈 9 / 嵌套 1) snowy-yang 2026-09-27 10:53:48 +08:00
  • f0de0b65b1 refactor: login 端点拆解(90 行 / 圈 26 / 嵌套 2 → 39 行 / 圈 10 / 嵌套 1) snowy-yang 2026-09-27 10:13:36 +08:00
  • 5ad2152acc refactor: register 端点拆解(84 行 / 圈 34 → 58 行 / 圈 20 / 嵌套 1) snowy-yang 2026-09-27 10:05:20 +08:00
  • e00ac14460 refactor: search_music 四路映射拆解(101 行 / 圈 32 / 嵌套 6 → 42 行 / 圈 7 / 嵌套 1) snowy-yang 2026-09-27 09:42:07 +08:00
  • 37f8d77405 refactor: init_db 四段拆解(142 行 / 圈 15 / 嵌套 4 → 14 行 / 圈 2 / 嵌套 1) snowy-yang 2026-09-27 09:36:31 +08:00
  • 1c6b17f718 refactor: 播客单集 worker 拆解(140 行 / 圈 35 → 40 行 / 圈 6 / 嵌套 1) snowy-yang 2026-09-27 09:30:52 +08:00
  • d08ae85cd4 feat: 前端美化层 v11——品牌氛围 + Tab 药丸化 snowy-yang 2026-09-27 09:19:23 +08:00
  • da83201403 refactor: run_zip_job 四路终态收尾拆解(167 行 / 圈 37 → 32 行 / 圈 5) snowy-yang 2026-09-27 09:08:52 +08:00
  • 9cbd341e2e refactor: 单曲下载 worker 拆解(177 行 / 圈 36 → 43 行 / 圈 8) snowy-yang 2026-09-27 09:03:05 +08:00
  • 9910e4dbec refactor: _fetch_via_http 拆解(94 行 / 圈 21 → 46 行 / 圈 5) snowy-yang 2026-09-27 08:05:44 +08:00
  • 8716617d5d refactor: download_music_file 拆解(205 行 / 圈 47 → 125 行 / 圈 20) snowy-yang 2026-09-27 07:56:01 +08:00
  • a05af4a880 refactor: 播客流式下载拆解(嵌套 10 层 → 1,三段职责各就其位) snowy-yang 2026-09-27 07:45:49 +08:00
  • f27bd7dd74 refactor: /song 端点拆解(99 行 / 圈 18 → 主函数 27 行 / 圈 8) snowy-yang 2026-09-27 07:41:16 +08:00
  • 1973d6a0e8 fix: 启用会话过期(服务端校验签发时间,堵住旧 Cookie 永不过期) snowy-yang 2026-09-27 07:32:05 +08:00
  • 5c8f941d19 refactor: 两个 ZIP 打包 worker 合并为一个参数化引擎(604 行重复骨架 → 一份) snowy-yang 2026-09-26 19:25:06 +08:00
  • 65a81af94a refactor: 拆分任务监控循环的 7 组周期作业(170 行 / 圈 58 → 17 行 / 圈 3) snowy-yang 2026-09-26 19:04:36 +08:00
  • 3de75f7479 refactor: 两个「数据泥团」收成 dataclass / 字典 snowy-yang 2026-09-26 18:54:17 +08:00
  • 0569b50737 refactor: 清理 13 处生产死代码 snowy-yang 2026-09-26 18:54:11 +08:00
  • 445c16c329 refactor: web/routers/tasks.py 的 _touch_device 收敛到 services 版 snowy-yang 2026-09-26 18:54:04 +08:00
  • 4356c5f817 fix: 修正心跳端点在限流豁免表与限流调用里自相矛盾 snowy-yang 2026-09-26 18:53:59 +08:00
  • d7d3cfce69 refactor: HTTP 垫片异常层次收敛到 core.http_errors 单一来源 snowy-yang 2026-09-26 18:53:53 +08:00
  • 2b4704183c refactor: session 改用 itsdangerous,去掉手写密码学原语 snowy-yang 2026-09-26 18:53:47 +08:00
  • 0b25f215a2 fix: 恢复任务监控线程的启动点(迁移中丢失,超时取消与账本对账静默失效) snowy-yang 2026-09-26 18:53:40 +08:00
  • 095171e0b7 refactor: 两个根级游离模块并入 music_api 包,消除分层倒置 snowy-yang 2026-09-26 15:03:47 +08:00
  • 1d86ec87ec refactor: 抽两个 zip worker 的重复实现,并补齐暂停/恢复路径的测试 snowy-yang 2026-09-26 14:57:19 +08:00
  • 7a70eef636 refactor: 删除 services.runtime 兼容门面,7 处调用点直连真实子模块 snowy-yang 2026-09-26 14:48:05 +08:00
  • 3ed2f36b18 fix: 启动时初始化站点库表结构,修复全新部署「有库无表」的缺陷 snowy-yang 2026-09-26 14:38:05 +08:00
  • 70ca21974b refactor: 拆掉 auth_system 包内循环依赖,路径常量收敛到 db 单一来源 snowy-yang 2026-09-26 14:37:58 +08:00
  • d600b6a630 refactor: crypto 改用手写轮子的标准替代,去掉重复的函数内 import snowy-yang 2026-09-26 14:16:05 +08:00
  • bd3a4ac70b fix: 统一 core/auth_system 的数据目录解析,消除脑裂隐患 snowy-yang 2026-09-26 14:15:58 +08:00
  • 961ee87511 chore: 补齐 .gitignore 缺口,避免工具缓存被误提交 snowy-yang 2026-09-26 14:15:51 +08:00
  • ad8c30d932 refactor: 下载/标签/格式探测改用成熟库(aria2 + mutagen + filetype) snowy-yang 2026-09-26 13:54:44 +08:00
  • 183f5744d8 fix: 修复 7 处变量可能未绑定的真缺陷,类型检查升到 standard snowy-yang 2026-09-26 13:54:23 +08:00
  • fc7fc21284 test: 黄金契约测试改用站点库副本,不再写生产库 snowy-yang 2026-09-26 13:21:26 +08:00
  • da3d013e9c chore: 清理前端与容器脚本中指向已删台账的过时编号 snowy-yang 2026-09-26 13:18:44 +08:00
  • 6288a98ecc refactor: 拆分 4 个巨石模块为包,清理过时注释并删除作废文档 snowy-yang 2026-09-26 12:37:48 +08:00
  • 838d635bc5 fix: 修复重构遗留缺陷,补齐 pyright 检查盲区 snowy-yang 2026-09-26 11:52:06 +08:00
  • 8446166120 refactor!: uv 管理环境 + 彻底删除技术债(Flask 与 requests 全部移除) snowy-yang 2026-09-26 11:10:17 +08:00
  • f5d1e3c3a9 feat: 支持纯 FastAPI 模式(根路径服务前端)+ 修任务端点路径 snowy-yang 2026-09-26 10:25:05 +08:00
  • cd0f1f78a3 refactor: 迁移收尾(管理员2FA)+ 抽取公共工具层,消除 router 间重复 snowy-yang 2026-09-26 10:20:46 +08:00
  • 9df0028195 feat(routes): 迁移下载/批量打包/播客下载(账本事务)+ 修密钥绑定缺陷 snowy-yang 2026-09-26 10:13:16 +08:00
  • fb40b2132c feat(routes): 迁移管理后台全部 /admin/site/* 端点(28 个) snowy-yang 2026-09-26 10:02:24 +08:00
  • 915358405c feat(routes): 迁移注册/找回密码/卡密/验证码端点 snowy-yang 2026-09-26 10:00:39 +08:00
  • 22f4d77abd feat(routes): 迁移管理员扫码/Cookie/操作记录端点 snowy-yang 2026-09-26 09:59:04 +08:00
  • b7616e9831 feat(routes): 迁移个人中心/公开播放/前端错误端点 + 修 QR 异步回归 snowy-yang 2026-09-26 09:57:42 +08:00
  • 91c032a1c3 feat(routes): 迁移认证端点(login/logout/heartbeat/ann_seen) snowy-yang 2026-09-26 09:54:14 +08:00
  • 18c77296c2 feat(routes): 迁移首页/静态资源 + /auth/me 认证状态 snowy-yang 2026-09-26 09:51:32 +08:00
  • 0104ae55e5 feat(routes): 迁移音频流代理与结果交付端点(流式) snowy-yang 2026-09-26 09:49:22 +08:00
  • f588d313f0 feat(routes): 迁移任务状态端点(topen/queue/batch_progress/task/*) snowy-yang 2026-09-26 01:18:51 +08:00
  • f45a9ccd3a feat(routes): 迁移播客查询端点(parse/programs/search/hot) snowy-yang 2026-09-26 01:16:53 +08:00
  • 6c3181341b feat(routes): 迁移账号/全局歌单端点 + 鉴权依赖测试 snowy-yang 2026-09-26 01:15:22 +08:00
  • a2758aa0da feat(routes): 迁移解析端点 /song /playlist /album + 响应卫生中间件 snowy-yang 2026-09-26 01:12:54 +08:00
  • 2c55b55e03 feat(routes): 迁移查询类路由到 FastAPI + 会话互通 + 统一错误/限流 snowy-yang 2026-09-26 01:09:01 +08:00
  • c77ef40fd5 feat(db): 同步栈读写并发(_q 去锁)+ core.db 并发/跨loop 修复 snowy-yang 2026-09-26 01:03:18 +08:00
  • 52ed8b54fb feat(server): 生产服务器切换 uvicorn(FastAPI + Flask 兜底) snowy-yang 2026-09-26 00:35:02 +08:00
  • 0f2e72db44 feat(db-async): 站点数据异步读写仓储 + FastAPI 生命周期 snowy-yang 2026-09-26 00:34:11 +08:00
  • ce7ea66d6a refactor(async): music_api 异步化 + 全项目 lint 收敛 snowy-yang 2026-09-26 00:32:45 +08:00
  • 4962542e78 feat(core): requests 兼容异步垫片 + 同步/异步桥 snowy-yang 2026-09-26 00:27:47 +08:00
  • 9f56f68b66 chore(async-infra): 异步基础层 + 工具链 + 清理 snowy-yang 2026-09-26 00:24:00 +08:00
  • 41356e89c4 feat(web): FastAPI 脚手架(strangler 迁移起点) snowy-yang 2026-09-26 00:17:56 +08:00
  • c2a8da3e43 refactor(core): 抽出框架无关核心层 core/,为 FastAPI 迁移铺路 snowy-yang 2026-09-26 00:16:04 +08:00
  • d209af847a chore: 基线快照 —— 纳入 git 版本控制(站点 v2.4.0 / Flask 单体) snowy-yang 2026-09-26 00:13:05 +08:00