diff --git a/ArknightsUID/arknightsuid_user/deal_skd_cred.py b/ArknightsUID/arknightsuid_user/deal_skd_cred.py index 91f979b..7f50ed4 100644 --- a/ArknightsUID/arknightsuid_user/deal_skd_cred.py +++ b/ArknightsUID/arknightsuid_user/deal_skd_cred.py @@ -1,23 +1,24 @@ from ..utils.ark_api import ark_skd_api -from ..utils.database.models import ArknightsUser +from ..utils.database.models import ArknightsBind, ArknightsUser -ERROR_HINT = '添加失败,格式为:明日方舟UID - Cred\n \ - 例如:1810461245 - VropL583Sb1hClS5buQ4nSASkDlL8tMT' +ERROR_HINT = '添加失败,格式为: skd添加cred Cred 例如: skd添加cred VropL583Sb1hClS5buQ4nSASkDlL8tMT' +UID_HINT = '添加失败, 请先绑定明日方舟UID' async def deal_skd_cred(bot_id: str, cred: str, user_id: str) -> str: - if '-' not in cred: - return ERROR_HINT - _ck = cred.replace(' ', '').split('-') - if len(_ck) != 2 or not _ck[0] or not _ck[0].isdigit() or not _ck[1]: - return ERROR_HINT + uid_list = await ArknightsBind.get_uid_list_by_game(user_id, bot_id) + if uid_list is None: + return UID_HINT + + check_cred = await ark_skd_api.check_cred_valid(cred) - check_cred = await ark_skd_api.check_cred_valid(_ck[1]) if isinstance(check_cred, bool): return 'Cred无效!' else: skd_uid = check_cred.user.id_ - uid, cred = _ck[0], _ck[1] + uid = check_cred.gameStatus.uid + if uid not in uid_list: + return '该uid并未绑定' await ArknightsUser.insert_data(user_id, bot_id, 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 bcdd8e6..fb29d6f 100644 --- a/ArknightsUID/utils/api/skd/request.py +++ b/ArknightsUID/utils/api/skd/request.py @@ -40,9 +40,6 @@ class BaseArkApi: if isinstance(unpack_data, int): return unpack_data else: - import json - with open('test.json', 'w', encoding='utf-8') as f: - json.dump(unpack_data, f, ensure_ascii=False, indent=4) return msgspec.convert(unpack_data, type=ArknightsPlayerInfoModel) async def check_cred_valid(self, Cred: str) -> bool | ArknightsUserMeModel: @@ -83,7 +80,6 @@ class BaseArkApi: arkUser = await ArknightsUser.base_select_data(Cred=Cred) if arkUser is None: return -61 - print(Cred) header['Cred'] = Cred async with ClientSession(