fix:修改插件基类,现在支持任意类型发送
This commit is contained in:
@@ -78,7 +78,7 @@ class ExitFocusChatAction(BaseAction):
|
|||||||
if self.sub_heartflow:
|
if self.sub_heartflow:
|
||||||
try:
|
try:
|
||||||
# 转换为normal_chat状态
|
# 转换为normal_chat状态
|
||||||
await self.sub_heartflow.change_chat_state(ChatState.NORMAL_CHAT)
|
await self.sub_heartflow.change_chat_state(ChatState.CHAT)
|
||||||
status_message = "已成功切换到普通聊天模式"
|
status_message = "已成功切换到普通聊天模式"
|
||||||
logger.info(f"{self.log_prefix} {status_message}")
|
logger.info(f"{self.log_prefix} {status_message}")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ class PluginAction(BaseAction):
|
|||||||
return platform, user_id
|
return platform, user_id
|
||||||
|
|
||||||
# 提供简化的API方法
|
# 提供简化的API方法
|
||||||
async def send_message(self, text: str, target: Optional[str] = None) -> bool:
|
async def send_message(self, type: str, data: str, target: Optional[str] = "") -> bool:
|
||||||
"""发送消息的简化方法
|
"""发送消息的简化方法
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
@@ -60,7 +60,7 @@ class PluginAction(BaseAction):
|
|||||||
return False
|
return False
|
||||||
|
|
||||||
# 构造简化的动作数据
|
# 构造简化的动作数据
|
||||||
reply_data = {"text": text, "target": target or "", "emojis": []}
|
# reply_data = {"text": text, "target": target or "", "emojis": []}
|
||||||
|
|
||||||
# 获取锚定消息(如果有)
|
# 获取锚定消息(如果有)
|
||||||
observations = self._services.get("observations", [])
|
observations = self._services.get("observations", [])
|
||||||
@@ -68,7 +68,8 @@ class PluginAction(BaseAction):
|
|||||||
chatting_observation: ChattingObservation = next(
|
chatting_observation: ChattingObservation = next(
|
||||||
obs for obs in observations if isinstance(obs, ChattingObservation)
|
obs for obs in observations if isinstance(obs, ChattingObservation)
|
||||||
)
|
)
|
||||||
anchor_message = chatting_observation.search_message_by_text(reply_data["target"])
|
|
||||||
|
anchor_message = chatting_observation.search_message_by_text(target)
|
||||||
|
|
||||||
# 如果没有找到锚点消息,创建一个占位符
|
# 如果没有找到锚点消息,创建一个占位符
|
||||||
if not anchor_message:
|
if not anchor_message:
|
||||||
@@ -80,7 +81,7 @@ class PluginAction(BaseAction):
|
|||||||
anchor_message.update_chat_stream(chat_stream)
|
anchor_message.update_chat_stream(chat_stream)
|
||||||
|
|
||||||
response_set = [
|
response_set = [
|
||||||
("text", text),
|
(type, data),
|
||||||
]
|
]
|
||||||
|
|
||||||
# 调用内部方法发送消息
|
# 调用内部方法发送消息
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
"""测试插件动作模块"""
|
"""测试插件动作模块"""
|
||||||
|
|
||||||
# 导入所有动作模块以确保装饰器被执行
|
# 导入所有动作模块以确保装饰器被执行
|
||||||
# from . import test_action # noqa
|
from . import test_action # noqa
|
||||||
|
|
||||||
# from . import online_action # noqa
|
from . import online_action # noqa
|
||||||
# from . import mute_action # noqa
|
from . import mute_action # noqa
|
||||||
|
|||||||
@@ -40,7 +40,11 @@ class MuteAction(PluginAction):
|
|||||||
await self.send_message_by_expressor(f"我要禁言{target},{platform},时长{duration}秒,理由{reason},表达情绪")
|
await self.send_message_by_expressor(f"我要禁言{target},{platform},时长{duration}秒,理由{reason},表达情绪")
|
||||||
|
|
||||||
try:
|
try:
|
||||||
await self.send_message(f"[command]mute,{user_id},{duration}")
|
await self.send_message(
|
||||||
|
type = "text",
|
||||||
|
data = f"[command]mute,{user_id},{duration}",
|
||||||
|
# target = target
|
||||||
|
)
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"{self.log_prefix} 执行mute动作时出错: {e}")
|
logger.error(f"{self.log_prefix} 执行mute动作时出错: {e}")
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ class CheckOnlineAction(PluginAction):
|
|||||||
"mode参数为version时查看在线版本状态,默认用这种",
|
"mode参数为version时查看在线版本状态,默认用这种",
|
||||||
"mode参数为type时查看在线系统类型分布",
|
"mode参数为type时查看在线系统类型分布",
|
||||||
]
|
]
|
||||||
default = True # 不是默认动作,需要手动添加到使用集
|
default = False # 不是默认动作,需要手动添加到使用集
|
||||||
|
|
||||||
async def process(self) -> Tuple[bool, str]:
|
async def process(self) -> Tuple[bool, str]:
|
||||||
"""处理测试动作"""
|
"""处理测试动作"""
|
||||||
|
|||||||
Reference in New Issue
Block a user