feat(routes): 迁移管理员扫码/Cookie/操作记录端点

- web/routers/admin.py:admin/qr/create、admin/qr/check、admin/cookie/status、
  admin/cookie/delete、admin/logs
- 管理员闸用本地实现,文案与「无 error_code」包体与 Flask _verify_admin_password
  逐字对齐(与 auth_system.admin_required 的 forbidden 字段不同)
- QRLoginManager await;文件类操作(save_cookie/logout/_get_cookie_info) 走 to_thread
- Cookie 变更后同步清 VIP 与全局 MUSIC_U 缓存

契约奇偶校验:36 项全 OK(新增 admin:logs、admin:cookie_status、非管理员 403);
ruff All checks passed;pyright 0 errors;冒烟 10/10。
This commit is contained in:
snowy-yang committed 2026-09-26 09:59:04 +08:00
1 parent b7616e9831
commit 22f4d77abd
3 files changed
+207 -1

No files matched your search

+1 -1
View File
@@ -122,7 +122,7 @@ async def user_qr_create(request: Request):
def _render_svg(key: str) -> str:
import qrcode
from qrcode.image.svg import SvgPathImage
qr = qrcode.QRCode(error_correction=qrcode.constants.ERROR_CORRECT_M)
qr = qrcode.QRCode(error_correction=qrcode.constants.ERROR_CORRECT_M) # type: ignore[attr-defined]
qr.add_data(f'https://music.163.com/login?codekey={key}')
qr.make(fit=True)
svg = qr.make_image(image_factory=SvgPathImage).to_string()