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 details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

Details for the file nonebot_plugin_any-0.2.0.tar.gz.

File metadata

  • Download URL: nonebot_plugin_any-0.2.0.tar.gz
  • Upload date:
  • Size: 14.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.6

File hashes

Hashes for nonebot_plugin_any-0.2.0.tar.gz
Algorithm Hash digest
SHA256 6af58565f5221ca1219793a06ff2fb74604e6c44d4c5d1c12a5626ae7700e900
MD5 4f5fa0f1d6713b94d61cafde898aae2b
BLAKE2b-256 cce2846206aa40fc00473e04121545bcf2d9b7d601476c383eaa1cd9f25673f0

See more details on using hashes here.

File details

Details for the file nonebot_plugin_any-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for nonebot_plugin_any-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ed3a67b8dba68e5ab438c7d9a845dfc0bf137f2f9f55689fa63be1afff133e98
MD5 a5a19c0a2171ea7503d15459b63bf619
BLAKE2b-256 baf646c766615ef75eb07cfdc19ffe55ca59870d1f2bcda6cd9828454026841d

See more details on using hashes here.

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