NoneBot2 多平台统一事件与统一消息构造发送
Project description
nonebot-plugin-any
🐝 Nonebot2 多平台统一事件与统一消息构造发送 🐝
介绍
本插件提供了 统一事件接口 与 统一消息构造发送接口 ,方便您的插件在多个平台接收事件与发送消息。
本插件将各平台的 事件
(消息事件
, 群消息事件
)抽象出一个统一的 AnyEvent
(AnyMsgEvent
,AnyGroupMsgEvent
),节约了开发者在适配多平台时所需要的额外时间。
同时也提供了 AnyMsg
,来提供一套接口即可发送跨平台消息的能力,只需构造一次 AnyMsg
即可编译成各平台消息,使您的插件结构更为清晰优雅。
特性
- 简单便捷的依赖注入支持
- 跨平台的 统一事件接收接口 与 统一消息构造发送接口
- 与
NoneBot2
消息处理流程行为一致
安装载入
- 通过 pip 或 nb-cli 安装
pip install nonebot-plugin-any
nb plugin install nonebot-plugin-any
- 并在您的bot.py中载入插件
nonebot.load_plugin("nonebot_plugin_any")
# 如果可能,最好将本插件在其他插件之前载入
目前支持
符号 | 含义 |
---|---|
✅ | 完全支持 |
🟨 | 部分支持(仅支持针对响应者等) |
⚠️ | 平台本身不支持,发送时自动返回提示 |
❌ | 尚未支持 |
适配器 | 纯文本 | 图片 | 提及(@) | 回复 | 语音 |
---|---|---|---|---|---|
OneBot V11 | ✅ | ✅ | ✅ | 🟨 | ✅ |
QQ 频道 | ✅ | ✅ | ✅ | 🟨 | ⚠️ |
Kook (开黑啦) | ✅ | ✅ | ✅ | 🟨 | ✅ |
使用
from nonebot import on_command, require
from nonebot.adapter import Bot as BaseBot
# 导入依赖
require("nonebot_plugin_any")
from plugins.nonebot_plugin_any import AnyMsgEvent, AnyGroupMsgEvent, AnyMsg, Platform
test = on_command("/ping", priority=1000)
@test.handle()
async def _(event: AnyMsgEvent): # 简单的依赖注入支持
await AnyMsg("AnyMsgEvent pong!").send(at=True, reply=True) # 原生适配发送时 at 和 reply
@test.handle()
async def _(bot: BaseBot, event: AnyMsgEvent):
msg = AnyMsg("prefix").image(Path("pong.png")).text("suffix") # 支持链式构造
qqmsg = msg.build(platform=Platform.QQ) # 构造 QQ 消息
kookmsg = msg.build(platform=Platform.KOOK) # 构造 KOOK 消息
botmsg = msg.build(bot=bot) # 根据 Bot 的类型构造对应消息
await msg.send() # 支持一个 AnyMsg 无限复用!
@test.handle()
async def _(event: AnyGroupMsgEvent): # 接收多平台群消息事件
print(event.user_id) # 各平台统一一个接口
print(event.image) # 便捷获取消息内图片链接
print(event.group_rich_id) # 含平台名的一级群聊 id
await AnyMsg("AnyGroupMsgEvent pong!").finish() # 与 matcher.finish(xxx) 行为一致
# 可以这样连接
AnyMsg("12345") + AnyMsg("67890")
# 也可以这样连接
AnyMsg("12345").text("67890")
AnyMsg("aaa").image(Path("bbb.png")).text("ccc")
# 还可以这样连接
AnyMsg("12345") + "67890"
# 这样连接也是完全没问题!
"12345" + AnyMsg("67890")
完善
-
本插件原本是
YuukaBot
的功能之一,经魔法修改适配NoneBot2
后在NoneBot2
平台上作为插件。 -
本插件仍处于开发阶段,若有需要的特性或新平台支持,欢迎提 issue 与 pr。
开源许可
- 本插件使用
MIT
许可证开源。
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
nonebot_plugin_any-0.1.2.tar.gz
(14.0 kB
view hashes)
Built Distribution
Close
Hashes for nonebot_plugin_any-0.1.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9ce65c6cc34955b70015a426a9bad58f974625220854b813373b59743d8bacb2 |
|
MD5 | 4777a4ea475a184f30a1ece70fe5b408 |
|
BLAKE2b-256 | a9d3f64354a1d3531655d6f4fb6039b3c656bc67a763859831f6a45553c0a315 |