现代化 Telegram Bot 开发框架
基于 Node.js 和 TypeScript 构建,提供强大的插件系统和丰富的功能模块
|
🔄 动态插件加载 🏷️ 命令别名系统 🎯 多命令支持 👂 消息监听器 |
⚙️ 系统管理 🛡️ 权限控制 🌐 远程插件 💻 Shell 执行 🔍 信息查询 |
🔒 TypeScript 🚀 异步架构 🛠️ 错误处理 💾 内存优化 |
📁 点击展开项目结构
📦 TeleBox/
├── 🎯 src/ # 核心源代码
│ ├── 🚪 index.ts # 应用入口点
│ ├── 🔌 plugin/ # 内置插件目录
│ │ ├── 📖 help.ts # 帮助系统
│ │ ├── 📦 tpm.ts # 插件管理器
│ │ ├── 🆔 id.ts # 信息查询
│ │ ├── 👑 sudo.ts # 权限管理
│ │ ├── 💻 exec.ts # Shell 执行
│ │ ├── 🏓 ping.ts # 网络测试
│ │ ├── 📊 sysinfo.ts # 系统信息
│ │ └── 🔧 ... # 其他内置插件
│ └── 🛠️ utils/ # 工具库
│ ├── ⚙️ pluginManager.ts # 插件管理核心
│ ├── 🔗 entityHelpers.ts # Telegram 实体处理
│ ├── 🔐 loginManager.ts # 登录管理
│ ├── 💬 conversation.ts # 对话管理
│ └── 🧰 ... # 其他工具
├── 🔌 plugins/ # 用户插件目录
├── 📁 assets/ # 静态资源
├── 💾 my_session/ # 会话文件
├── 📂 temp/ # 临时文件
├── ⚙️ package.json # 项目配置
├── 📝 tsconfig.json # TypeScript 配置
└── 📋 INSTALL.md # 安装文档
// 🎨 现代化的插件抽象类设计
abstract class Plugin {
// 📝 必需属性 - 插件描述(支持动态生成)
abstract description:
| string
| ((...args: any[]) => string | void)
| ((...args: any[]) => Promise<string | void>);
// ⚡ 必需属性 - 命令处理器映射表
abstract cmdHandlers: Record<
string,
(msg: Api.Message, trigger?: Api.Message) => Promise<void>
>;
// 👂 可选属性 - 消息监听器
listenMessageHandler?: (msg: Api.Message) => Promise<void>;
// 🎯 可选属性 - 事件处理器
eventHandlers?: Array<{
event?: any;
handler: (event: any) => Promise<void>;
}>;
// ⏰ 可选属性 - 定时任务
cronTasks?: Record<string, {
cron: string;
description: string;
handler: (client: TelegramClient) => Promise<void>;
}>;
}
// 💡 trigger 参数说明:
// 用于 sudo 用户权限传递,如 eat 插件获取 sudo 用户头像
// 示例:.sudo eat @target -> trigger 为 sudo 用户的消息|
🔤 多前缀支持 🧪 开发模式 🧠 智能解析 💬 错误处理 |
👑 sudo 系统 📋 用户白名单 🔒 安全执行 🔐 会话管理 |
| 🔌 插件 | ⌨️ 命令 | 📋 功能描述 |
|---|---|---|
| 📖 help | h, help |
🎯 帮助系统和命令列表 |
| 📦 tpm | tpm |
🔧 插件管理器(安装/卸载/搜索) |
| 🛠️ debug | id, entity, msg, echo |
🔍 调试工具:获取用户/群组/频道详细信息 |
| 👑 sudo | sudo |
🛡️ 权限管理和用户授权 |
| 💻 exec | exec |
🔒 安全的 Shell 命令执行 |
| 🏓 ping | ping |
🌐 网络延迟测试工具 |
| 📊 sysinfo | sysinfo |
📈 系统信息监控 |
| 🏷️ alias | alias |
🔄 命令别名管理 |
| 🔄 update | update |
⬆️ 系统更新管理 |
| 📦 bf | bf |
💾 数据备份工具 |
| 🔄 reload | reload, exit |
♻️ 插件重新加载和进程管理 |
| 📜 sendlog | sendlog, logs, log |
📤 日志文件发送工具 |
| 🔁 re | re |
🗣️ 消息复读工具 |
| ✅ sure | sure |
🤔 确认操作工具 |
🎪 丰富的插件生态系统
🔍 查看可用插件 →
.tpm search/.tpm s
📥 安装插件 →.tpm install <插件名>/.tpm i <插件名>
📦 批量安装 →.tpm i <插件1> <插件2> <插件3>
🌟 一键安装全部 →.tpm i all
📁 从文件安装 → 回复文件 +.tpm install
🗑️ 卸载插件 →.tpm remove <插件名>/.tpm rm <插件名>
🗂️ 批量卸载 →.tpm rm <插件1> <插件2> <插件3>
🔄 一键更新全部 →.tpm update/.tpm ua
📋 查看已安装 →.tpm list/.tpm ls
📊 详细列表 →.tpm list -v/.tpm lv
📤 上传插件 →.tpm upload <插件名>/.tpm ul <插件名>
| 🏗️ 技术领域 | 🔧 技术选型 | 📊 版本 |
|---|---|---|
| 🚀 运行时 | Node.js | 20.19.4 |
| 💎 开发语言 | TypeScript | 5.9.2 |
| 📡 Telegram 库 | GramJS | 2.26.22 |
| 💾 数据库 | better-sqlite3 | 12.2.0 |
| 💾 数据库 | lowdb | 7.0.1 |
| ⚡ 构建工具 | tsx + tsconfig-paths | latest |
| 🌐 HTTP 客户端 | axios | 1.11.0 |
| 🖼️ 图像处理 | sharp | 0.34.3 |
| 🧰 工具库 | lodash | 4.17.21 |
| ⏰ 任务调度 | cron | 4.3.3 |
|
🔍 信息查询 .help # 📖 查看所有命令
.help <命令> # 📝 查看特定命令帮助
.id # 🆔 获取当前聊天信息 |
🔧 插件管理 .tpm search # 🔍 查看远程插件列表
.tpm i <插件名> # 📥 安装插件
.sudo add <用户> # 👑 添加 sudo 权限 |
# 🚀 启动开发模式
NODE_ENV=development tpm run dev💡 开发模式下使用 ! 和 ! 作为命令前缀