From bad6bcdd76d73eca328525380f516b6b986a068b Mon Sep 17 00:00:00 2001 From: qwerdvd <2450899274@qq.com> Date: Thu, 10 Aug 2023 22:55:58 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=9A=A8=E4=BF=AE=E5=A4=8D=E7=BB=91?= =?UTF-8?q?=E5=AE=9A=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ArknightsUID/arknightsuid_config/config_default.py | 1 - ArknightsUID/arknightsuid_user/deal_skd_cred.py | 11 ++++++++--- ArknightsUID/utils/api/skd/request.py | 5 +++-- ArknightsUID/utils/models/skland/models.py | 2 +- 4 files changed, 12 insertions(+), 7 deletions(-) diff --git a/ArknightsUID/arknightsuid_config/config_default.py b/ArknightsUID/arknightsuid_config/config_default.py index 5fbba64..08975ed 100644 --- a/ArknightsUID/arknightsuid_config/config_default.py +++ b/ArknightsUID/arknightsuid_config/config_default.py @@ -1,4 +1,3 @@ - from gsuid_core.utils.plugins_config.models import ( GSC, GsStrConfig, diff --git a/ArknightsUID/arknightsuid_user/deal_skd_cred.py b/ArknightsUID/arknightsuid_user/deal_skd_cred.py index 3e768d2..d0ea27f 100644 --- a/ArknightsUID/arknightsuid_user/deal_skd_cred.py +++ b/ArknightsUID/arknightsuid_user/deal_skd_cred.py @@ -1,7 +1,7 @@ from ..utils.ark_api import ark_skd_api from ..utils.database.models import ArknightsUser -ERROR_HINT = '添加失败,格式为:用户ID - Cred\n \ +ERROR_HINT = '添加失败,格式为:明日方舟UID - Cred\n \ 例如:1810461245 - VropL583Sb1hClS5buQ4nSASkDlL8tMT' @@ -11,11 +11,16 @@ async def deal_skd_cred(bot_id: str, cred: str, user_id: str) -> str: _ck = cred.replace(' ', '').split('-') if len(_ck) != 2 or not _ck[0] or not _ck[0].isdigit() or not _ck[1]: return ERROR_HINT + print(_ck) + print(_ck[0], _ck[1]) check_cred = await ark_skd_api.check_cred_valid(_ck[1]) - if check_cred: + print(check_cred) + if isinstance(check_cred, bool): return 'Cred无效!' + else: + skd_uid = check_cred.user.id_ uid, cred = _ck[0], _ck[1] await ArknightsUser.insert_data(user_id, bot_id, - Cred=cred, uid=uid, skd_uid=check_cred) + cred=cred, uid=uid, skd_uid=skd_uid) return '添加成功!' diff --git a/ArknightsUID/utils/api/skd/request.py b/ArknightsUID/utils/api/skd/request.py index 1a3d965..551db4d 100644 --- a/ArknightsUID/utils/api/skd/request.py +++ b/ArknightsUID/utils/api/skd/request.py @@ -1,6 +1,7 @@ from copy import deepcopy from typing import Any, Literal +import msgspec from aiohttp import ClientSession, ContentTypeError, TCPConnector from gsuid_core.logger import logger @@ -20,7 +21,7 @@ class BaseArkApi: AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36", } - async def check_cred_valid(self, Cred: str) -> bool | str: + async def check_cred_valid(self, Cred: str) -> bool | ArknightsUserMeModel: header = deepcopy(self._HEADER) header['Cred'] = Cred raw_data = await self._ark_request(ARK_USER_ME, header=header) @@ -28,7 +29,7 @@ class BaseArkApi: if isinstance(unpack_data, int): return False else: - return ArknightsUserMeModel(**unpack_data).user.id_ + return msgspec.convert(unpack_data, type=ArknightsUserMeModel) def unpack(self, raw_data: dict | int) -> dict | int: if isinstance(raw_data, dict): diff --git a/ArknightsUID/utils/models/skland/models.py b/ArknightsUID/utils/models/skland/models.py index 01731f5..ebe5e36 100644 --- a/ArknightsUID/utils/models/skland/models.py +++ b/ArknightsUID/utils/models/skland/models.py @@ -78,7 +78,7 @@ class UserMeInfo(Struct): birthday: str -class ArknightsUserMeModel(Struct): +class ArknightsUserMeModel(Struct, omit_defaults=True): user: UserMeInfo userRts: UserMeInfoRts userSanctionList: list[str]