修复None异常和戳一戳异常
parent
ea8b7a978b
commit
e759c19974
2
main.py
2
main.py
|
|
@ -78,7 +78,7 @@ if __name__ == "__main__":
|
||||||
logger.warning("收到中断信号,正在优雅关闭...")
|
logger.warning("收到中断信号,正在优雅关闭...")
|
||||||
loop.run_until_complete(graceful_shutdown())
|
loop.run_until_complete(graceful_shutdown())
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"主程序异常: {str(e)}")
|
logger.exception(f"主程序异常: {str(e)}")
|
||||||
if loop and not loop.is_closed():
|
if loop and not loop.is_closed():
|
||||||
loop.run_until_complete(graceful_shutdown())
|
loop.run_until_complete(graceful_shutdown())
|
||||||
loop.close()
|
loop.close()
|
||||||
|
|
|
||||||
|
|
@ -80,7 +80,7 @@ class RecvHandler:
|
||||||
format_info: FormatInfo = FormatInfo(
|
format_info: FormatInfo = FormatInfo(
|
||||||
content_format=["text", "image", "emoji"],
|
content_format=["text", "image", "emoji"],
|
||||||
accept_format=["text", "image", "emoji", "reply"],
|
accept_format=["text", "image", "emoji", "reply"],
|
||||||
) # 格式化信息,暂时为空,等待启用
|
) # 格式化信息
|
||||||
if message_type == MessageType.private:
|
if message_type == MessageType.private:
|
||||||
sub_type = raw_message.get("sub_type")
|
sub_type = raw_message.get("sub_type")
|
||||||
if sub_type == MessageType.Private.friend:
|
if sub_type == MessageType.Private.friend:
|
||||||
|
|
@ -213,7 +213,7 @@ class RecvHandler:
|
||||||
seg_message: list[Seg]: 处理后的消息段列表
|
seg_message: list[Seg]: 处理后的消息段列表
|
||||||
"""
|
"""
|
||||||
real_message: list = raw_message.get("message")
|
real_message: list = raw_message.get("message")
|
||||||
if len(real_message) == 0:
|
if not real_message:
|
||||||
return None
|
return None
|
||||||
seg_message: List[Seg] = []
|
seg_message: List[Seg] = []
|
||||||
for sub_message in real_message:
|
for sub_message in real_message:
|
||||||
|
|
@ -232,7 +232,7 @@ class RecvHandler:
|
||||||
if not in_reply:
|
if not in_reply:
|
||||||
ret_seg = await self.handle_reply_message(sub_message)
|
ret_seg = await self.handle_reply_message(sub_message)
|
||||||
if ret_seg:
|
if ret_seg:
|
||||||
seg_message += ret_seg
|
seg_message.append(ret_seg)
|
||||||
else:
|
else:
|
||||||
logger.warning("reply处理失败")
|
logger.warning("reply处理失败")
|
||||||
else:
|
else:
|
||||||
|
|
@ -298,6 +298,9 @@ class RecvHandler:
|
||||||
else json.dumps(response)
|
else json.dumps(response)
|
||||||
)
|
)
|
||||||
messages = response.get("data").get("messages")
|
messages = response.get("data").get("messages")
|
||||||
|
if not messages:
|
||||||
|
logger.warning("转发消息内容为空或获取失败")
|
||||||
|
return None
|
||||||
ret_seg = await self.handle_forward_message(messages)
|
ret_seg = await self.handle_forward_message(messages)
|
||||||
if ret_seg:
|
if ret_seg:
|
||||||
seg_message.append(ret_seg)
|
seg_message.append(ret_seg)
|
||||||
|
|
@ -392,7 +395,11 @@ class RecvHandler:
|
||||||
处理回复消息
|
处理回复消息
|
||||||
|
|
||||||
"""
|
"""
|
||||||
message_id = raw_message.get("data").get("id")
|
raw_message_data: dict = raw_message.get("data")
|
||||||
|
if raw_message_data:
|
||||||
|
message_id = raw_message_data.get("id")
|
||||||
|
else:
|
||||||
|
return None
|
||||||
message_detail: dict = await get_message_detail(self.server_connection, message_id)
|
message_detail: dict = await get_message_detail(self.server_connection, message_id)
|
||||||
if not message_detail:
|
if not message_detail:
|
||||||
logger.warning("获取被引用的消息详情失败")
|
logger.warning("获取被引用的消息详情失败")
|
||||||
|
|
@ -419,8 +426,8 @@ class RecvHandler:
|
||||||
# message_time: int = raw_message.get("time")
|
# message_time: int = raw_message.get("time")
|
||||||
message_time: float = time.time() # 应可乐要求,现在是float了
|
message_time: float = time.time() # 应可乐要求,现在是float了
|
||||||
|
|
||||||
group_id = raw_message.get("group_id")
|
group_id = str(raw_message.get("group_id"))
|
||||||
user_id = raw_message.get("user_id")
|
user_id = str(raw_message.get("user_id"))
|
||||||
handled_message: Seg = None
|
handled_message: Seg = None
|
||||||
|
|
||||||
match notice_type:
|
match notice_type:
|
||||||
|
|
@ -441,6 +448,9 @@ class RecvHandler:
|
||||||
handled_message: Seg = await self.handle_poke_notify(raw_message)
|
handled_message: Seg = await self.handle_poke_notify(raw_message)
|
||||||
case _:
|
case _:
|
||||||
logger.warning("不支持的notify类型")
|
logger.warning("不支持的notify类型")
|
||||||
|
case _:
|
||||||
|
logger.warning("不支持的notice类型")
|
||||||
|
return None
|
||||||
if not handled_message:
|
if not handled_message:
|
||||||
logger.warning("notice处理失败或不支持")
|
logger.warning("notice处理失败或不支持")
|
||||||
return None
|
return None
|
||||||
|
|
@ -517,6 +527,8 @@ class RecvHandler:
|
||||||
else:
|
else:
|
||||||
logger.warning("无法获取bot的昵称,戳一戳消息可能无效")
|
logger.warning("无法获取bot的昵称,戳一戳消息可能无效")
|
||||||
target_name = "你"
|
target_name = "你"
|
||||||
|
else:
|
||||||
|
return None
|
||||||
try:
|
try:
|
||||||
first_txt = raw_info[2].get("text", "戳了戳")
|
first_txt = raw_info[2].get("text", "戳了戳")
|
||||||
second_txt = raw_info[4].get("text", "")
|
second_txt = raw_info[4].get("text", "")
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue