snowy-yang
b089dadac2
refactor: geo 走原生异步 HTTP,清掉短链展开死链
「同步转异步」的残留清理:
1) auth_system/geo.query_ip_province 原经 core.sync_http 同步门面(在后台
事件循环桥接)查询归属地,但其唯一调用方 record_login_location 的入口
本来就是 async 的登录链路(web/routers/auth 里还套了一层 to_thread)。
改为直接 await core.http_client——桥接纯属多余,顺带把 record_login_location
转 async,落库仍走同步 sqlite 但经 asyncio.to_thread 卸载,避免 sqlite busy
等待(最长 15s)冻结事件循环。
调用方两处(普通用户/管理员登录)去掉 to_thread 包装,直接 await。
2) MusicAPIService._extract_music_id 是死代码:ID 归一化早已迁到
web.request_utils(注释里明说是它的迁移口径),全仓零调用。它也是
core.utils.expand_shortlink 的唯一调用方——一并删除,core.utils 由此
彻底不再 import core.sync_http。
门禁:ruff 全过 / pyright 0-0 / pytest 387 项全绿(0 失败)。
2026-09-28 19:10:45 +08:00
..
2026-09-27 18:35:07 +08:00
2026-09-26 14:37:58 +08:00
2026-09-26 11:52:06 +08:00
2026-09-26 13:54:44 +08:00
2026-09-26 14:37:58 +08:00
2026-09-27 09:36:31 +08:00
2026-09-26 14:37:58 +08:00
2026-09-27 12:13:00 +08:00
2026-09-27 11:32:03 +08:00
2026-09-26 11:52:06 +08:00
2026-09-27 07:32:05 +08:00
2026-09-26 14:37:58 +08:00
2026-09-27 11:11:56 +08:00
2026-09-27 08:05:44 +08:00
2026-09-27 18:35:07 +08:00
2026-09-26 11:52:06 +08:00
2026-09-28 19:10:45 +08:00
2026-09-26 01:12:54 +08:00
2026-09-26 19:04:36 +08:00
2026-09-27 10:53:48 +08:00
2026-09-27 07:45:49 +08:00
2026-09-27 09:30:52 +08:00
2026-09-27 10:05:20 +08:00
2026-09-26 14:37:58 +08:00
2026-09-26 00:34:11 +08:00
2026-09-27 11:00:50 +08:00
2026-09-26 14:37:58 +08:00
2026-09-27 09:42:07 +08:00
2026-09-26 18:53:47 +08:00
2026-09-27 09:03:05 +08:00
2026-09-27 07:41:16 +08:00
2026-09-26 11:52:06 +08:00
2026-09-26 13:54:44 +08:00
2026-09-26 18:53:40 +08:00
2026-09-26 19:25:06 +08:00