适用于 NoneBot2 插件的被动消息构造集成
Project description
介绍
nonebot-plugin-msgbuf
是帮助开发者快速构造与发送跨平台消息结构的应用的工具。相较于 SAA 与 SegBuilder,本插件在开发中结构更为清晰优雅。
适配器支持状态
符号 | 含义 |
---|---|
✅ | 完全支持 |
🟨 | 部分支持,需要用户额外分平台处理 |
❌ | 不支持,发送时自动转化为后备文本 |
适配器 | 纯文本 | 图片 | 提及(@) | 回复 | 表情 | 语音 | 视频 | 文件 | 分享 | 地理位置 |
---|---|---|---|---|---|---|---|---|---|---|
OneBot V11 | ✅ | ✅ | 🟨 | 🟨 | 🟨 | ✅ | ✅ | ❌ | ✅ | ✅ |
OneBot V11 (Go-CQHTTP 拓展) | ✅ | ✅ | 🟨 | 🟨 | 🟨 | ✅ | ✅ | ✅ | ✅ | ✅ |
OneBot V12 | ✅ | ✅ | 🟨 | 🟨 | ❌ | ✅ | ✅ | ✅ | ❌ | ✅ |
QQ 频道 | ✅ | ✅ | 🟨 | 🟨 | 🟨 | ❌ | ❌ | ❌ | ❌ | ❌ |
Telegram | ✅ | ✅ | 🟨 | 🟨 | 🟨 | ✅ | ✅ | ✅ | ❌ | ✅ |
未写明的 | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
安装
通过 nb-cli
:
nb plugin install nonebot-plugin-msgbuf
使用
竞品对比
这是常规的消息构造与发送方法:
展开
from nonebot import on_message
from nonebot.adapters.onebot.v11 import MessageSegment
from pathlib import Path
ma = on_message()
@ma.handle()
async def test():
await ma.send(MessageSegment.image(Path("image.png")) + "Hello world!")
这是 SAA 的消息构造与发送方法:
展开
from nonebot import on_message, require
from pathlib import Path
require("nonebot_plugin_saa")
from nonebot_plugin_saa import MessageFactory, Text, Image
ma = on_message()
@ma.handle()
async def test():
await MessageFactory([Image(Path("image.png")), Text("Hello world!")]).send()
这是 SegBuilder 的消息构造与发送方法:
展开
from nonebot import on_message, require
from pathlib import Path
require("nonebot_plugin_segbuilder")
from nonebot_plugin_segbuilder import SegmentBuilder
ma = on_message()
@ma.handle()
async def test():
await ma.send(SegmentBuilder.image(Path("image.png")) + "Hello world!")
这是 MsgBuf 的消息构造与发送方法:
from nonebot import on_message, require
from pathlib import Path
require("nonebot_plugin_msgbuf")
from nonebot_plugin_msgbuf import MsgBuf
ma = on_message()
@ma.handle()
async def test():
async with MsgBuf() as mb:
mb.image(Path("image.png"))
mb.text("Hello world!")
@ma.handle()
async def test():
async with MsgBuf() as mb:
mb.image(Path("image.png")).text("Hello world!")
from nonebot_plugin_msgbuf import Image, Text
@ma.handle()
async def test():
async with MsgBuf() as mb:
mb << Image(Path("image.png")) << Text("Hello world!")
@ma.handle()
async def test():
await MsgBuf().image(Path("image.png")).text("Hello world!").send()
使用 Go-CQHTTP 拓展
发送文件
from nonebot_plugin_msgbuf import Specs
from pathlib import Path
@ma.handle()
async def test():
async with MsgBuf(specs=Specs.OB11_GOCQHTTP) as mb:
mb.file(Path("image.png"))
发送合并转发
from nonebot.adapters.onebot.v11 import Bot
from nonebot_plugin_msgbuf import FwdBuf
@ma.handle()
async def test(bot: Bot):
async with FwdBuf(bot, ("group", 114514)) as fb:
async with fb.node(1919810, "homo") as n:
n.text("114514")
n.image("file://homo.jpg")
async with fb.node(1919810, "homo") as n:
async with n.node(1919810, "homo") as n1:
n1.text("homo")
async with n.node(1919810, "homo") as n1:
n1.text("1919810")
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
Built Distribution
File details
Details for the file nonebot-plugin-msgbuf-0.4.1.tar.gz
.
File metadata
- Download URL: nonebot-plugin-msgbuf-0.4.1.tar.gz
- Upload date:
- Size: 12.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.17
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d485aeda56e5a467892e31507e983c918a88545923dc3e399f791cb2d8e9997c |
|
MD5 | 5788a272273c68e392e8938e472a8514 |
|
BLAKE2b-256 | eced55a20137bcd936915c7f87b93d91d6c5e264170b628b8fd1165b77133174 |
File details
Details for the file nonebot_plugin_msgbuf-0.4.1-py3-none-any.whl
.
File metadata
- Download URL: nonebot_plugin_msgbuf-0.4.1-py3-none-any.whl
- Upload date:
- Size: 13.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.17
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a397d88dbed9ab6b489200ecbd5b7565dca730abc26035b6c1ef06d33658e01c |
|
MD5 | 1596bec88bf5df61d64fa1d46bc8aabc |
|
BLAKE2b-256 | 346af95b577a10185b273e4cfd199832f31b19683884e2962d9dfc55169e3e82 |