close SengokuCola/MaiMBot#225 让麦麦可以正确读取分享卡片

This commit is contained in:
ChangingSelf
2025-03-11 22:47:23 +08:00
parent cd26b2d046
commit 2688a96986

View File

@@ -1,4 +1,7 @@
import time import time
import html
import re
import json
from dataclasses import dataclass from dataclasses import dataclass
from typing import Dict, ForwardRef, List, Optional, Union from typing import Dict, ForwardRef, List, Optional, Union
@@ -69,6 +72,17 @@ class MessageRecv(Message):
message_dict: MessageCQ序列化后的字典 message_dict: MessageCQ序列化后的字典
""" """
self.message_info = BaseMessageInfo.from_dict(message_dict.get('message_info', {})) self.message_info = BaseMessageInfo.from_dict(message_dict.get('message_info', {}))
message_segment = message_dict.get('message_segment', {})
if message_segment.get('data','') == '[json]':
# 提取json消息中的展示信息
pattern = r'\[CQ:json,data=(?P<json_data>.+?)\]'
match = re.search(pattern, message_dict.get('raw_message',''))
raw_json = html.unescape(match.group('json_data'))
json_message = json.loads(raw_json)
message_segment['data'] = json_message.get('prompt','')
self.message_segment = Seg.from_dict(message_dict.get('message_segment', {})) self.message_segment = Seg.from_dict(message_dict.get('message_segment', {}))
self.raw_message = message_dict.get('raw_message') self.raw_message = message_dict.get('raw_message')