新增
- 增加 `Button` 与 `Keyboard` 消息段,表示按钮元素与按钮组/按钮矩阵元素。
- `Button` 有四种 flag: `action`, `link`, `input`, `enter`
- `Keyboard` 不传入参数 `row` 时,根据适配器情况自动选择作为一行发送或者换行成按钮矩阵
- 只传入 `Button` 或 只传入 `Keyboard` 时,根据适配器情况自动选择合并为 Keyboard 或展开为 Button
- 增加内建消息段 `Markdown`, 负责专门适配 `QQ` 适配器下的 md消息模板
- 若 `Markdown` 只传入了参数 `content` , 其行为与构造 `Text(...).markdown()` 相同
python
from nonebot_plugin_alconna import Button
from nonebot_plugin_alconna.builtins.uniseg.markdown import Markdown
await (
Markdown(
template_id="102060544_1720161790",
params={
"text": ["a"],
"image_spec": ["1024px 648px"],
"image": ["http://res.dunnoaskrf.top/gacha_sim_910f39dca8bb930cc35175f23289dd65.png"],
},
)
+ Button("enter", "再来一发", text="/十连")
).send()
- `UniMessage` 新增若干方法:
- `transform` & `tansform_async`: 遍历消息并依据传入的规则对消息内容进行替换/验证
- `split`: 和 `str.split` 差不多, 提供一个字符串, 然后返回分割结果.
- `startswith` & `endswith`: 断消息链是否以给出的字符串开头/结尾
- `removeprefix` & `removesuffix`: 移除消息链前缀/后缀
- `strip` & `lstrip` & `rstrip`: 去除首尾的空白字符
改进
- 在 `QQ` 适配器的群聊场景下 `Reply` 元素暂时会略过
- `Extension` 的 send_wrapper 现在在 `UniMessage.send` 时会调用
* ⬆️ Bump dependabot/fetch-metadata from 2.1.0 to 2.2.0 by dependabot in https://github.com/nonebot/plugin-alconna/pull/58
**Full Changelog**: https://github.com/nonebot/plugin-alconna/compare/v0.49.0...v0.50.0