mirror of
https://github.com/Genshin-bots/gsuid_core.git
synced 2025-05-09 05:25:48 +08:00
⚡ 在部分请求中使用httpx
替换aiohttp
This commit is contained in:
parent
cf2e874e7e
commit
bc93c66bc6
@ -21,6 +21,7 @@ from typing import (
|
|||||||
overload,
|
overload,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
import httpx
|
||||||
from aiohttp import TCPConnector, ClientSession, ContentTypeError
|
from aiohttp import TCPConnector, ClientSession, ContentTypeError
|
||||||
|
|
||||||
from gsuid_core.logger import logger
|
from gsuid_core.logger import logger
|
||||||
@ -387,9 +388,7 @@ class BaseMysApi:
|
|||||||
else:
|
else:
|
||||||
proxy = None
|
proxy = None
|
||||||
|
|
||||||
async with ClientSession(
|
async with httpx.AsyncClient(verify=ssl_verify, proxy=proxy) as client:
|
||||||
connector=TCPConnector(verify_ssl=ssl_verify)
|
|
||||||
) as client:
|
|
||||||
raw_data = {}
|
raw_data = {}
|
||||||
uid = None
|
uid = None
|
||||||
if params and 'role_id' in params:
|
if params and 'role_id' in params:
|
||||||
@ -417,74 +416,73 @@ class BaseMysApi:
|
|||||||
|
|
||||||
logger.debug(header)
|
logger.debug(header)
|
||||||
for _ in range(2):
|
for _ in range(2):
|
||||||
async with client.request(
|
resp = await client.request(
|
||||||
method,
|
method,
|
||||||
url=url,
|
url=url,
|
||||||
headers=header,
|
headers=header,
|
||||||
params=params,
|
params=params,
|
||||||
json=data,
|
json=data,
|
||||||
proxy=proxy,
|
|
||||||
timeout=300,
|
timeout=300,
|
||||||
) as resp:
|
)
|
||||||
try:
|
try:
|
||||||
raw_data = await resp.json()
|
raw_data = resp.json()
|
||||||
except ContentTypeError:
|
except ContentTypeError:
|
||||||
_raw_data = await resp.text()
|
_raw_data = resp.text
|
||||||
raw_data = {'retcode': -999, 'data': _raw_data}
|
raw_data = {'retcode': -999, 'data': _raw_data}
|
||||||
|
|
||||||
logger.debug(raw_data)
|
logger.debug(raw_data)
|
||||||
|
|
||||||
# 判断retcode
|
# 判断retcode
|
||||||
if 'retcode' in raw_data:
|
if 'retcode' in raw_data:
|
||||||
retcode: int = raw_data['retcode']
|
retcode: int = raw_data['retcode']
|
||||||
elif 'code' in raw_data:
|
elif 'code' in raw_data:
|
||||||
retcode: int = raw_data['code']
|
retcode: int = raw_data['code']
|
||||||
else:
|
else:
|
||||||
retcode = 0
|
retcode = 0
|
||||||
|
|
||||||
# 针对1034做特殊处理
|
# 针对1034做特殊处理
|
||||||
if retcode == 1034 or retcode == 5003:
|
if retcode == 1034 or retcode == 5003:
|
||||||
if uid:
|
if uid:
|
||||||
header['x-rpc-challenge_game'] = (
|
header['x-rpc-challenge_game'] = (
|
||||||
'6' if self.is_sr else '2'
|
'6' if self.is_sr else '2'
|
||||||
)
|
)
|
||||||
header['x-rpc-page'] = (
|
header['x-rpc-page'] = (
|
||||||
'v1.4.1-rpg_#/rpg'
|
'v1.4.1-rpg_#/rpg'
|
||||||
if self.is_sr
|
if self.is_sr
|
||||||
else 'v4.1.5-ys_#ys'
|
else 'v4.1.5-ys_#ys'
|
||||||
)
|
)
|
||||||
header['x-rpc-tool-verison'] = (
|
header['x-rpc-tool-verison'] = (
|
||||||
'v1.4.1-rpg' if self.is_sr else 'v4.1.5-ys'
|
'v1.4.1-rpg' if self.is_sr else 'v4.1.5-ys'
|
||||||
|
)
|
||||||
|
|
||||||
|
if core_plugins_config.get_config('MysPass').data:
|
||||||
|
pass_header = copy.deepcopy(header)
|
||||||
|
ch = await self._upass(pass_header)
|
||||||
|
if ch == '':
|
||||||
|
return 114514
|
||||||
|
else:
|
||||||
|
header['x-rpc-challenge'] = ch
|
||||||
|
|
||||||
|
if 'DS' in header:
|
||||||
|
if isinstance(params, Dict):
|
||||||
|
q = '&'.join(
|
||||||
|
[
|
||||||
|
f'{k}={v}'
|
||||||
|
for k, v in sorted(
|
||||||
|
params.items(),
|
||||||
|
key=lambda x: x[0],
|
||||||
|
)
|
||||||
|
]
|
||||||
)
|
)
|
||||||
|
else:
|
||||||
|
q = ''
|
||||||
|
header['DS'] = get_ds_token(q, data)
|
||||||
|
|
||||||
if core_plugins_config.get_config('MysPass').data:
|
logger.debug(header)
|
||||||
pass_header = copy.deepcopy(header)
|
elif retcode != 0:
|
||||||
ch = await self._upass(pass_header)
|
return retcode
|
||||||
if ch == '':
|
else:
|
||||||
return 114514
|
return raw_data
|
||||||
else:
|
|
||||||
header['x-rpc-challenge'] = ch
|
|
||||||
|
|
||||||
if 'DS' in header:
|
|
||||||
if isinstance(params, Dict):
|
|
||||||
q = '&'.join(
|
|
||||||
[
|
|
||||||
f'{k}={v}'
|
|
||||||
for k, v in sorted(
|
|
||||||
params.items(),
|
|
||||||
key=lambda x: x[0],
|
|
||||||
)
|
|
||||||
]
|
|
||||||
)
|
|
||||||
else:
|
|
||||||
q = ''
|
|
||||||
header['DS'] = get_ds_token(q, data)
|
|
||||||
|
|
||||||
logger.debug(header)
|
|
||||||
elif retcode != 0:
|
|
||||||
return retcode
|
|
||||||
else:
|
|
||||||
return raw_data
|
|
||||||
else:
|
else:
|
||||||
return -999
|
return -999
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user