基于 prompt_toolkit 的多账户终端框架 · 插件化事件驱动架构
- 事件驱动 — 基于事件的松耦合架构,插件之间通过事件通信
- 插件系统 — 热加载/卸载/重载,动态扩展功能
- Tab 补全 — 命令自动补全 + AutoSuggest 用法提示
- 绑定过滤 — 将事件按账户路由到指定插件
- 计划任务 — 内置调度器,支持延迟/循环事件触发
- 日志系统 — 多级日志、按日期归档、latest.log 实时追踪
pip install -r requirements.txt
python app.pyAkatsuki/
├── app.py # 入口
├── requirements.txt # 依赖
├── libs/ # ◈ 框架层(不依赖任何插件)
│ ├── command.py # 命令注册与派发
│ ├── completer.py # Tab 补全 + AutoSuggest
│ ├── config.py # JSON 配置文件读写
│ ├── events.py # 事件系统(EventPayload + 绑定过滤)
│ ├── handle.py # 输入处理
│ ├── kbcontrol.py # 键盘绑定
│ ├── loader.py # 插件加载/卸载/重载
│ ├── logger.py # 日志系统(等级控制 + 线程安全)
│ ├── render.py # 模板渲染
│ ├── scheduler.py # 计划任务(延迟/循环)
│ ├── session.py # 账户与会话管理
│ └── uicontrol.py # UI 布局
├── plugins/ # ◈ 插件层
│ ├── Debug.py # 🔧 日志等级切换【内置】
│ └── PluginMgr.py # 🔧 插件管理器【内置】
├── config/
│ └── core/ # 核心配置(logger.json, render.json)
├── docs/ # 模块文档
└── logs/ # 日志文件(.log)
| 命令 | 来源 | 说明 |
|---|---|---|
/exit |
内置 | 退出程序 |
/clear |
内置 | 清屏 |
/debug |
Debug | 查看/切换日志等级 |
/plugin |
PluginMgr | 插件生命周期管理 |
from libs import command, events, logger
META = {"name": "MyPlugin", "version": "1.0.0", "author": "you", "description": "..."}
@events.on_event("init_plugins")
def on_start(payload):
payload.log.info("loaded!")
@command.register("/hello")
def hello(*args):
payload.log.info(f"Hello, {args}!")详细教程见 docs/tutorial.md。
各模块文档见 docs/ 目录。
GNU General Public License v3.0 — 详见 LICENSE。
Powered by CNlongY-Py · Akatsuki