Merge branch 'debug' of github.com:SengokuCola/MaiMBot into contrib
This commit is contained in:
@@ -1,4 +1,7 @@
|
||||
import time
|
||||
import html
|
||||
import re
|
||||
import json
|
||||
from dataclasses import dataclass
|
||||
from typing import Dict, ForwardRef, List, Optional, Union
|
||||
|
||||
@@ -69,6 +72,20 @@ class MessageRecv(Message):
|
||||
message_dict: MessageCQ序列化后的字典
|
||||
"""
|
||||
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.raw_message = message_dict.get('raw_message')
|
||||
|
||||
|
||||
@@ -39,9 +39,13 @@ def db_message_to_str(message_dict: Dict) -> str:
|
||||
def is_mentioned_bot_in_message(message: MessageRecv) -> bool:
|
||||
"""检查消息是否提到了机器人"""
|
||||
keywords = [global_config.BOT_NICKNAME]
|
||||
nicknames = global_config.BOT_ALIAS_NAMES
|
||||
for keyword in keywords:
|
||||
if keyword in message.processed_plain_text:
|
||||
return True
|
||||
for nickname in nicknames:
|
||||
if nickname in message.processed_plain_text:
|
||||
return True
|
||||
return False
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user