From 4cd8eda0437a4b5de8d5ea327508bae13ef533e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B4=9B=E6=B0=B4=E5=B1=85=E5=AE=A4?= Date: Tue, 14 Mar 2023 22:03:21 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=A8=20Delete=20the=20`login=5Fticket`?= =?UTF-8?q?=20after=20use?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- plugins/account/cookies.py | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/plugins/account/cookies.py b/plugins/account/cookies.py index 7a4e36d4..550a53d5 100644 --- a/plugins/account/cookies.py +++ b/plugins/account/cookies.py @@ -1,4 +1,3 @@ -import contextlib from datetime import datetime from typing import Dict, Optional @@ -265,16 +264,22 @@ class AccountCookiesPlugin(Plugin.Conversation): logger.debug("用户 %s[%s] Cookies错误", user.full_name, user.id, exc_info=exc) await message.reply_text("Cookies错误,请检查是否正确", reply_markup=ReplyKeyboardRemove()) return ConversationHandler.END - with contextlib.suppress(Exception): - if cookies.login_ticket is not None: - auth_client = AuthClient(cookies=cookies) - if await auth_client.get_stoken_by_login_ticket(): - logger.success("用户 %s[%s] 绑定时获取 stoken 成功", user.full_name, user.id) - if await auth_client.get_cookie_token_by_stoken(): - logger.success("用户 %s[%s] 绑定时获取 cookie_token 成功", user.full_name, user.id) - if await auth_client.get_ltoken_by_stoken(): - logger.success("用户 %s[%s] 绑定时获取 ltoken 成功", user.full_name, user.id) - auth_client.cookies.remove_v2() + if cookies.login_ticket is not None: + try: + if cookies.login_ticket is not None: + auth_client = AuthClient(cookies=cookies) + if await auth_client.get_stoken_by_login_ticket(): + logger.success("用户 %s[%s] 绑定时获取 stoken 成功", user.full_name, user.id) + if await auth_client.get_cookie_token_by_stoken(): + logger.success("用户 %s[%s] 绑定时获取 cookie_token 成功", user.full_name, user.id) + if await auth_client.get_ltoken_by_stoken(): + logger.success("用户 %s[%s] 绑定时获取 ltoken 成功", user.full_name, user.id) + auth_client.cookies.remove_v2() + except Exception as exc: # pylint: disable=W0703 + logger.error("绑定时获取新Cookie失败 [%s]", (str(exc))) + finally: + cookies.login_ticket = None + cookies.login_uid = None genshin_account: Optional[GenshinAccount] = None level: int = 0 # todo : 多账号绑定