mirror of
https://github.com/baiqwerdvd/StarRailUID.git
synced 2025-05-06 03:33:45 +08:00
🐛删除fp相关处理 (#44)
* core已修复验证码问题,删除相关处理
* 🚨 `pre-commit-ci`修复格式错误
* core已修复验证码问题,删除相关处理
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
This commit is contained in:
parent
07c1e81eae
commit
af347e12aa
@ -1,19 +1,12 @@
|
|||||||
import copy
|
import copy
|
||||||
import time
|
import time
|
||||||
import uuid
|
|
||||||
import random
|
import random
|
||||||
import asyncio
|
|
||||||
from string import digits, ascii_letters
|
from string import digits, ascii_letters
|
||||||
from typing import Dict, Union, Optional, cast
|
from typing import Dict, Union, Optional, cast
|
||||||
|
|
||||||
from gsuid_core.logger import logger
|
|
||||||
from gsuid_core.utils.api.mys_api import _MysApi
|
from gsuid_core.utils.api.mys_api import _MysApi
|
||||||
from gsuid_core.utils.api.mys.models import MysSign, SignInfo, SignList
|
from gsuid_core.utils.api.mys.models import MysSign, SignInfo, SignList
|
||||||
from gsuid_core.utils.api.mys.tools import (
|
from gsuid_core.utils.api.mys.tools import generate_os_ds, get_web_ds_token
|
||||||
random_hex,
|
|
||||||
generate_os_ds,
|
|
||||||
get_web_ds_token,
|
|
||||||
)
|
|
||||||
|
|
||||||
from .api import srdbsqla
|
from .api import srdbsqla
|
||||||
from ..sruid_utils.api.mys.api import _API
|
from ..sruid_utils.api.mys.api import _API
|
||||||
@ -39,22 +32,8 @@ RECOGNIZE_SERVER = {
|
|||||||
|
|
||||||
|
|
||||||
class MysApi(_MysApi):
|
class MysApi(_MysApi):
|
||||||
device_id = uuid.uuid4().hex
|
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
super().__init__(*args, **kwargs)
|
super().__init__(*args, **kwargs)
|
||||||
self._HEADER = copy.deepcopy(self._HEADER)
|
|
||||||
loop = asyncio.new_event_loop()
|
|
||||||
asyncio.set_event_loop(loop)
|
|
||||||
try:
|
|
||||||
device_fp = loop.run_until_complete(self.get_fp())
|
|
||||||
self._HEADER['x-rpc-device_fp'] = device_fp
|
|
||||||
finally:
|
|
||||||
loop.run_until_complete(loop.shutdown_asyncgens())
|
|
||||||
loop.close()
|
|
||||||
self._HEADER['x-rpc-device_id'] = self.device_id
|
|
||||||
self._HEADER['x-rpc-page'] = '3.1.3_#/rpg'
|
|
||||||
self._HEADER['x-rpc-challenge_game'] = '6'
|
|
||||||
|
|
||||||
async def create_qrcode_url(self) -> Union[Dict, int]:
|
async def create_qrcode_url(self) -> Union[Dict, int]:
|
||||||
device_id: str = ''.join(random.choices(ascii_letters + digits, k=64))
|
device_id: str = ''.join(random.choices(ascii_letters + digits, k=64))
|
||||||
@ -293,47 +272,6 @@ class MysApi(_MysApi):
|
|||||||
data = cast(RoleBasicInfo, data['data'])
|
data = cast(RoleBasicInfo, data['data'])
|
||||||
return data
|
return data
|
||||||
|
|
||||||
def generate_seed(self, length: int):
|
|
||||||
characters = '0123456789abcdef'
|
|
||||||
result = ''.join(random.choices(characters, k=length))
|
|
||||||
return result
|
|
||||||
|
|
||||||
async def get_fp(self):
|
|
||||||
seed_id = self.generate_seed(16)
|
|
||||||
seed_time = str(int(time.time() * 1000))
|
|
||||||
ext_fields = f'{{"userAgent":"{self._HEADER["User-Agent"]}",\
|
|
||||||
"browserScreenSize":281520,"maxTouchPoints":5,\
|
|
||||||
"isTouchSupported":true,"browserLanguage":"zh-CN","browserPlat":"iPhone",\
|
|
||||||
"browserTimeZone":"Asia/Shanghai","webGlRender":"Apple GPU",\
|
|
||||||
"webGlVendor":"Apple Inc.",\
|
|
||||||
"numOfPlugins":0,"listOfPlugins":"unknown","screenRatio":3,"deviceMemory":"unknown",\
|
|
||||||
"hardwareConcurrency":"4","cpuClass":"unknown","ifNotTrack":"unknown","ifAdBlock":0,\
|
|
||||||
"hasLiedResolution":1,"hasLiedOs":0,"hasLiedBrowser":0}}'
|
|
||||||
body = {
|
|
||||||
'seed_id': seed_id,
|
|
||||||
'device_id': self.device_id,
|
|
||||||
'platform': '5',
|
|
||||||
'seed_time': seed_time,
|
|
||||||
'ext_fields': ext_fields,
|
|
||||||
'app_name': 'account_cn',
|
|
||||||
'device_fp': '38d7ee834d1e9',
|
|
||||||
}
|
|
||||||
HEADER = copy.deepcopy(self._HEADER)
|
|
||||||
res = await self._mys_request(
|
|
||||||
url=_API['GET_FP_URL'],
|
|
||||||
method='POST',
|
|
||||||
header=HEADER,
|
|
||||||
data=body,
|
|
||||||
)
|
|
||||||
if not isinstance(res, Dict):
|
|
||||||
logger.error(f"获取fp连接失败{res}")
|
|
||||||
return random_hex(13).lower()
|
|
||||||
elif res["data"]["code"] != 200:
|
|
||||||
logger.error(f"获取fp参数不正确{res['data']['msg']}")
|
|
||||||
return random_hex(13).lower()
|
|
||||||
else:
|
|
||||||
return res["data"]["device_fp"]
|
|
||||||
|
|
||||||
|
|
||||||
mys_api = MysApi()
|
mys_api = MysApi()
|
||||||
mys_api.dbsqla = srdbsqla
|
mys_api.dbsqla = srdbsqla
|
||||||
|
Loading…
x
Reference in New Issue
Block a user