From 398c76f496520b0fb5fa15e7b7fcbc4b5df0e276 Mon Sep 17 00:00:00 2001 From: LunarMeal <1745266439@qq.com> Date: Thu, 20 Mar 2025 22:39:49 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E4=BA=86newgroup?= =?UTF-8?q?=E6=8C=87=E4=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/astrbot/main.py | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/packages/astrbot/main.py b/packages/astrbot/main.py index 5eae101ae..e413c98e7 100644 --- a/packages/astrbot/main.py +++ b/packages/astrbot/main.py @@ -7,6 +7,8 @@ import astrbot.api.event.filter as filter from astrbot.api.event import AstrMessageEvent, MessageEventResult from astrbot.api import sp from astrbot.api.provider import ProviderRequest +from astrbot.core.platform.astr_message_event import MessageSesion +from astrbot.core.platform.message_type import MessageType from astrbot.core.provider.sources.dify_source import ProviderDify from astrbot.core.utils.io import download_dashboard, get_dashboard_version from astrbot.core.star.star_handler import star_handlers_registry, StarHandlerMetadata @@ -88,6 +90,7 @@ class Main(star.Star): /model: 模型列表 /ls: 对话列表 /new: 创建新对话 +/newgroup 群号: 为群聊创建新对话 /switch 序号: 切换对话 /rename 新名字: 重命名当前对话 /del: 删除当前会话对话(op) @@ -700,6 +703,36 @@ UID: {user_id} 此 ID 可用于设置管理员。 MessageEventResult().message(f"切换到新对话: 新对话({cid[:4]})。") ) + @filter.command("newgroup") + async def newgroup_conv(self, message: AstrMessageEvent, sid: str): + """创建新群聊对话""" + provider = self.context.get_using_provider() + if provider and provider.meta().type == "dify": + assert isinstance(provider, ProviderDify) + await provider.forget(message.unified_msg_origin) + message.set_result( + MessageEventResult().message("成功,下次聊天将是新对话。") + ) + return + if sid: + session = str( + MessageSesion( + platform_name=message.platform_meta.name, + message_type=MessageType("GroupMessage"), + session_id=sid, + ) + ) + cid = await self.context.conversation_manager.new_conversation(session) + message.set_result( + MessageEventResult().message( + f"群聊 {session} 已切换到新对话: 新对话({cid[:4]})。" + ) + ) + else: + message.set_result( + MessageEventResult().message("请输入群聊 ID。/newgroup 群聊ID。") + ) + @filter.command("switch") async def switch_conv(self, message: AstrMessageEvent, index: int = None): """通过 /ls 前面的序号切换对话""" From 414b645e9fa726f4c19ec0ff1100deb01baf1b6f Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Thu, 20 Mar 2025 14:42:37 +0000 Subject: [PATCH 2/4] :balloon: auto fixes by pre-commit hooks --- astrbot/core/message/message_event_result.py | 1 + .../core/platform/sources/aiocqhttp/aiocqhttp_message_event.py | 1 + 2 files changed, 2 insertions(+) diff --git a/astrbot/core/message/message_event_result.py b/astrbot/core/message/message_event_result.py index 48d0b18c9..4cc7fb842 100644 --- a/astrbot/core/message/message_event_result.py +++ b/astrbot/core/message/message_event_result.py @@ -151,4 +151,5 @@ class MessageEventResult(MessageChain): """是否为 LLM 结果。""" return self.result_content_type == ResultContentType.LLM_RESULT + CommandResult = MessageEventResult diff --git a/astrbot/core/platform/sources/aiocqhttp/aiocqhttp_message_event.py b/astrbot/core/platform/sources/aiocqhttp/aiocqhttp_message_event.py index 08990015e..0dfe41a4e 100644 --- a/astrbot/core/platform/sources/aiocqhttp/aiocqhttp_message_event.py +++ b/astrbot/core/platform/sources/aiocqhttp/aiocqhttp_message_event.py @@ -4,6 +4,7 @@ from astrbot.api.event import AstrMessageEvent, MessageChain from astrbot.api.message_components import Plain, Image, Record, At, Node, Nodes from aiocqhttp import CQHttp + class AiocqhttpMessageEvent(AstrMessageEvent): def __init__( self, message_str, message_obj, platform_meta, session_id, bot: CQHttp From 1effbc5cc9cceae7fae89fceae0e0ddc91b41b27 Mon Sep 17 00:00:00 2001 From: LunarMeal <1745266439@qq.com> Date: Thu, 20 Mar 2025 22:53:21 +0800 Subject: [PATCH 3/4] fix --- astrbot/core/platform/sources/gewechat/gewechat_event.py | 2 +- astrbot/core/platform/sources/wecom/wecom_event.py | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/astrbot/core/platform/sources/gewechat/gewechat_event.py b/astrbot/core/platform/sources/gewechat/gewechat_event.py index 247a2a6a4..15f0badd7 100644 --- a/astrbot/core/platform/sources/gewechat/gewechat_event.py +++ b/astrbot/core/platform/sources/gewechat/gewechat_event.py @@ -2,7 +2,7 @@ import wave import uuid import traceback import os -from astrbot.core.utils.io import save_temp_img, download_image_by_url, download_file +from astrbot.core.utils.io import save_temp_img, download_file from astrbot.core.utils.tencent_record_helper import wav_to_tencent_silk from astrbot.api import logger from astrbot.api.event import AstrMessageEvent, MessageChain diff --git a/astrbot/core/platform/sources/wecom/wecom_event.py b/astrbot/core/platform/sources/wecom/wecom_event.py index c6f8d6ef6..470b7b1f8 100644 --- a/astrbot/core/platform/sources/wecom/wecom_event.py +++ b/astrbot/core/platform/sources/wecom/wecom_event.py @@ -3,7 +3,6 @@ from astrbot.api.event import AstrMessageEvent, MessageChain from astrbot.api.platform import AstrBotMessage, PlatformMetadata from astrbot.api.message_components import Plain, Image, Record from wechatpy.enterprise import WeChatClient -from astrbot.core.utils.io import download_image_by_url, download_file from astrbot.api import logger From 36519ac47ec1fb99c0859b9ba7fe3f4b0774731f Mon Sep 17 00:00:00 2001 From: Soulter <905617992@qq.com> Date: Sat, 22 Mar 2025 19:14:58 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=F0=9F=90=9B=20fix:=20groupnew=20=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE=E4=B8=BA=E7=AE=A1=E7=90=86=E5=91=98=E6=8C=87=E4=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/astrbot/main.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/astrbot/main.py b/packages/astrbot/main.py index e413c98e7..b0f51d98f 100644 --- a/packages/astrbot/main.py +++ b/packages/astrbot/main.py @@ -90,7 +90,7 @@ class Main(star.Star): /model: 模型列表 /ls: 对话列表 /new: 创建新对话 -/newgroup 群号: 为群聊创建新对话 +/groupnew 群号: 为群聊创建新对话(op) /switch 序号: 切换对话 /rename 新名字: 重命名当前对话 /del: 删除当前会话对话(op) @@ -703,8 +703,9 @@ UID: {user_id} 此 ID 可用于设置管理员。 MessageEventResult().message(f"切换到新对话: 新对话({cid[:4]})。") ) - @filter.command("newgroup") - async def newgroup_conv(self, message: AstrMessageEvent, sid: str): + @filter.permission_type(filter.PermissionType.ADMIN) + @filter.command("groupnew") + async def groupnew_conv(self, message: AstrMessageEvent, sid: str): """创建新群聊对话""" provider = self.context.get_using_provider() if provider and provider.meta().type == "dify":