mirror of
https://github.com/cqwu-ehall/cqwu-ehall.git
synced 2024-11-22 11:01:20 +00:00
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
|