Skip to main content

NoneBot2 多平台统一事件与统一消息构造发送

Project description

nonebot

nonebot-plugin-any

🐝 Nonebot2 多平台统一事件与统一消息构造发送 🐝

license PyPI - Downloads pypi python

介绍

本插件提供了 统一事件接口统一消息构造发送接口 ,方便您的插件在多个平台接收事件与发送消息。

本插件将各平台的 事件消息事件群消息事件)抽象出一个统一的 AnyEventAnyMsgEventAnyGroupMsgEvent),节约了开发者在适配多平台时所需要的额外时间。

同时也提供了 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.2.0.tar.gz (14.9 kB view hashes)

Uploaded Source

Built Distribution

nonebot_plugin_any-0.2.0-py3-none-any.whl (19.1 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page