Skip to content

Releases: ArcletProject/Entari

Entari 0.13.0

26 Jun 13:06

Choose a tag to compare

What's Changed

  • 升级 Letoderea 至 0.17.1 (9d7da0c, 81bd248, 5a96a92)

    • 通过 ExitState.STOPExitState.BLOCK 进行会话控制
    • filter_.xxx 写法变更: @propagate(filter_.xxx, filter_.xxx) -> @filter_.xxx & filter_.xxx
  • 支持开发者自定义拓展读写配置文件格式 (e5f384f, d9de1c0, 1c1017d)

    • 内建 toml 配置文件支持 (104f44c)
      • 启用方法:配置环境变量 ENTARI_CONFIG_EXTENSION'::toml;'
  • 内建 pydantic 配置模型和 msgspec 配置模型的支持 (d921f71, c212c2f)

  • 支持设置外置插件目录 (002cc12)

    • 通过 basic.external_dirs 配置项传入目录路径
  • 支持通过注释的方式将某导入标记为插件导入 (bf97482, eb2da1b)

    • 导入插件,以 # entari: plugin 标记, 例如 from entari_plugin_xxx import foo # entari: plugin
    • 导入子插件,以 # entari: package 标记, 例如 from entari_plugin_xxx import bar # entari: package
  • 配置模型支持双向绑定,即当插件修改模型数据时将自动同步到配置文件中 (37a2c42, b4b5128, 3f4faf0)

  • 卸载某插件时,若其依赖的上游插件仅由该插件导入,也将一并卸载 (f54fb75, 8944e93)

  • command.on 将读取函数 docstring 作为命令描述 (2b68f46)

  • 新增命令行指令 entari plugin newentari plugin test (4829802, 077dfea)

    • plugin test 允许对插件进行简单测试,即测试导入是否成功,然后要求发送一条消息进行命令测试(如有)
  • ⬆️ Bump dependabot/fetch-metadata from 2.3.0 to 2.4.0 by @dependabot in #12

Full Changelog: v0.12.1...v0.13.0

Entari 0.12.1

29 Jan 07:06

Choose a tag to compare

  • 修复 AlconnaDispatcher.assign
  • 增加一个 basic 配置 skip_req_missing, 设置为 True 后可让订阅器在依赖不满足时跳过执行
    Full Changelog: v0.12.0...v0.12.1

Entari 0.12.0

28 Jan 06:48

Choose a tag to compare

What's Changed

  • entari new 命令增加选项 --plugins 来增加加载的插件
  • 更新 Letoderea 到 0.15.0 by @RF-Tar-Railt in #10
    • 不再提供 @Filter().xxx.yyy() 形式的过滤器,可以使用 @propagate(filter_.xxx(), filter_.yyy()) 形式替代
    • 依据 propagate 机制,响应器可以自行实现过滤器,会话控制等功能
  • 增加事件 command/output, command/before_parsecommand/after_parse
    • 任一命令的解析流程都会执行这些事件。插件可以通过监听并返回值来控制解析流程。
    • 例如:监听 command/after_parse 并返回 bool 可控制命令是否执行。
  • yaml 格式的配置文件支持插值语法来使用环境变量: foo: ${{ env.XXX }}
  • 增加选择依赖 dotenv
  • ⬆️ Bump dependabot/fetch-metadata from 2.2.0 to 2.3.0 by @dependabot in #11

Full Changelog: v0.11.2...v0.12.0

Entari 0.11.2

25 Jan 08:51

Choose a tag to compare

  • echo 插件增加转义/反转义选项
  • 增加插件加载/卸载的事件
  • commands 会记录插件中声明了哪些指令
  • 增加基础配置 cmd_count, 默认为 4096

Full Changelog: v0.11.1...v0.11.2

Entari 0.11.1

30 Dec 07:46

Choose a tag to compare

  • 修复 unload_plugin

Full Changelog: v0.11.0...v0.11.1

Entari 0.11.0

30 Dec 07:08

Choose a tag to compare

新增

  • 插件配置现支持传入配置模型类
    • 可以通过 config_validator_register 来注册某一配置基类的处理方法 (例如, 注册 pydantic.BaseModel 的处理方法为 type_validate)
    • plugin_config 可以传入插件定义的配置类使其解析传入的配置数据
    • 内置使用 dataclass 作为配置基类的 BasicConfModel
from arclet.entari import BasicConfModel, plugin_config

class Config(BasicConfModel):
    foo: str
    bar: int = 0

conf = plugin_config(Config)
  • 配置文件的路径可以通过 ENTARI_CONFIG_FILE 环境变量来设置
  • plugin.collectcollect_disposes 方法,用于注册插件卸载时的回调函数
  • 插件配置项 $files, 用于指定部分插件的配置文件路径或目录路径 (例如,在 ./plugins 下存放各插件的独立配置文件, 即可配置 $files: ["./plugins"])

改进

  • 使用 nonestorage 作为 local_data 的依赖
  • 升级至 Letoderea 0.14
  • 插件内使用 es.on 注册的响应器现在也会由插件管理 (除非插件标记自己为 static)
  • startup, readycleanup 事件不再于插件重载时发送

修复

  • 插件子目录下的插件作为独立插件加载时的错误

Full Changelog: v0.10.5...v0.11.0

Entari 0.10.5

17 Dec 10:42

Choose a tag to compare

Entari 0.10.4

17 Dec 10:02

Choose a tag to compare

  • self log展示的消息会把图片等元素的信息抹去
  • 修复 assign 的优先级

Full Changelog: v0.10.3...v0.10.4

Entari 0.10.3

17 Dec 07:55

Choose a tag to compare

  • 再次修复模块导入问题

Full Changelog: v0.10.2...v0.10.3

Entari 0.10.2

17 Dec 06:59

Choose a tag to compare

  • 修复依赖

Full Changelog: v0.10.1...v0.10.2