Releases: nonebot/plugin-alconna
Releases · nonebot/plugin-alconna
Nonebot Plugin Alconna 0.51.0
新增
FallbackStrategy.auto
策略,会根据执行每个元素的情况执行最佳的回退策略UniMessage
的序列化&反序列化方法.load
和.dump
,用于持久化消息dump
将消息序列化为 JSON 格式;若不指定 media_save_dir,则会尝试导入nonebot_plugin_localstore
并使用其提供的路径。
否则,将会尝试使用当前工作目录。load 从 JSON 数据加载消息
command_from_json/yaml
和commands_from_json/yaml
函数,用于从 JSON/YAML 文件中加载 Command 对象:foo.yml:from nonebot_plugin_alconna import command_from_yaml cmd = command_from_yaml("foo.yml").build(...)
command: foo <bar:str> help: 测试 usage: foo <bar> shortcuts: - key: 测试 args: ["123"] actions: - params: ["bar"] code: | return f"hello, {bar}"
- 内置插件
with
,用于在当前群组场景内设置一个局部命令前缀。对于包含多个子命令的指令,该插件可以使得此指令进行更加便捷的调用:
改进
Text.color
支持了更多的颜色on_alconna
中的配置项参数 (例如use_cmd_start
) 现在为bool | None
类型:- 只有在类型为 None/ 不声明参数时,会跟随全局配置
修复
- 🐛 add type annotation for
image_fetch
by @lgc2333 in #61 - 🐛 version 0.50.3 by @RF-Tar-Railt in #63
New Contributors
- @RF-Tar-Railt made their first contribution in #63
Full Changelog: v0.50.3...v0.51.0
Nonebot Plugin Alconna 0.50.3
- 修复
CommandResult.source
获取错误的问题
Full Changelog: v0.50.2...v0.50.3
v0.50.2
What's Changed
Text
和UniMessage
新增replace
方法- 修复 telegram 适配器下按钮无法发送的问题 by @KomoriDev in #60
New Contributors
- @KomoriDev made their first contribution in #60
Full Changelog: v0.50.1...v0.50.2
Nonebot Plugin Alconna 0.50.1
- 修复
AlconnaMatcher.send
会调用两次send_wrapper
的问题 UniMessage
新增方法map
和select
- 移除非必要的
Segment.from_
Full Changelog: v0.50.0...v0.50.1
Nonebot Plugin Alconna 0.50.0
新增
- 增加
Button
与Keyboard
消息段,表示按钮元素与按钮组/按钮矩阵元素。Button
有四种 flag:action
,link
,input
,enter
Keyboard
不传入参数row
时,根据适配器情况自动选择作为一行发送或者换行成按钮矩阵- 只传入
Button
或 只传入Keyboard
时,根据适配器情况自动选择合并为 Keyboard 或展开为 Button
- 增加内建消息段
Markdown
, 负责专门适配QQ
适配器下的 md消息模板- 若
Markdown
只传入了参数content
, 其行为与构造Text(...).markdown()
相同
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 #58
Full Changelog: v0.49.0...v0.50.0
Nonebot Plugin Alconna 0.49.0
新增
UniMessage
新增export_sync
方法,用来同步形式调用.export
方法
from nonebot_plugin_alconna import UniMessage
msg = UniMessage.at("123").text("hello").export_sync(adapter="OneBot V11")
- 新增配置项
ALCONNA_BUILTIN_PLUGINS
, 用来在配置项中声明要加载的内置插件 echo
插件增加配置项NBP_ALC_ECHO_TOME
help
插件增加配置项NBP_ALC_HELP_TEXT
,NBP_ALC_HELP_ALIAS
等help
插件新增命名空间的相关功能(列出,筛选)Command
构造器增加.namespace
改进
MusicShare.brief
字段改名为.summary
TelegramSlashExtension
现在会检查 command 参数是否符合 tg 标准context
中增加bot.self_id
,bot.platform
和adapter.name
三项UniMessage.export
增加adapter
参数表示指定适配器,并将 bot 参数设为严格可选select
方法现在返回一个自定义的SelectPattern
, 其上有.nth()
,.first
,.last
,.from_()
四个方法/属性
from nonebot_plugin_alconna import Image, Video, select
img = select(Image).first
img_in_video = select(Image).from_(Video).nth(1)
- ⬆️ auto update by pre-commit hooks by @pre-commit-ci in #56
Full Changelog: v0.48.0...v0.49.0
Nonebot Plugin Alconna 0.48.0
新增
AlconnaMatcher.test
方法,其用来在 startup 阶段测试 alc 对象的可用性。
matcher = on_alconna(...)
matcher.test("command bar", {"foo": "bar"})
builtins.uniseg.MusicShare
, 对应qq下的音乐分享元素
改进
- feat: support
Media.name
intelegram
adapter by @lgc2333 in #55 AlconnaMatcher.shortcut
现在返回值为 matcher 自身
Full Changelog: v0.47.2...v0.48.0
Nonebot Plugin Alconna 0.47.2
新增
at_me
和at_in
两个 Rule,分别表示消息是否at了bot自己,是否at了指定目标(暂时不考虑尾部at)
改进
- 传入 alc 解析的消息现在不带 reply 了
Full Changelog: v0.47.1...v0.47.2
Nonebot Plugin Alconna 0.47.1
- 修复导入插件时提示
adapter satori: no module xxxxxxxxx
的问题
Full Changelog: v0.47.0...v0.47.1
Nonebot Plugin Alconna 0.47.0
新增
UniMessage.filter
方法,在筛选元素类型的同时可以传入自定义判断条件函数patch_matcher_send
方法,可以将matcher.send
替换为经过 UniMessage 翻译过一次后再发送的情况(例如 ob11 -> uni -> satori)help
插件会根据 alc 命令对应的插件的元数据中的适配器支持条目来选择是否在 help 内显示该指令
改进
-
升级
Tarina
至 0.5.4 -
builtin.uniseg.chronocat
改为builtin.uniseg.market_face
, 并实现了现有适配器中关于商城表情的相关解析 -
patch_matcher_send
和patch_saa
会返回一个dispose
函数,用于还原 patch 行为 -
现在
AlconnaMatcher
和AlconnaRule
对 Alconna 都是弱引用
Full Changelog: v0.46.6...v0.47.0