给所有转发统一加上了标题

pull/69/head
SengokuCola 2025-10-05 17:31:31 +08:00
parent 424ca5b473
commit 0d7733734c
1 changed files with 15 additions and 17 deletions

View File

@ -560,6 +560,8 @@ class MessageHandler:
image_count = 0 image_count = 0
if message_list is None: if message_list is None:
return None, 0 return None, 0
# 统一在最前加入【转发消息】标识(带层级缩进)
seg_list.append(Seg(type="text", data=("--" * layer) + "\n【转发消息】\n"))
for sub_message in message_list: for sub_message in message_list:
sub_message: dict sub_message: dict
sender_info: dict = sub_message.get("sender") sender_info: dict = sub_message.get("sender")
@ -572,23 +574,17 @@ class MessageHandler:
continue continue
message_of_sub_message = message_of_sub_message_list[0] message_of_sub_message = message_of_sub_message_list[0]
if message_of_sub_message.get("type") == RealMessageType.forward: if message_of_sub_message.get("type") == RealMessageType.forward:
if layer >= 3: sub_message_data = message_of_sub_message.get("data")
full_seg_data = Seg( if not sub_message_data:
type="text", continue
data=("--" * layer) + f"{user_nickname}】:【转发消息】\n", contents = sub_message_data.get("content")
) seg_data, count = await self._handle_forward_message(contents, layer + 1)
else: image_count += count
sub_message_data = message_of_sub_message.get("data") head_tip = Seg(
if not sub_message_data: type="text",
continue data=("--" * layer) + f"{user_nickname}】: 合并转发消息内容:\n",
contents = sub_message_data.get("content") )
seg_data, count = await self._handle_forward_message(contents, layer + 1) full_seg_data = Seg(type="seglist", data=[head_tip, seg_data])
image_count += count
head_tip = Seg(
type="text",
data=("--" * layer) + f"{user_nickname}】: 合并转发消息内容:\n",
)
full_seg_data = Seg(type="seglist", data=[head_tip, seg_data])
seg_list.append(full_seg_data) seg_list.append(full_seg_data)
elif message_of_sub_message.get("type") == RealMessageType.text: elif message_of_sub_message.get("type") == RealMessageType.text:
sub_message_data = message_of_sub_message.get("data") sub_message_data = message_of_sub_message.get("data")
@ -634,6 +630,8 @@ class MessageHandler:
] ]
full_seg_data = Seg(type="seglist", data=data_list) full_seg_data = Seg(type="seglist", data=data_list)
seg_list.append(full_seg_data) seg_list.append(full_seg_data)
# 在结尾追加标识
seg_list.append(Seg(type="text", data=("--" * layer) + "【转发消息结束】"))
return Seg(type="seglist", data=seg_list), image_count return Seg(type="seglist", data=seg_list), image_count
async def _get_forward_message(self, raw_message: dict) -> Dict[str, Any] | None: async def _get_forward_message(self, raw_message: dict) -> Dict[str, Any] | None: