mirror of
https://github.com/NanmiCoder/MediaCrawler.git
synced 2026-09-20 03:17:55 +08:00
check_login_state 原先只判断 SESSDATA 是否存在。过期会话的 SESSDATA 会一直 留在浏览器里,于是 pong 报"账号未登录"后进入的登录流程会被立刻判成成功: 既不等待扫码,又把这份死 cookie 灌给 API client。 后果是隐蔽的:详情和评论两个接口不要求登录,照常爬到;而 playurl 依据 Cookie 决定清晰度,未登录状态会静默封顶在 480P,不报任何错。 - login.py: 抽出 is_login_cookie_refreshed(),要求 SESSDATA 被扫码换发成新值 才算登录成功;进入登录流程前记录旧值,残留死 cookie 时输出告警 - core.py: 登录流程结束后补一次 pong 校验,仍失败则明确报错退出, 不再带着未登录状态跑完全程 - 新增 tests/test_bilibili_login_state.py 覆盖上述分支