feat: 让麦麦可以正确读取json格式的分享卡片

feat: 让麦麦可以正确读取json格式的分享卡片
#225
This commit is contained in:
HYY
2025-03-11 23:00:07 +08:00
committed by GitHub

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,20 @@ 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'))
try:
json_message = json.loads(raw_json)
except json.JSONDecodeError:
json_message = {}
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')