From 9a0c22efd585b183cb1626b5140896f9b66440ec Mon Sep 17 00:00:00 2001 From: Windpicker-owo <3431391539@qq.com> Date: Sat, 1 Nov 2025 18:27:56 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E7=99=BD=E5=90=8D?= =?UTF-8?q?=E5=8D=95/=E9=BB=91=E5=90=8D=E5=8D=95=E6=A3=80=E6=9F=A5?= =?UTF-8?q?=E4=BB=A5=E5=A2=9E=E5=BC=BA=E4=B8=BB=E5=8A=A8=E6=80=9D=E8=80=83?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=E7=9A=84=E5=AE=89=E5=85=A8=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../proactive_thinking_event.py | 14 ++++++++++++ .../proactive_thinking_executor.py | 22 +++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/src/plugins/built_in/affinity_flow_chatter/proactive_thinking_event.py b/src/plugins/built_in/affinity_flow_chatter/proactive_thinking_event.py index 8bab3c40e..e3243b45e 100644 --- a/src/plugins/built_in/affinity_flow_chatter/proactive_thinking_event.py +++ b/src/plugins/built_in/affinity_flow_chatter/proactive_thinking_event.py @@ -59,6 +59,20 @@ class ProactiveThinkingReplyHandler(BaseEventHandler): logger.debug("[主动思考事件] reply_reset_enabled 为 False,跳过重置") return HandlerResult(success=True, continue_process=True, message=None) + # 检查白名单/黑名单(获取 stream_config 进行验证) + try: + from src.chat.message_receive.chat_stream import get_chat_manager + chat_manager = get_chat_manager() + chat_stream = await chat_manager.get_stream(stream_id) + + if chat_stream: + stream_config = chat_stream.get_raw_id() + if not proactive_thinking_scheduler._check_whitelist_blacklist(stream_config): + logger.debug(f"[主动思考事件] 聊天流 {stream_id} ({stream_config}) 不在白名单中,跳过重置") + return HandlerResult(success=True, continue_process=True, message=None) + except Exception as e: + logger.warning(f"[主动思考事件] 白名单检查时出错: {e}") + # 检查是否被暂停 was_paused = await proactive_thinking_scheduler.is_paused(stream_id) logger.debug(f"[主动思考事件] 聊天流 {stream_id} 暂停状态: {was_paused}") diff --git a/src/plugins/built_in/affinity_flow_chatter/proactive_thinking_executor.py b/src/plugins/built_in/affinity_flow_chatter/proactive_thinking_executor.py index e2fa10e09..099681d37 100644 --- a/src/plugins/built_in/affinity_flow_chatter/proactive_thinking_executor.py +++ b/src/plugins/built_in/affinity_flow_chatter/proactive_thinking_executor.py @@ -611,10 +611,32 @@ async def execute_proactive_thinking(stream_id: str): try: # 0. 前置检查 + # 0.1 检查白名单/黑名单 + # 从 stream_id 获取 stream_config 字符串进行验证 + try: + from src.chat.message_receive.chat_stream import get_chat_manager + chat_manager = get_chat_manager() + chat_stream = await chat_manager.get_stream(stream_id) + + if chat_stream: + # 使用 ChatStream 的 get_raw_id() 方法获取配置字符串 + stream_config = chat_stream.get_raw_id() + + # 执行白名单/黑名单检查 + if not proactive_thinking_scheduler._check_whitelist_blacklist(stream_config): + logger.debug(f"聊天流 {stream_id} ({stream_config}) 未通过白名单/黑名单检查,跳过主动思考") + return + else: + logger.warning(f"无法获取聊天流 {stream_id} 的信息,跳过白名单检查") + except Exception as e: + logger.warning(f"白名单检查时出错: {e},继续执行") + + # 0.2 检查安静时段 if proactive_thinking_scheduler._is_in_quiet_hours(): logger.debug("安静时段,跳过") return + # 0.3 检查每日限制 if not proactive_thinking_scheduler._check_daily_limit(stream_id): logger.debug("今日发言达上限") return