Files
NeoBot/docs/project-structure.md
K2cr2O1 6e659c2d02 refactor: 清理未使用的导入和更新文档结构
docs: 添加config_models.py到项目结构文档
docs: 调整数据目录位置到core/data下
docs: 更新权限管理器文档描述
2026-01-09 04:44:52 +08:00

71 lines
4.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 项目结构解析
理解 NEO Bot Framework 的项目结构是高效开发的第一步。本节将详细介绍每个主要目录和文件的用途。
```
.
├── core/ # 框架核心代码
│ ├── api/ # OneBot v11 API 的 Mixin 封装
│ ├── data/ # 核心模块的数据存储 (admin, permissions)
│ ├── handlers/ # 底层事件处理器 (message, notice, request)
│ ├── managers/ # 核心单例管理器 (command, permission, etc.)
│ ├── utils/ # 通用工具 (logger, singleton, etc.)
│ ├── bot.py # Bot 核心类,提供 API 调用接口
│ ├── config_loader.py # TOML 配置文件加载器
│ └── ws.py # WebSocket 底层通信模块
├── docs/ # 开发文档
├── html/ # 静态网页文件 (用于 Web 仪表盘等)
├── models/ # 数据模型 (事件, 消息段)
│ ├── events/ # OneBot v11 事件的 Python 对象封装
│ ├── message.py # 消息段 (MessageSegment) 的定义
│ └── ...
├── plugins/ # 功能插件目录
├── venv/ # Python 虚拟环境 (推荐)
├── .gitignore # Git 忽略文件配置
├── config.toml # 主配置文件
├── main.py # 项目启动入口
└── requirements.txt # Python 依赖列表
```
## 顶层目录
### `core/`
这是框架的心脏,包含了所有核心逻辑。**通常情况下,您不需要修改此目录下的代码**,只需了解其工作原理即可。
* `api/`: 将 OneBot v11 的 API 按功能(如 `message`, `group`)拆分为多个 `Mixin` 类,最终由 `bot.py` 继承,提供了清晰的 API 结构。
* `data/`: 存放核心模块所需的数据文件,例如 `admin.json``permissions.json`
* `handlers/`: 定义了最底层的事件处理器,如 `MessageHandler`,负责从 `ws.py` 接收原始事件并进行初步处理和分发。
* `managers/`: 包含一系列全局单例管理器,是框架功能的核心实现。例如,`CommandManager` 负责指令注册与匹配,`PermissionManager` 负责权限控制。
* `utils/`: 提供被广泛使用的工具类,如 `logger` (日志)、`singleton` (单例模式基类)。
* `bot.py`: 定义了 `Bot` 类,这是插件开发者最常与之交互的对象,用于调用所有 OneBot API。
* `config_loader.py`: 负责解析 `config.toml` 文件,并提供一个全局的 `global_config` 对象。
* `config_models.py`: 使用 Pydantic 定义了配置文件的结构和类型验证。
* `ws.py`: 实现了与 OneBot v11 实现端的 WebSocket 连接、心跳、重连和消息收发。
### `docs/`
存放项目的所有开发文档。
### `html/`
用于存放未来 Web 仪表盘或其他 Web 功能所需的静态资源HTML, CSS, JavaScript
### `models/`
定义了将 OneBot v11 的 JSON 数据转换为易于使用的 Python 对象。
* `events/`: 将所有上报的事件(如 `MessageEvent`, `GroupIncreaseNoticeEvent`)封装为带有类型提示的类。
* `message.py`: 提供了 `MessageSegment` 类,用于构建复杂的消息内容(如 @某人、发送图片)。
### `plugins/`
这是**插件开发者最关心的目录**。所有机器人的功能都以独立的 `.py` 文件形式存放在这里。框架会自动加载此目录下的所有插件,并支持热重载。
## 顶层文件
* `.gitignore`: 配置 Git 应忽略的文件和目录,如 `__pycache__``venv` 等。
* `config.toml`: 项目的主配置文件用于设置机器人、数据库、API 等所有可变参数。
* `main.py`: 项目的启动入口脚本。它负责初始化日志、加载插件、启动 WebSocket 连接和文件监控(用于热重载)。
* `requirements.txt`: 列出了项目运行所需的所有 Python 第三方库及其版本。