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