Files
NeoBot/docs/project-structure.md
K2cr2O1 56b1014419 refactor(core): 重构核心模块结构并添加开发文档
将核心模块按功能重新组织为更清晰的结构,包括 managers、handlers 和 utils 目录
添加完整的开发文档,涵盖快速开始、项目结构、核心概念和插件开发指南
更新所有相关模块的导入路径以匹配新的结构
将单例模式实现提取到单独的 singleton.py 文件
2026-01-07 22:51:27 +08:00

3.9 KiB
Raw Blame History

项目结构解析

理解 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.jsonpermissions.json
  • handlers/: 定义了最底层的事件处理器,如 MessageHandler,负责从 ws.py 接收原始事件并进行初步处理和分发。
  • managers/: 包含一系列全局单例管理器,是框架功能的核心实现。例如,CommandManager 负责指令注册与匹配,PermissionManager 负责权限控制。
  • utils/: 提供被广泛使用的工具类,如 logger (日志)、singleton (单例模式基类)。
  • bot.py: 定义了 Bot 类,这是插件开发者最常与之交互的对象,用于调用所有 OneBot API。
  • config_loader.py: 负责解析 config.toml 文件,并提供一个全局的 global_config 对象。
  • 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 第三方库及其版本。