Merge branch 'debug' of github.com:SengokuCola/MaiMBot into contrib
This commit is contained in:
2
bot.py
2
bot.py
@@ -63,7 +63,7 @@ def init_env():
|
|||||||
|
|
||||||
# 首先加载基础环境变量.env
|
# 首先加载基础环境变量.env
|
||||||
if os.path.exists(".env"):
|
if os.path.exists(".env"):
|
||||||
load_dotenv(".env")
|
load_dotenv(".env",override=True)
|
||||||
logger.success("成功加载基础环境变量配置")
|
logger.success("成功加载基础环境变量配置")
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -21,13 +21,14 @@
|
|||||||
buildInputs = [
|
buildInputs = [
|
||||||
pythonPackages.python
|
pythonPackages.python
|
||||||
pythonPackages.venvShellHook
|
pythonPackages.venvShellHook
|
||||||
|
pythonPackages.numpy
|
||||||
];
|
];
|
||||||
|
|
||||||
postVenvCreation = ''
|
postVenvCreation = ''
|
||||||
unset SOURCE_DATE_EPOCH
|
unset SOURCE_DATE_EPOCH
|
||||||
pip install -r requirements.txt
|
pip install -r requirements.txt
|
||||||
'';
|
'';
|
||||||
|
|
||||||
postShellHook = ''
|
postShellHook = ''
|
||||||
# allow pip to install wheels
|
# allow pip to install wheels
|
||||||
unset SOURCE_DATE_EPOCH
|
unset SOURCE_DATE_EPOCH
|
||||||
|
|||||||
@@ -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')
|
||||||
|
|
||||||
|
|||||||
@@ -39,9 +39,13 @@ def db_message_to_str(message_dict: Dict) -> str:
|
|||||||
def is_mentioned_bot_in_message(message: MessageRecv) -> bool:
|
def is_mentioned_bot_in_message(message: MessageRecv) -> bool:
|
||||||
"""检查消息是否提到了机器人"""
|
"""检查消息是否提到了机器人"""
|
||||||
keywords = [global_config.BOT_NICKNAME]
|
keywords = [global_config.BOT_NICKNAME]
|
||||||
|
nicknames = global_config.BOT_ALIAS_NAMES
|
||||||
for keyword in keywords:
|
for keyword in keywords:
|
||||||
if keyword in message.processed_plain_text:
|
if keyword in message.processed_plain_text:
|
||||||
return True
|
return True
|
||||||
|
for nickname in nicknames:
|
||||||
|
if nickname in message.processed_plain_text:
|
||||||
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user