mirror of
https://github.com/RockChinQ/QChatGPT.git
synced 2024-11-16 11:42:44 +08:00
feat: 添加 reply 和 send_message 两个插件api方法
This commit is contained in:
parent
998fe5a980
commit
1c5f06d9a9
|
@ -146,9 +146,9 @@ class PlatformManager:
|
||||||
if len(self.adapters) == 0:
|
if len(self.adapters) == 0:
|
||||||
self.ap.logger.warning('未运行平台适配器,请根据文档配置并启用平台适配器。')
|
self.ap.logger.warning('未运行平台适配器,请根据文档配置并启用平台适配器。')
|
||||||
|
|
||||||
async def send(self, event: mirai.MessageEvent, msg: mirai.MessageChain, adapter: msadapter.MessageSourceAdapter, check_quote=True, check_at_sender=True):
|
async def send(self, event: mirai.MessageEvent, msg: mirai.MessageChain, adapter: msadapter.MessageSourceAdapter):
|
||||||
|
|
||||||
if check_at_sender and self.ap.platform_cfg.data['at-sender'] and isinstance(event, GroupMessage):
|
if self.ap.platform_cfg.data['at-sender'] and isinstance(event, GroupMessage):
|
||||||
|
|
||||||
msg.insert(
|
msg.insert(
|
||||||
0,
|
0,
|
||||||
|
@ -160,7 +160,7 @@ class PlatformManager:
|
||||||
await adapter.reply_message(
|
await adapter.reply_message(
|
||||||
event,
|
event,
|
||||||
msg,
|
msg,
|
||||||
quote_origin=True if self.ap.platform_cfg.data['quote-origin'] and check_quote else False
|
quote_origin=True if self.ap.platform_cfg.data['quote-origin'] else False
|
||||||
)
|
)
|
||||||
|
|
||||||
async def run(self):
|
async def run(self):
|
||||||
|
|
|
@ -3,6 +3,7 @@ from __future__ import annotations
|
||||||
import typing
|
import typing
|
||||||
import abc
|
import abc
|
||||||
import pydantic
|
import pydantic
|
||||||
|
import mirai
|
||||||
|
|
||||||
from . import events
|
from . import events
|
||||||
from ..provider.tools import entities as tools_entities
|
from ..provider.tools import entities as tools_entities
|
||||||
|
@ -165,11 +166,54 @@ class EventContext:
|
||||||
}
|
}
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
# ========== 插件可调用的 API ==========
|
||||||
|
|
||||||
def add_return(self, key: str, ret):
|
def add_return(self, key: str, ret):
|
||||||
"""添加返回值"""
|
"""添加返回值"""
|
||||||
if key not in self.__return_value__:
|
if key not in self.__return_value__:
|
||||||
self.__return_value__[key] = []
|
self.__return_value__[key] = []
|
||||||
self.__return_value__[key].append(ret)
|
self.__return_value__[key].append(ret)
|
||||||
|
|
||||||
|
async def reply(self, message_chain: mirai.MessageChain):
|
||||||
|
"""回复此次消息请求
|
||||||
|
|
||||||
|
Args:
|
||||||
|
message_chain (mirai.MessageChain): YiriMirai库的消息链,若用户使用的不是 YiriMirai 适配器,程序也能自动转换为目标消息链
|
||||||
|
"""
|
||||||
|
await self.host.ap.platform_mgr.send(
|
||||||
|
event=self.event.query.message_event,
|
||||||
|
msg=message_chain,
|
||||||
|
adapter=self.event.query.adapter,
|
||||||
|
)
|
||||||
|
|
||||||
|
async def send_message(
|
||||||
|
self,
|
||||||
|
target_type: str,
|
||||||
|
target_id: str,
|
||||||
|
message: mirai.MessageChain
|
||||||
|
):
|
||||||
|
"""主动发送消息
|
||||||
|
|
||||||
|
Args:
|
||||||
|
target_type (str): 目标类型,`person`或`group`
|
||||||
|
target_id (str): 目标ID
|
||||||
|
message (mirai.MessageChain): YiriMirai库的消息链,若用户使用的不是 YiriMirai 适配器,程序也能自动转换为目标消息链
|
||||||
|
"""
|
||||||
|
await self.event.query.adapter.send_message(
|
||||||
|
target_type=target_type,
|
||||||
|
target_id=target_id,
|
||||||
|
message=message
|
||||||
|
)
|
||||||
|
|
||||||
|
def prevent_postorder(self):
|
||||||
|
"""阻止后续插件执行"""
|
||||||
|
self.__prevent_postorder__ = True
|
||||||
|
|
||||||
|
def prevent_default(self):
|
||||||
|
"""阻止默认行为"""
|
||||||
|
self.__prevent_default__ = True
|
||||||
|
|
||||||
|
# ========== 以下是内部保留方法,插件不应调用 ==========
|
||||||
|
|
||||||
def get_return(self, key: str) -> list:
|
def get_return(self, key: str) -> list:
|
||||||
"""获取key的所有返回值"""
|
"""获取key的所有返回值"""
|
||||||
|
@ -183,14 +227,6 @@ class EventContext:
|
||||||
return self.__return_value__[key][0]
|
return self.__return_value__[key][0]
|
||||||
return None
|
return None
|
||||||
|
|
||||||
def prevent_default(self):
|
|
||||||
"""阻止默认行为"""
|
|
||||||
self.__prevent_default__ = True
|
|
||||||
|
|
||||||
def prevent_postorder(self):
|
|
||||||
"""阻止后续插件执行"""
|
|
||||||
self.__prevent_postorder__ = True
|
|
||||||
|
|
||||||
def is_prevented_default(self):
|
def is_prevented_default(self):
|
||||||
"""是否阻止默认行为"""
|
"""是否阻止默认行为"""
|
||||||
return self.__prevent_default__
|
return self.__prevent_default__
|
||||||
|
@ -198,6 +234,7 @@ class EventContext:
|
||||||
def is_prevented_postorder(self):
|
def is_prevented_postorder(self):
|
||||||
"""是否阻止后序插件执行"""
|
"""是否阻止后序插件执行"""
|
||||||
return self.__prevent_postorder__
|
return self.__prevent_postorder__
|
||||||
|
|
||||||
|
|
||||||
def __init__(self, host: APIHost, event: events.BaseEventModel):
|
def __init__(self, host: APIHost, event: events.BaseEventModel):
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user