From 548fc8a2a500fd954f2dbcd46cfbab3d01460e04 Mon Sep 17 00:00:00 2001 From: KimigaiiWuyi <444835641@qq.com> Date: Sun, 12 Nov 2023 00:06:50 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=A8=20=E5=AE=8C=E5=96=84=E7=BB=91?= =?UTF-8?q?=E5=AE=9A=E6=B5=81=E7=A8=8B,=20=E4=BF=AE=E5=A4=8D`=E5=88=B7?= =?UTF-8?q?=E6=96=B0ck`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core_command/user_login/__init__.py | 2 +- gsuid_core/utils/api/mys/request.py | 26 ++++++++++++++----- gsuid_core/utils/cookie_manager/add_ck.py | 4 +-- gsuid_core/utils/database/base_models.py | 2 +- 4 files changed, 23 insertions(+), 11 deletions(-) diff --git a/gsuid_core/plugins/core_command/user_login/__init__.py b/gsuid_core/plugins/core_command/user_login/__init__.py index 98679d9..841173d 100644 --- a/gsuid_core/plugins/core_command/user_login/__init__.py +++ b/gsuid_core/plugins/core_command/user_login/__init__.py @@ -78,6 +78,6 @@ async def send_add_device_msg(bot: Bot, ev: Event): for user in user_list: if user.cookie: await mys_api.device_login_and_save( - device_id, fp, data['deviceModel'], user.cookie + device_id, fp, data['deviceFingerprint'], user.cookie ) await bot.send('设备绑定成功!') diff --git a/gsuid_core/utils/api/mys/request.py b/gsuid_core/utils/api/mys/request.py index 9625305..c463002 100644 --- a/gsuid_core/utils/api/mys/request.py +++ b/gsuid_core/utils/api/mys/request.py @@ -215,12 +215,14 @@ class BaseMysApi: return res["data"]["device_fp"] async def device_login_and_save( - self, device_id: str, device_fp: str, model_name: str, cookie: str + self, device_id: str, device_fp: str, device_info: str, cookie: str ): + info = device_info.split('/') + brand, model_name = info[0], info[1] body = { "app_version": self.mysVersion, "device_id": device_id, - "device_name": f"{model_name}", + "device_name": f"{brand}{model_name}", "os_version": "33", "platform": "Android", "registration_id": self.generate_seed(19), @@ -229,10 +231,13 @@ class BaseMysApi: HEADER = copy.deepcopy(self._HEADER) HEADER['x-rpc-device_id'] = device_id HEADER['x-rpc-device_fp'] = device_fp - HEADER['x-rpc-device_name'] = f"{model_name}" + HEADER['x-rpc-device_name'] = f"{brand} {model_name}" HEADER['x-rpc-device_model'] = model_name + HEADER['x-rpc-csm_source'] = 'myself' + HEADER['Referer'] = 'https://app.mihoyo.com' + HEADER['Host'] = 'bbs-api.miyoushe.com' HEADER['DS'] = generate_passport_ds('', body) - HEADER['cookie'] = cookie + HEADER['Cookie'] = cookie await self._mys_request( url=self.MAPI['DEVICE_LOGIN'], @@ -341,15 +346,22 @@ class BaseMysApi: async def ck_in_new_device( self, uid: str, app_cookie: Optional[str] = None ): + data = await GsUser.base_select_data(stoken=app_cookie) device_id = self.get_device_id() seed_id, seed_time = self.get_seed() - model_name = self.generate_model_name() - fp = await self.generate_fake_fp(device_id, seed_id, seed_time) + if data and data.device_info: + fp = data.fp + device_info = data.device_info + else: + fp = await self.generate_fake_fp(device_id, seed_id, seed_time) + device_info = 'OnePlus/PHK110/OP2020L1' if app_cookie is None: app_cookie = await self.get_stoken(uid) if app_cookie is None: return logger.warning('设备登录流程错误...') - await self.device_login_and_save(device_id, fp, model_name, app_cookie) + await self.device_login_and_save( + device_id, fp, device_info, app_cookie + ) if await GsUser.user_exists(uid, 'sr' if self.is_sr else None): await GsUser.update_data_by_uid_without_bot_id( uid, 'sr' if self.is_sr else None, fp=fp, device_id=device_id diff --git a/gsuid_core/utils/cookie_manager/add_ck.py b/gsuid_core/utils/cookie_manager/add_ck.py index 2d37e16..7b6c18b 100644 --- a/gsuid_core/utils/cookie_manager/add_ck.py +++ b/gsuid_core/utils/cookie_manager/add_ck.py @@ -57,6 +57,8 @@ async def refresh_ck_by_uid_list(bot_id: str, uid_dict: Dict): error_num = 0 for uid in uid_dict: stoken = await GsUser.get_user_stoken_by_uid(uid) + # account_id = await GsUser.get_user_attr_by_uid(uid, 'mys_id') + # _stoken = f'{stoken};account_id={account_id}' if stoken is None: skip_num += 1 error_num += 1 @@ -264,7 +266,6 @@ async def _deal_ck(bot_id: str, mes: str, user_id: str) -> str: wd_uid=wd_uid_bind, fp=nd[0], device_id=nd[1], - OAID=None, ) else: await GsUser.insert_data( @@ -291,7 +292,6 @@ async def _deal_ck(bot_id: str, mes: str, user_id: str) -> str: device_id=nd[1], sr_push_switch='off', sr_sign_switch='off', - OAID=None, ) im_list.append( diff --git a/gsuid_core/utils/database/base_models.py b/gsuid_core/utils/database/base_models.py index 4f80559..547cdb7 100644 --- a/gsuid_core/utils/database/base_models.py +++ b/gsuid_core/utils/database/base_models.py @@ -107,7 +107,7 @@ class BaseIDModel(SQLModel): 🌱参数: 🔹`**data` - 插入的数据, 入参列名等于数据即可 + 选择的数据, 入参列名等于数据即可 🚀使用范例: