Merge branch 'dev' of https://github.com/MaiM-with-u/MaiBot into dev
This commit is contained in:
@@ -138,7 +138,7 @@ class BotConfig:
|
|||||||
MAI_VERSION: str = mai_version # 硬编码的版本信息
|
MAI_VERSION: str = mai_version # 硬编码的版本信息
|
||||||
|
|
||||||
# bot
|
# bot
|
||||||
BOT_QQ: Optional[int] = 114514
|
BOT_QQ: Optional[str] = "114514"
|
||||||
BOT_NICKNAME: Optional[str] = None
|
BOT_NICKNAME: Optional[str] = None
|
||||||
BOT_ALIAS_NAMES: List[str] = field(default_factory=list) # 别名,可以通过这个叫它
|
BOT_ALIAS_NAMES: List[str] = field(default_factory=list) # 别名,可以通过这个叫它
|
||||||
|
|
||||||
@@ -395,7 +395,7 @@ class BotConfig:
|
|||||||
# 机器人基础配置
|
# 机器人基础配置
|
||||||
bot_config = parent["bot"]
|
bot_config = parent["bot"]
|
||||||
bot_qq = bot_config.get("qq")
|
bot_qq = bot_config.get("qq")
|
||||||
config.BOT_QQ = int(bot_qq)
|
config.BOT_QQ = str(bot_qq)
|
||||||
config.BOT_NICKNAME = bot_config.get("nickname", config.BOT_NICKNAME)
|
config.BOT_NICKNAME = bot_config.get("nickname", config.BOT_NICKNAME)
|
||||||
config.BOT_ALIAS_NAMES = bot_config.get("alias_names", config.BOT_ALIAS_NAMES)
|
config.BOT_ALIAS_NAMES = bot_config.get("alias_names", config.BOT_ALIAS_NAMES)
|
||||||
|
|
||||||
@@ -624,9 +624,14 @@ class BotConfig:
|
|||||||
|
|
||||||
def groups(parent: dict):
|
def groups(parent: dict):
|
||||||
groups_config = parent["groups"]
|
groups_config = parent["groups"]
|
||||||
config.talk_allowed_groups = set(groups_config.get("talk_allowed", []))
|
# config.talk_allowed_groups = set(groups_config.get("talk_allowed", []))
|
||||||
config.talk_frequency_down_groups = set(groups_config.get("talk_frequency_down", []))
|
config.talk_allowed_groups = set(str(group) for group in groups_config.get("talk_allowed", []))
|
||||||
config.ban_user_id = set(groups_config.get("ban_user_id", []))
|
# config.talk_frequency_down_groups = set(groups_config.get("talk_frequency_down", []))
|
||||||
|
config.talk_frequency_down_groups = set(
|
||||||
|
str(group) for group in groups_config.get("talk_frequency_down", [])
|
||||||
|
)
|
||||||
|
# config.ban_user_id = set(groups_config.get("ban_user_id", []))
|
||||||
|
config.ban_user_id = set(str(user) for user in groups_config.get("ban_user_id", []))
|
||||||
|
|
||||||
def platforms(parent: dict):
|
def platforms(parent: dict):
|
||||||
platforms_config = parent["platforms"]
|
platforms_config = parent["platforms"]
|
||||||
|
|||||||
@@ -77,10 +77,17 @@ class ChatBot:
|
|||||||
# 确保所有任务已启动
|
# 确保所有任务已启动
|
||||||
await self._ensure_started()
|
await self._ensure_started()
|
||||||
|
|
||||||
|
if message_data["message_info"]["group_info"] is not None:
|
||||||
|
message_data["message_info"]["group_info"]["group_id"] = str(
|
||||||
|
message_data["message_info"]["group_info"]["group_id"]
|
||||||
|
)
|
||||||
|
message_data["message_info"]["group_info"]["group_id"] = str(
|
||||||
|
message_data["message_info"]["group_info"]["group_id"]
|
||||||
|
)
|
||||||
|
logger.trace(f"处理消息:{str(message_data)[:120]}...")
|
||||||
message = MessageRecv(message_data)
|
message = MessageRecv(message_data)
|
||||||
groupinfo = message.message_info.group_info
|
groupinfo = message.message_info.group_info
|
||||||
userinfo = message.message_info.user_info
|
userinfo = message.message_info.user_info
|
||||||
logger.trace(f"处理消息:{str(message_data)[:120]}...")
|
|
||||||
|
|
||||||
if userinfo.user_id in global_config.ban_user_id:
|
if userinfo.user_id in global_config.ban_user_id:
|
||||||
logger.debug(f"用户{userinfo.user_id}被禁止回复")
|
logger.debug(f"用户{userinfo.user_id}被禁止回复")
|
||||||
|
|||||||
@@ -313,17 +313,21 @@ class MessageSending(MessageProcessBase):
|
|||||||
|
|
||||||
def set_reply(self, reply: Optional["MessageRecv"] = None) -> None:
|
def set_reply(self, reply: Optional["MessageRecv"] = None) -> None:
|
||||||
"""设置回复消息"""
|
"""设置回复消息"""
|
||||||
if reply:
|
if (
|
||||||
self.reply = reply
|
self.message_info.format_info.accept_format is not None
|
||||||
if self.reply:
|
and "reply" in self.message_info.format_info.accept_format
|
||||||
self.reply_to_message_id = self.reply.message_info.message_id
|
):
|
||||||
self.message_segment = Seg(
|
if reply:
|
||||||
type="seglist",
|
self.reply = reply
|
||||||
data=[
|
if self.reply:
|
||||||
Seg(type="reply", data=self.reply.message_info.message_id),
|
self.reply_to_message_id = self.reply.message_info.message_id
|
||||||
self.message_segment,
|
self.message_segment = Seg(
|
||||||
],
|
type="seglist",
|
||||||
)
|
data=[
|
||||||
|
Seg(type="reply", data=self.reply.message_info.message_id),
|
||||||
|
self.message_segment,
|
||||||
|
],
|
||||||
|
)
|
||||||
return self
|
return self
|
||||||
|
|
||||||
async def process(self) -> None:
|
async def process(self) -> None:
|
||||||
|
|||||||
@@ -375,17 +375,21 @@ class ThinkFlowChat:
|
|||||||
info_catcher.done_catch()
|
info_catcher.done_catch()
|
||||||
|
|
||||||
# 处理表情包
|
# 处理表情包
|
||||||
try:
|
if (
|
||||||
with Timer("处理表情包", timing_results):
|
message.message_info.format_info.accept_format is not None
|
||||||
if global_config.emoji_chance == 1:
|
and "emoji" in message.message_info.format_info.accept_format
|
||||||
if send_emoji:
|
):
|
||||||
logger.info(f"麦麦决定发送表情包{send_emoji}")
|
try:
|
||||||
await self._handle_emoji(message, chat, response_set, send_emoji)
|
with Timer("处理表情包", timing_results):
|
||||||
else:
|
if global_config.emoji_chance == 1:
|
||||||
if random() < global_config.emoji_chance:
|
if send_emoji:
|
||||||
await self._handle_emoji(message, chat, response_set)
|
logger.info(f"麦麦决定发送表情包{send_emoji}")
|
||||||
except Exception as e:
|
await self._handle_emoji(message, chat, response_set, send_emoji)
|
||||||
logger.error(f"心流处理表情包失败: {e}")
|
else:
|
||||||
|
if random() < global_config.emoji_chance:
|
||||||
|
await self._handle_emoji(message, chat, response_set)
|
||||||
|
except Exception as e:
|
||||||
|
logger.error(f"心流处理表情包失败: {e}")
|
||||||
|
|
||||||
# 思考后脑内状态更新
|
# 思考后脑内状态更新
|
||||||
# try:
|
# try:
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import time
|
import time
|
||||||
from random import random
|
from random import random
|
||||||
|
import traceback
|
||||||
from typing import List
|
from typing import List
|
||||||
from ...memory_system.Hippocampus import HippocampusManager
|
from ...memory_system.Hippocampus import HippocampusManager
|
||||||
from ...moods.moods import MoodManager
|
from ...moods.moods import MoodManager
|
||||||
@@ -255,7 +255,7 @@ class ReasoningChat:
|
|||||||
|
|
||||||
info_catcher.catch_after_generate_response(timing_results["生成回复"])
|
info_catcher.catch_after_generate_response(timing_results["生成回复"])
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"回复生成出现错误:str{e}")
|
logger.error(f"回复生成出现错误:{str(e)} {traceback.format_exc()}")
|
||||||
response_set = None
|
response_set = None
|
||||||
|
|
||||||
if not response_set:
|
if not response_set:
|
||||||
|
|||||||
Reference in New Issue
Block a user