mirror of
https://github.com/cqwu-ehall/cqwu-ehall.git
synced 2024-11-25 11:46:46 +00:00
60c32861ea
Co-authored-by: brian <brian@xtaolabs.com>
35 lines
1.2 KiB
Python
35 lines
1.2 KiB
Python
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
|