From 8b5341211121ec515993f164d4a51f887c529779 Mon Sep 17 00:00:00 2001 From: Womsxd <45663319+Womsxd@users.noreply.github.com> Date: Wed, 12 Oct 2022 21:54:30 +0800 Subject: [PATCH] =?UTF-8?q?bbs=E7=AD=BE=E5=88=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mihoyobbs.py | 36 ++++++++++++++++++++++++++---------- 1 file changed, 26 insertions(+), 10 deletions(-) diff --git a/mihoyobbs.py b/mihoyobbs.py index ec321ea..0ba8cbe 100644 --- a/mihoyobbs.py +++ b/mihoyobbs.py @@ -142,17 +142,33 @@ class Mihoyobbs: log.info("正在签到......") header = {} header.update(self.headers) + challenge = None for i in setting.mihoyobbs_List_Use: - header["DS"] = tools.get_ds2("", json.dumps({"gids": i["id"]})) - req = http.post(url=setting.bbs_Sign_url, json={"gids": i["id"]}, headers=header) - data = req.json() - if "err" not in data["message"]: - log.info(str(i["name"] + data["message"])) - time.sleep(random.randint(2, 8)) - else: - log.error("签到失败,你的cookie可能已过期,请重新设置cookie。") - config.clear_cookies() - raise CookieError('Cookie expires') + challenge = None + check_pass = False + for i2 in range(2): + if check_pass: + continue + header["DS"] = tools.get_ds2("", json.dumps({"gids": i["id"]})) + req = http.post(url=setting.bbs_Sign_url, json={"gids": i["id"]}, headers=header) + data = req.json() + if data["retcode"] == 1034: + log.warning("社区签到触发验证码") + challenge = self.get_pass_challenge() + if challenge is not None: + header["x-rpc-challenge"] = challenge + elif "err" not in data["message"] and data["retcode"] == 0: + log.info(str(i["name"] + data["message"])) + check_pass = True + if challenge is not None: + challenge = None + header.pop("x-rpc-challenge") + time.sleep(random.randint(2, 8)) + + else: + log.error("签到失败,你的cookie可能已过期,请重新设置cookie。") + config.clear_cookies() + raise CookieError('Cookie expires') # 看帖子 def read_posts(self):