feat 区分is_emoji和has_emoji字段

This commit is contained in:
SengokuCola
2025-07-07 21:08:23 +08:00
parent 8c3a3459cf
commit 3c46d996fe

View File

@@ -107,7 +107,9 @@ class MessageRecv(Message):
self.processed_plain_text = message_dict.get("processed_plain_text", "") self.processed_plain_text = message_dict.get("processed_plain_text", "")
self.detailed_plain_text = message_dict.get("detailed_plain_text", "") self.detailed_plain_text = message_dict.get("detailed_plain_text", "")
self.is_emoji = False self.is_emoji = False
self.has_emoji = False
self.is_picid = False self.is_picid = False
self.has_picid = False
self.is_mentioned = None self.is_mentioned = None
self.priority_mode = "interest" self.priority_mode = "interest"
self.priority_info = None self.priority_info = None
@@ -134,25 +136,35 @@ class MessageRecv(Message):
""" """
try: try:
if segment.type == "text": if segment.type == "text":
self.is_picid = False
self.is_emoji = False
return segment.data return segment.data
elif segment.type == "image": elif segment.type == "image":
# 如果是base64图片数据 # 如果是base64图片数据
if isinstance(segment.data, str): if isinstance(segment.data, str):
self.has_picid = True
self.is_picid = True self.is_picid = True
self.is_emoji = False
image_manager = get_image_manager() image_manager = get_image_manager()
# print(f"segment.data: {segment.data}") # print(f"segment.data: {segment.data}")
_, processed_text = await image_manager.process_image(segment.data) _, processed_text = await image_manager.process_image(segment.data)
return processed_text return processed_text
return "[发了一张图片,网卡了加载不出来]" return "[发了一张图片,网卡了加载不出来]"
elif segment.type == "emoji": elif segment.type == "emoji":
self.has_emoji = True
self.is_emoji = True self.is_emoji = True
self.is_picid = False
if isinstance(segment.data, str): if isinstance(segment.data, str):
return await get_image_manager().get_emoji_description(segment.data) return await get_image_manager().get_emoji_description(segment.data)
return "[发了一个表情包,网卡了加载不出来]" return "[发了一个表情包,网卡了加载不出来]"
elif segment.type == "mention_bot": elif segment.type == "mention_bot":
self.is_picid = False
self.is_emoji = False
self.is_mentioned = float(segment.data) self.is_mentioned = float(segment.data)
return "" return ""
elif segment.type == "priority_info": elif segment.type == "priority_info":
self.is_picid = False
self.is_emoji = False
if isinstance(segment.data, dict): if isinstance(segment.data, dict):
# 处理优先级信息 # 处理优先级信息
self.priority_mode = "priority" self.priority_mode = "priority"