cqwu-ehall/cqwu/methods/auth/check_captcha.py

35 lines
1.2 KiB
Python
Raw Normal View History

import time
import cqwu
from cqwu.errors.auth import NeedCaptchaError
class CheckCaptcha:
async def check_captcha(
self: "cqwu.Client",
username: int = None,
show_qrcode: bool = True,
):
""" 检查是否需要验证码 """
username = username or self.username
params = {
"username": username,
"pwdEncrypt2": "pwdEncryptSalt",
"_": str(round(time.time() * 1000))
}
url = f"{self.auth_host}/authserver/needCaptcha.html"
captcha_html = await self.request.get(url, params=params, follow_redirects=False)
if captcha_html.text == 'true':
params = {
"ts": str(round(time.time()))
}
captcha_url = f"{self.auth_host}/authserver/captcha.html"
res = await self.request.get(captcha_url, params=params, follow_redirects=False)
if not show_qrcode:
raise NeedCaptchaError(res.content)
with open("captcha.jpg", mode="wb") as f:
f.write(res.content)
print("验证码已保存在当前目录下的 captcha.jpg 文件中。")
return self.get_input("验证码")
return False