Skip to content

Releases: ArcletProject/Entari

Entari 0.17.4

20 Mar 12:35

Choose a tag to compare

  • 修复在目录形式插件的模块下获取不到子插件配置项的问题(即,在 foo.plugins.bar.configfoo: .plugins.bar 配置项)

Full Changelog: v0.17.3...v0.17.4

Entari 0.17.3

18 Mar 01:23

Choose a tag to compare

  • 基础配置项增加 nickname,与 prefix 同级
  • .commands 增加配置项 ignore_prefix_filter, 用来指定可忽略prefix / nickname 的条件。默认为 "当前会话为私聊"
  • 增加3个内置插件: chuck_norris, translatepipe

Full Changelog: v0.17.2...v0.17.3

Entari 0.17.2

09 Mar 01:12

Choose a tag to compare

  • 现在插件目录下的所有子插件不再以嵌套的形式注册
  • BasicConfModel 引入 extra 的 metadata 构造字段,以使得 schema 生成时控制 additionalProperties
  • 适配 Python 3.14 为 dataclasses.Field 引入的 doc 字段 (#18)

Full Changelog: v0.17.1...v0.17.2

Entari 0.17.1

02 Mar 08:24

Choose a tag to compare

  • 修复若干问题
    • 子插件用 plugin_config(bind=True) 报错的问题

Full Changelog: v0.17.0...v0.17.1

Entari 0.17.0

01 Mar 12:59

Choose a tag to compare

破坏性改动

  • 移动并重新组织配置相关模块,BasicConfModelmodel_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 只能使用 envconfig 两个变量
  • 命令解析结果和调度器执行的调试输出 (需要日志等级为 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-sendafter-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

27 Feb 08:22

Choose a tag to compare

Entari 0.17.0-RC5 Pre-release
Pre-release

Full Changelog: v0.17.0rc4...v0.17.0rc5

Entari 0.17.0-RC4

25 Feb 04:04

Choose a tag to compare

Entari 0.17.0-RC4 Pre-release
Pre-release

Full Changelog: v0.17.0rc3...v0.17.0rc4

Entari 0.17.0-RC3

12 Feb 03:45

Choose a tag to compare

Entari 0.17.0-RC3 Pre-release
Pre-release

Full Changelog: v0.17.0rc2...v0.17.0rc3

Entari 0.17.0-RC2

05 Feb 12:30

Choose a tag to compare

Entari 0.17.0-RC2 Pre-release
Pre-release

Full Changelog: v0.17.0rc1...v0.17.0rc2

Entari 0.17.0-RC1

02 Feb 07:58

Choose a tag to compare

Entari 0.17.0-RC1 Pre-release
Pre-release

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