增加大小防止文件过大,增加超时时长防炸
parent
81fa3aa4df
commit
991115814b
2
main.py
2
main.py
|
|
@ -52,7 +52,7 @@ async def main():
|
||||||
|
|
||||||
async def napcat_server():
|
async def napcat_server():
|
||||||
logger.info("正在启动adapter...")
|
logger.info("正在启动adapter...")
|
||||||
async with Server.serve(message_recv, global_config.napcat_server.host, global_config.napcat_server.port) as server:
|
async with Server.serve(message_recv, global_config.napcat_server.host, global_config.napcat_server.port, max_size=2**26) as server:
|
||||||
logger.info(
|
logger.info(
|
||||||
f"Adapter已启动,监听地址: ws://{global_config.napcat_server.host}:{global_config.napcat_server.port}"
|
f"Adapter已启动,监听地址: ws://{global_config.napcat_server.host}:{global_config.napcat_server.port}"
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
[project]
|
[project]
|
||||||
name = "MaiBotNapcatAdapter"
|
name = "MaiBotNapcatAdapter"
|
||||||
version = "0.4.6"
|
version = "0.4.7"
|
||||||
description = "A MaiBot adapter for Napcat"
|
description = "A MaiBot adapter for Napcat"
|
||||||
|
|
||||||
[tool.ruff]
|
[tool.ruff]
|
||||||
|
|
|
||||||
|
|
@ -8,19 +8,19 @@ response_dict: Dict = {}
|
||||||
response_time_dict: Dict = {}
|
response_time_dict: Dict = {}
|
||||||
|
|
||||||
|
|
||||||
async def get_response(request_id: str) -> dict:
|
async def get_response(request_id: str, timeout: int = 10) -> dict:
|
||||||
retry_count = 0
|
response = await asyncio.wait_for(_get_response(request_id), timeout)
|
||||||
max_retries = 50 # 10秒超时
|
|
||||||
while request_id not in response_dict:
|
|
||||||
retry_count += 1
|
|
||||||
if retry_count >= max_retries:
|
|
||||||
raise TimeoutError(f"请求超时,未收到响应,request_id: {request_id}")
|
|
||||||
await asyncio.sleep(0.2)
|
|
||||||
response = response_dict.pop(request_id)
|
|
||||||
_ = response_time_dict.pop(request_id)
|
_ = response_time_dict.pop(request_id)
|
||||||
logger.trace(f"响应信息id: {request_id} 已从响应字典中取出")
|
logger.trace(f"响应信息id: {request_id} 已从响应字典中取出")
|
||||||
return response
|
return response
|
||||||
|
|
||||||
|
async def _get_response(request_id: str) -> dict:
|
||||||
|
"""
|
||||||
|
内部使用的获取响应函数,主要用于在需要时获取响应
|
||||||
|
"""
|
||||||
|
while request_id not in response_dict:
|
||||||
|
await asyncio.sleep(0.2)
|
||||||
|
return response_dict.pop(request_id)
|
||||||
|
|
||||||
async def put_response(response: dict):
|
async def put_response(response: dict):
|
||||||
echo_id = response.get("echo")
|
echo_id = response.get("echo")
|
||||||
|
|
|
||||||
|
|
@ -208,7 +208,7 @@ async def get_message_detail(websocket: Server.ServerConnection, message_id: Uni
|
||||||
payload = json.dumps({"action": "get_msg", "params": {"message_id": message_id}, "echo": request_uuid})
|
payload = json.dumps({"action": "get_msg", "params": {"message_id": message_id}, "echo": request_uuid})
|
||||||
try:
|
try:
|
||||||
await websocket.send(payload)
|
await websocket.send(payload)
|
||||||
response: dict = await get_response(request_uuid)
|
response: dict = await get_response(request_uuid, 30) # 增加超时时间到30秒
|
||||||
except TimeoutError:
|
except TimeoutError:
|
||||||
logger.error(f"获取消息详情超时,消息ID: {message_id}")
|
logger.error(f"获取消息详情超时,消息ID: {message_id}")
|
||||||
return None
|
return None
|
||||||
|
|
@ -242,7 +242,7 @@ async def get_record_detail(
|
||||||
)
|
)
|
||||||
try:
|
try:
|
||||||
await websocket.send(payload)
|
await websocket.send(payload)
|
||||||
response: dict = await get_response(request_uuid)
|
response: dict = await get_response(request_uuid, 30) # 增加超时时间到30秒
|
||||||
except TimeoutError:
|
except TimeoutError:
|
||||||
logger.error(f"获取语音消息详情超时,文件: {file}, 文件ID: {file_id}")
|
logger.error(f"获取语音消息详情超时,文件: {file}, 文件ID: {file_id}")
|
||||||
return None
|
return None
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue