Releases: ArcletProject/Entari
Releases · ArcletProject/Entari
Entari 0.17.4
- 修复在目录形式插件的模块下获取不到子插件配置项的问题(即,在
foo.plugins.bar.config拿foo: .plugins.bar配置项)
Full Changelog: v0.17.3...v0.17.4
Entari 0.17.3
- 基础配置项增加
nickname,与prefix同级 .commands增加配置项ignore_prefix_filter, 用来指定可忽略prefix / nickname 的条件。默认为 "当前会话为私聊"- 增加3个内置插件:
chuck_norris,translate和pipe
Full Changelog: v0.17.2...v0.17.3
Entari 0.17.2
- 现在插件目录下的所有子插件不再以嵌套的形式注册
BasicConfModel引入extra的 metadata 构造字段,以使得 schema 生成时控制additionalProperties- 适配 Python 3.14 为
dataclasses.Field引入的doc字段 (#18)
Full Changelog: v0.17.1...v0.17.2
Entari 0.17.1
- 修复若干问题
- 子插件用 plugin_config(bind=True) 报错的问题
Full Changelog: v0.17.0...v0.17.1
Entari 0.17.0
破坏性改动
- 移动并重新组织配置相关模块,
BasicConfModel和model_field现从config.model导入(而非config.file) - 指令系统移除了全局
Entari命名空间,改进了命令管理机制 - 插件配置项中的
$filter现在改为编写 python 表达式代码的形式(而非原先的结构化字典)- 样例:
plugins: xxxx: $filter: channel.id in [xxx] or channel.type is direct
- filter 表达式的可用变量包括:
channel,member,guild,user,env,message,platform等 - 除开 python 允许的运算符外,filter 表达式中也可以使用语义化的运算符,如
gt,eq,nin等 - filter 表达式中可以使用一个函数
regex, 等价于re.match - filter 表达式中乘法、幂运算、整除和位运算都已禁用
新增
- 多 .env 文件支持,默认读取
.env和.env.local, 在.env中指定ENVIRONMENT变量后可以再读取.env.xxxx - 子插件允许读取父插件配置下嵌套的插件配置, 这要求子插件的配置键以
.开头:plugins: foo: # .plugins.bar 下的配置将作为 foo.plugins.bar 子插件的配置 # 但是注意,这需要你在 foo 插件内加载 foo.plugins.bar 子插件 .plugins.bar: xxxx: 123 baz: "abc"
schema: true配置项可为$files中声明的独立插件配置生成对应的 schema 文件- 插件配置项
$disable, 可以像filter那样编写 python 表达式来声明插件的禁用条件:- 样例:
plugins: xxxx: $disable: env.ENVIRONMENT == "prod" # 在 prod 环境下禁用该插件
- 不同于 filter, disable 只能使用
env和config两个变量
- 命令解析结果和调度器执行的调试输出 (需要日志等级为 debug)
- 命令选项的值现在可直接作为依赖注入参数(例如 Option("--flag", action=store_true, default=False) 对应
flag: bool) session.prompt增加priority参数,用于自定义 prompt 等待的优先级
改进
satori-python升级至 1.3.0- 新增
Member.roles获取成员角色 - 新增
referrer字段,用于被动消息的发送 (例如 qq 平台)
- 新增
Letoderea升级至 0.20.7- 允许监听父事件来处理子事件
deref可以写在依赖注入的默认值位置Propagator允许声明 providers
- 系统环境变量将覆盖从 dotenv 读取的环境变量
- 插件复用机制现在可以用于子插件
plugins: foo: .plugins.bar@1: xxxx: 123 .plugins.bar@2: xxxx: 123
schema: true配置项现在将强制在配置文件中声明 schema 信息requires在声明导入模块是插件时可以使用模块本体:from arclet.entari import requires import entari_plugin_xxxxxx requires(entari_plugin_xxxxxx)
before-send和after-send中的channel现在注入类型为Channel了collect_dispose可以传入异步的清理函数了- 若有响应器使用了
session.prompt并在后续又有正常结束的调用,则先前的session.prompt等待会自动结束
修复
- 修复子插件无法获取配置的问题
- 命令响应声明了多个 listener 时,调用
--help不再引起多个响应 - 修复
.toml配置文件加载和转储问题 - 修复
echo指令中--escape选项的处理逻辑 - 修复插件禁用时的 Service 关闭问题
Full Changelog: v0.16.8...v0.17.0
Entari 0.17.0-RC5
Full Changelog: v0.17.0rc4...v0.17.0rc5
Entari 0.17.0-RC4
Full Changelog: v0.17.0rc3...v0.17.0rc4
Entari 0.17.0-RC3
Full Changelog: v0.17.0rc2...v0.17.0rc3
Entari 0.17.0-RC2
Full Changelog: v0.17.0rc1...v0.17.0rc2
Entari 0.17.0-RC1
What's Changed
- ⬆️ Bump actions/checkout from 5 to 6 by @dependabot[bot] in #15
- ⬆️ Bump dependabot/fetch-metadata from 2.4.0 to 2.5.0 by @dependabot[bot] in #16
Full Changelog: v0.16.8...v0.17.0rc1