94 lines
3.9 KiB
Markdown
94 lines
3.9 KiB
Markdown
# Calglau BOT by NEO Bot Framework
|
||
|
||
> **[INTERNAL USE ONLY]**
|
||
>
|
||
> 本仓库为 Calglau BOT 的内部开发版本,请遵守相关保密协议。
|
||
|
||
**Powered by NEO Bot Framework**
|
||
|
||
## 项目概述
|
||
|
||
**Calglau BOT** 是一个基于 NEO Bot Framework 构建的高性能 QQ 机器人。
|
||
|
||
简单来说:扣一
|
||
|
||
### 核心特性
|
||
|
||
* **模块化插件架构**:所有功能都在 `plugins/` 目录,开发者可轻松扩展
|
||
* **极致性能优化**:
|
||
* **Python 3.14 JIT**:运行时热点代码编译成机器码
|
||
* **Mypyc AOT编译**:核心模块编译为C扩展
|
||
* **Playwright 页面池**:浏览器页面预热池,降低截图延迟
|
||
* **全局连接复用**:HTTP 和 Redis 连接池化管理
|
||
* **开发者友好**:完整的类型提示,清晰的 API 设计
|
||
* **集成 Redis 缓存**:缓存帮助图片、权限数据、会话状态等
|
||
* **正向 WebSocket 连接**:仅支持正向WS连接模式(Bot主动连接OneBot)
|
||
|
||
### 技术栈
|
||
|
||
* **核心框架**: Python 3.14 JIT & NEO Bot Framework
|
||
* **编译器**: Mypyc
|
||
* **异步核心**: `asyncio` + `uvloop` (Linux) / 原生 Loop (Windows)
|
||
* **网络通信**: `websockets` (OneBot v11), `aiohttp` (Shared Session)
|
||
* **浏览器引擎**: `Playwright` (Chromium) + Page Pool
|
||
* **数据序列化**: `orjson`
|
||
* **缓存**: `Redis`
|
||
* **日志**: `Loguru`
|
||
|
||
---
|
||
|
||
## 项目结构
|
||
|
||
```
|
||
.
|
||
├── plugins/ # 插件目录,业务逻辑都在这
|
||
│ ├── admin.py # 权限管理(Admin/User两级权限)
|
||
│ ├── auto_approve.py # 自动同意好友请求和群邀请
|
||
│ ├── bot_status.py # Bot运行状态查询(图片形式)
|
||
│ ├── broadcast.py # 管理员专用广播功能
|
||
│ ├── code_py.py # Python代码沙箱执行
|
||
│ ├── echo.py # Echo/点赞功能
|
||
│ ├── furry.py # Furry图片获取
|
||
│ ├── github_parser.py # GitHub仓库链接解析
|
||
│ ├── jrcd.py # 今日人品/长度查询
|
||
│ ├── thpic.py # 东方Project随机图片
|
||
│ ├── web_parser/ # Web链接解析系统(B站、抖音、GitHub等)
|
||
│ └── sync_async_test_plugin.py # 异步同步混用测试插件
|
||
├── core/ # 框架核心,非请勿动
|
||
│ ├── api/ # OneBot API 封装
|
||
│ ├── handlers/ # 事件处理器
|
||
│ ├── managers/ # 各种管理器 (指令, 浏览器, 图片, 插件, 权限)
|
||
│ ├── utils/ # 工具函数
|
||
│ ├── ws.py # WebSocket 通信层 (已编译)
|
||
│ ├── bot.py # Bot 实例
|
||
│ ├── config_loader.py # 配置加载
|
||
│ └── permission.py # 权限枚举
|
||
├── data/ # 数据存储
|
||
│ ├── admin.json # 管理员名单
|
||
│ └── permissions.json # 权限配置
|
||
├── models/ # 数据模型
|
||
│ ├── events/ # OneBot事件模型
|
||
│ ├── message.py # 消息段模型
|
||
│ ├── sender.py # 发送者信息
|
||
│ └── objects.py # API响应对象
|
||
├── templates/ # Jinja2模板(用于图片生成)
|
||
├── docs/ # 开发文档
|
||
├── tests/ # 单元测试
|
||
├── setup_mypyc.py # Mypyc编译脚本
|
||
├── config.toml # 配置文件
|
||
└── main.py # 启动入口
|
||
```
|
||
|
||
## 快速开始
|
||
|
||
1
|
||
|
||
|
||
1. **装环境**: Python 3.14,Redis, OneBot 客户端 (推荐 NapCat)。
|
||
2. **装依赖**: `pip install -r requirements.txt`
|
||
3. **装浏览器**: `playwright install chromium`
|
||
4. **编译核心 (可选)**: `python setup_mypyc.py build_ext --inplace`
|
||
5. **启动**: `python -X jit main.py`
|
||
|
||
详细文档去 `docs/` 目录看
|