Skip to content

Releases: ArcletProject/Entari

Entari 0.10.0

16 Dec 05:51
Compare
Choose a tag to compare

新增

  • 内置插件 help 和 inspect
  • MessageChain新方法(select,transform,split等)
  • 基础配置:指令前缀
  • commands新增选项 use_config_prefix
  • 新增 Filter 类,其整合了通用的过滤方法 (选定 guild,channel,user_id,self 等)与消息事件的过滤方法 (public/direct, reply_me, notice_me 等)
  • 插件配置 $prelude,其指定的插件先于其他插件加载,并仅能作为静态插件
plugins:
  $prelude: ["::auto_reload"]
  ::help: {}
  ::auto_reload: {}
  • entari-cli 新增 new 子命令,用来生成配置文件
  • 内置调度器/定时任务服务,并可以动态创建任务 (需要插件配置 .scheduler 来启用)
  • 内置频次控制、并发限制的辅助器
  • 内置本地数据存储目录/临时目录的提供

改进

  • 使用 satori v1.2
  • 直接使用 plugin 的所有键作为要导入的插件列表
  • 通过在插件名字前加上 ~ 来表示禁用插件
  • auto_reload插件可监听配置文件的修改并执行重载插件本体或应用插件新配置 (通过 watch_config 启用)
  • commands 将 need_tome 配置分割为need_replyme和need_noticeme
  • 插件配置支持传入黑名单/白名单过滤器 ($allow/$deny)
plugins:
  foo:
    $allow:
      channel: ["xxxxxx"]
      $or:
        direct: true
    $deny:
      user: ["xxxxxx"]
  • 插件可声明自己为静态插件,以忽略重载操作(静态插件不能通过插件来监听事件)
  • entari 指令改为 entari run

修复

  • 子插件与附属插件的导入

Full Changelog: v0.9.0...v0.10.0

v0.10.0rc2

14 Dec 09:28
Compare
Choose a tag to compare
v0.10.0rc2 Pre-release
Pre-release

Full Changelog: v0.10.0rc1...v0.10.0rc2

v0.10.0rc1

10 Dec 17:36
Compare
Choose a tag to compare
v0.10.0rc1 Pre-release
Pre-release

Full Changelog: v0.9.0...v0.10.0rc1

Entari 0.9.0

04 Dec 03:21
Compare
Choose a tag to compare
  • 增加事件 SendResponse 表示消息发送后 (与 SendRequest 对应)
  • 增加了一个 cli entari 用来便捷的根据配置文件启动 Entari
  • 美化 logger
  • 升级 Letoderea 到 0.12.1
  • config:basic.pluginsconfig:plugins 合并,现在可以通过 plugins: XXX: trueplugins: XXX: {} 表示启用插件

Full Changelog: v0.8.2...v0.9.0

Entari 0.8.2

26 Nov 13:28
Compare
Choose a tag to compare
  • 实现了 before_send (即发送消息前的钩子函数)

Full Changelog: v0.8.1...v0.8.2

Entari 0.8.1

26 Nov 10:09
Compare
Choose a tag to compare
  • 升级 Letoderea 至 0.12.0
  • command 新增 execute 函数,用以向全局广播命令并取得特定处理结果
  • AlconnaPluginDispatcher 增加 on_execute 装饰器,用来处理命令对 execute 传入的消息的解析结果

Full Changelog: v0.8.0...v0.8.1

Entari 0.8.0

28 Oct 07:16
Compare
Choose a tag to compare

新增

  • Entari 增加参数 ignore_self_message,默认为 True

改进

  • ProxyModule 使用 weakref.proxy 替代
  • 升级 satori 至 0.15.0
  • 升级 Alconna 至 1.8.31
  • 当插件为多级(>2)结构时,每一级都是其子级的父模块

Full Changelog: v0.7.0...v0.8.0

Entari 0.7.0

01 Oct 08:06
Compare
Choose a tag to compare

新增

  • 子插件机制:
    • 导入插件时可以通过提前使用 package(xxx) 来声明某个模块为当前插件的子模块。模块的更新、重载会一并作用给子模块。
    • 若插件为目录结构,除 __init__.py 外的其他模块会自动作为子模块
    • 若不想使某个模块作为子模块,可以使用 load_plugin(xxx)
  • 重载机制:
    • 当使用 load_plugin 时,Entari 会修改实际导入的代码,使得一个模块只受插件管理。原模块会使用 ProxyModule 替代
    • 同时,若原模块在其他插件下存在导入并引用时,Entari 会记录这一依赖行为
    • 当对插件进行重载时,原模块即被销毁,创建新模块后,Entari 会依据依赖链将下游所有模块一并重载
  • 插件配置:load_plugin 可以传入 config: dict 参数
  • 插件服务:Plugin 可以通过 .serive 方法挂载一个 Laurart 服务,该服务会在插件被销毁时一并释放
  • 跨重载对象:可以使用 keeping("foo", xxx) 来标记一个对象,使得其在插件重载后对象维持不变。
  • 内置插件:
    • auto_reload : 依赖 watchfiles, 根据配置传入的插件目录位置,检测到更改后自动重载该插件(即热重载)
    • echo: 顾名思义

改进

  • 升级 satori 至 0.15.0rc2
  • 升级 Alconna 至 1.8.30

Full Changelog: v0.6.4...v0.7.0

Entari 0.6.4

27 Jul 15:56
Compare
Choose a tag to compare
  • 修复导入bug

Full Changelog: v0.6.3...v0.6.4

Entari 0.6.3

26 Jul 16:52
Compare
Choose a tag to compare
  • 收到消息事件后现在会有log显示
  • 修复 dispatch 失效的问题

Full Changelog: v0.6.2...v0.6.3