Releases: ArcletProject/Entari
Releases · ArcletProject/Entari
Entari 0.8.0
新增
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
新增
- 子插件机制:
- 导入插件时可以通过提前使用
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
- 修复导入bug
Full Changelog: v0.6.3...v0.6.4
Entari 0.6.3
- 收到消息事件后现在会有log显示
- 修复
dispatch
失效的问题
Full Changelog: v0.6.2...v0.6.3
Entari 0.6.2
AlconnaDispatcher
增加.assign
方法- 常规的
PluginDispatcher
现在可以直接用__call__去声明订阅者:
disp_message = MessageEvent.dispatch()
@disp_message
async def _(): ...
Full Changelog: v0.6.1...v0.6.2
Entari 0.6.1
- 紧急修复插件导入相关代码以避免干扰正常模块导入
Full Changelog: v0.6.0...v0.6.1
Entari 0.6.0
破坏性改动
- 修改原有插件写法,具体有:
plugin = Plugin()
=>__plugin_metadata__ = PluginMetadata()
plugin.dispatch()
=>from arclet.entari import plugin; plugin.dispatch()
或XXXEvent.dispatch()
plugin.mount(Alconna(...))
=>from arclet.entari import command; command.mount(Alconna(...))
from arclet.entari import EntariCommands; command = EntariCommands()
=>from arclet.entari import command
新增
dispose_plugin
: 可卸载加载过的插件,并且据此可以在程序运行期间进行动态更新插件本体(无法更新上游依赖)
改进
- Bump dependabot/fetch-metadata from 2.1.0 to 2.2.0 by @dependabot in #8
Full Changelog: v0.5.1...v0.6.0
Entari 0.5.1
- 升级
arclet-letoderea
到 0.11.0 - 加载插件出错时在日志显示错误信息
session.prompt
增加参数keep_sender
来配置是否只允许会话发起者回复
Full Changelog: v0.5.0...v0.5.1
Entari 0.5.0
- 升级
satori-python
至 0.13.0 ContextSession
改名为Session
Full Changelog: v0.4.1...v0.5.0
Entari 0.4.1
- 在
Entari
上增加了on
和on_message
方法,以便不经过插件直接挂载处理函数
Full Changelog: v0.4.0...v0.4.1