This commit is contained in:
SengokuCola
2025-04-20 16:45:11 +08:00
5 changed files with 50 additions and 30 deletions

View File

@@ -138,7 +138,7 @@ class BotConfig:
MAI_VERSION: str = mai_version # 硬编码的版本信息
# bot
BOT_QQ: Optional[int] = 114514
BOT_QQ: Optional[str] = "114514"
BOT_NICKNAME: Optional[str] = None
BOT_ALIAS_NAMES: List[str] = field(default_factory=list) # 别名,可以通过这个叫它
@@ -395,7 +395,7 @@ class BotConfig:
# 机器人基础配置
bot_config = parent["bot"]
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_ALIAS_NAMES = bot_config.get("alias_names", config.BOT_ALIAS_NAMES)
@@ -624,9 +624,14 @@ class BotConfig:
def groups(parent: dict):
groups_config = parent["groups"]
config.talk_allowed_groups = set(groups_config.get("talk_allowed", []))
config.talk_frequency_down_groups = set(groups_config.get("talk_frequency_down", []))
config.ban_user_id = set(groups_config.get("ban_user_id", []))
# config.talk_allowed_groups = set(groups_config.get("talk_allowed", []))
config.talk_allowed_groups = set(str(group) for group in groups_config.get("talk_allowed", []))
# 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):
platforms_config = parent["platforms"]

View File

@@ -77,10 +77,17 @@ class ChatBot:
# 确保所有任务已启动
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)
groupinfo = message.message_info.group_info
userinfo = message.message_info.user_info
logger.trace(f"处理消息:{str(message_data)[:120]}...")
if userinfo.user_id in global_config.ban_user_id:
logger.debug(f"用户{userinfo.user_id}被禁止回复")

View File

@@ -313,17 +313,21 @@ class MessageSending(MessageProcessBase):
def set_reply(self, reply: Optional["MessageRecv"] = None) -> None:
"""设置回复消息"""
if reply:
self.reply = reply
if self.reply:
self.reply_to_message_id = self.reply.message_info.message_id
self.message_segment = Seg(
type="seglist",
data=[
Seg(type="reply", data=self.reply.message_info.message_id),
self.message_segment,
],
)
if (
self.message_info.format_info.accept_format is not None
and "reply" in self.message_info.format_info.accept_format
):
if reply:
self.reply = reply
if self.reply:
self.reply_to_message_id = self.reply.message_info.message_id
self.message_segment = Seg(
type="seglist",
data=[
Seg(type="reply", data=self.reply.message_info.message_id),
self.message_segment,
],
)
return self
async def process(self) -> None:

View File

@@ -375,17 +375,21 @@ class ThinkFlowChat:
info_catcher.done_catch()
# 处理表情包
try:
with Timer("处理表情包", timing_results):
if global_config.emoji_chance == 1:
if send_emoji:
logger.info(f"麦麦决定发送表情包{send_emoji}")
await self._handle_emoji(message, chat, response_set, send_emoji)
else:
if random() < global_config.emoji_chance:
await self._handle_emoji(message, chat, response_set)
except Exception as e:
logger.error(f"心流处理表情包失败: {e}")
if (
message.message_info.format_info.accept_format is not None
and "emoji" in message.message_info.format_info.accept_format
):
try:
with Timer("处理表情包", timing_results):
if global_config.emoji_chance == 1:
if send_emoji:
logger.info(f"麦麦决定发送表情包{send_emoji}")
await self._handle_emoji(message, chat, response_set, send_emoji)
else:
if random() < global_config.emoji_chance:
await self._handle_emoji(message, chat, response_set)
except Exception as e:
logger.error(f"心流处理表情包失败: {e}")
# 思考后脑内状态更新
# try:

View File

@@ -1,6 +1,6 @@
import time
from random import random
import traceback
from typing import List
from ...memory_system.Hippocampus import HippocampusManager
from ...moods.moods import MoodManager
@@ -255,7 +255,7 @@ class ReasoningChat:
info_catcher.catch_after_generate_response(timing_results["生成回复"])
except Exception as e:
logger.error(f"回复生成出现错误:str{e}")
logger.error(f"回复生成出现错误:{str(e)} {traceback.format_exc()}")
response_set = None
if not response_set: