1. 从.gitignore移除config.example.toml并新增该示例配置文件 2. 新增项目规则文档说明开发环境要求 3. 修复config加载时的编码缺失问题 4. 重写bili_login.py,优化扫码登录流程与凭证输出 5. 重构B站解析器:简化下载逻辑,改用bilibili_api内置下载,优化音视频合并流程
40 lines
1.1 KiB
Python
40 lines
1.1 KiB
Python
import asyncio
|
|
from bilibili_api import login_v2
|
|
|
|
|
|
async def main():
|
|
print("请使用 Bilibili 手机 App 扫描二维码登录")
|
|
print("=" * 40)
|
|
|
|
qr = login_v2.QrCodeLogin()
|
|
|
|
await qr.generate_qrcode()
|
|
|
|
print(qr.get_qrcode_terminal())
|
|
print("=" * 40)
|
|
print("等待扫码...")
|
|
|
|
while True:
|
|
state = await qr.check_state()
|
|
if state == login_v2.QrCodeLoginEvents.DONE:
|
|
print("登录成功!")
|
|
break
|
|
elif state == login_v2.QrCodeLoginEvents.SCAN:
|
|
print("已扫描,请确认登录...")
|
|
elif state == login_v2.QrCodeLoginEvents.TIMEOUT:
|
|
print("二维码已过期,请重新运行")
|
|
return
|
|
await asyncio.sleep(1)
|
|
|
|
credential = qr.get_credential()
|
|
print()
|
|
print("请将以下凭证添加到 config.toml 的 [bilibili] 配置块中:")
|
|
print(f'sessdata = "{credential.sessdata}"')
|
|
print(f'bili_jct = "{credential.bili_jct}"')
|
|
print(f'buvid3 = "{credential.buvid3 if credential.buvid3 else ""}"')
|
|
print(f'dedeuserid = "{credential.dedeuserid}"')
|
|
|
|
|
|
if __name__ == '__main__':
|
|
asyncio.run(main())
|