From 9541350493c777ddbb4f14c09a30c05fa09e107a Mon Sep 17 00:00:00 2001 From: KimigaiiWuyi <444835641@qq.com> Date: Sat, 23 Sep 2023 00:57:59 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20=E9=87=8D=E5=86=99`MysApi`?= =?UTF-8?q?=E7=B1=BB=E6=96=B9=E6=B3=95=E4=B8=AD=E8=8E=B7=E5=8F=96CK?= =?UTF-8?q?=E7=9A=84=E9=83=A8=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- StarRailUID/utils/mys_api.py | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/StarRailUID/utils/mys_api.py b/StarRailUID/utils/mys_api.py index 7da475c..4a80329 100644 --- a/StarRailUID/utils/mys_api.py +++ b/StarRailUID/utils/mys_api.py @@ -2,9 +2,10 @@ import copy import time import random from string import digits, ascii_letters -from typing import Any, Dict, Union, Optional, cast +from typing import Any, Dict, Union, Literal, Optional, cast from gsuid_core.utils.api.mys_api import _MysApi +from gsuid_core.utils.database.models import GsUser from gsuid_core.utils.api.mys.models import MysSign, SignInfo, SignList from gsuid_core.utils.api.mys.tools import ( _random_int_ds, @@ -50,6 +51,33 @@ class MysApi(_MysApi): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) + async def get_ck( + self, uid: str, mode: Literal['OWNER', 'RANDOM'] = 'RANDOM' + ) -> Optional[str]: + if mode == 'RANDOM': + return await GsUser.get_random_cookie(uid, game_name='sr') + else: + return await GsUser.get_user_cookie_by_uid(uid, game_name='sr') + + async def get_stoken(self, uid: str) -> Optional[str]: + return await GsUser.get_user_stoken_by_uid(uid, 'sr') + + async def get_user_fp(self, uid: str) -> Optional[str]: + data = await GsUser.get_user_attr_by_uid(uid, 'fp', 'sr') + if data is None: + data = await self.generate_fp_by_uid(uid) + await GsUser.update_data_by_uid_without_bot_id(uid, 'sr', fp=data) + return data + + async def get_user_device_id(self, uid: str) -> Optional[str]: + data = await GsUser.get_user_attr_by_uid(uid, 'device_id', 'sr') + if data is None: + data = self.get_device_id() + await GsUser.update_data_by_uid_without_bot_id( + uid, 'sr', device_id=data + ) + return data + def check_os(self, uid: str) -> bool: return False if int(str(uid)[0]) < 6 else True