VermiIIi0n / fuckZHS

自动刷智慧树课程的脚本
MIT License
680 stars 81 forks source link

[BUG]智慧树扫码登录,二维码在控制台输出有误 #56

Closed LacLic closed 1 year ago

LacLic commented 1 year ago

描述问题 智慧树扫码登录,二维码在控制台输出有误

如何复现 您遇到问题前进行了什么操作: 在文件目录下,执行命令 python ./main.py

截图 3.png

您的操作系统和所使用的本代码版本

目前的解决方案

main.py 119-125lines

line 121 改为 -> callback = partial(showImage, show_in_terminal=True, ensure_unicode=True)

try:
    if qrlogin:
        callback = partial(showImage, show_in_terminal=True, ensure_unicode=True)
        fucker.login(use_qr=True, qr_callback=callback)
    else:
         fucker.login(username, password)
    print("Login Successful\n")

怀疑是解析方式错了,改成 unicode 输出二维码就解决了

还有个sb事情,智慧树app只能扫白底黑字的二维码……反过来不行…

VermiIIi0n commented 1 year ago

其实配置文件里就可以改来着, 不必改源码. 你也可以试试改成直接显示图片, 不过 Windows 上有概率导致整个进程卡死, 别问我为什么这么基础的功能会有这种 bug, 问就是换 *unix 保平安.

既然 unicode 可以正常输出那就不是图片解析的问题了, 而且因为原图是 jpeg, 所以这种缺失也不会是图片下载出错. 大概率终端抽风, 改个窗口尺寸看看?

二维码是这样的...不知道他 Android 端调的什么山寨识别接口, iOS 端上倒是两种情况都没问题的.

LacLic commented 1 year ago

终端抽风的话,试了 PowerShell 和 cmd 还有 git bash,后二者直接显示乱码,最前者就是上面那样,应该是默认设置的问题,审计了下代码,应该就只是因为 ensure_unicode 参数大概是默认 False 的,win 环境下不知道是哪里不同,手动改成 True 就可以了。

另外好像定时会要求验证码,电脑端上线做一下验证,然后继续运行程序就好了…挂了一晚上刚刷完课

VermiIIi0n commented 1 year ago

后两个不支持这种富文本的。我刚在 Windows 上测试了,Windows Terminal 搭配 Nerd Fonts 应该是效果最好的。

验证的那个别一次刷太久就行,这些问题在常见问题或多或少提到了。

图片 ![2023-03-26 (1)](https://user-images.githubusercontent.com/104612478/227736281-7f2a13fa-23e9-4014-9dc8-4b26135e4338.png)