📌 系统概览
YMPT Bot是一套专业级Telegram机器人管理系统,采用前后端分离架构,基于SpringBoot 3.4.2和Vue 3.5.13开发。系统为Telegram社群管理者提供全方位的管理解决方案,核心功能包括多机器人配置管理、定时与手动消息推送、违规内容智能审核、用户行为管理、自定义交互键盘以及欢迎消息模板等。
该系统支持轮询和Webhook两种运行模式,可灵活配置机器人参数并实现热加载。通过Redis缓存和Druid连接池优化性能,使用JWT和BCrypt保障系统安全。系统内置多种违规处理策略,支持自动警告、删除消息、禁言和踢出用户等操作,并详细记录违规日志。
YMPT Bot适用于企业社群营销、教育培训社区和兴趣爱好群组等多种场景,能有效提升社群运营效率,减轻管理员工作负担,维护社群良好秩序。系统界面友好,操作简便,是现代化Telegram社群管理的理想选择。
👁 演示
- 演示频道:@ymptpd
- 演示群组:@ymptqz
- 演示机器人:@ymptbot
- 机器人开发:@ymptcc
✨ 核心功能
🤖 机器人配置管理
🔧 灵活的机器人设置
- 多机器人配置支持,一套系统管理多个Bot
- 自定义机器人用户名、名称、描述和介绍
- 一键切换当前使用的机器人
- 配置热加载,无需重启即可生效
- 自定义机器人头像和命令菜单
- 支持轮询和Webhook运行模式
📣 索引系统与推送系统
📢 智能化消息推送
- 支持定时推送和手动推送两种方式
- 推送模板管理,一次创建多次使用
- 多群组同时推送,提高工作效率
- 推送日志记录,轻松追踪发送状态
- 支持富文本内容,包括图片、链接和格式化文本
⌨️ 自定义软键盘
🎮 交互体验升级
- 自定义按钮文本和排序
- 支持命令触发和链接跳转两种类型
- 分类管理,构建层级菜单
- 一键启用/禁用特定按钮
- 通过后台可视化配置,无需代码知识
🛡️ 违规词汇管理
🔍 智能内容监控
- 自定义违禁词库,自动检测违规内容
- 灵活的处罚策略,支持警告、禁言和踢出等多级处罚
- 用户违规记录管理,累计违规自动升级处罚
- 违规日志详细记录,便于追溯和分析
- 支持正则表达式匹配,提高检测精准度
👋 欢迎消息模板
🎉 温馨的新成员迎接
- 自定义欢迎消息内容和格式
- 支持变量替换,如用户名、群组名等
- 群组专属欢迎语,彰显群组特色
- 支持图文混合的欢迎消息
- 带有引导按钮,帮助新成员快速了解群规
👤 用户管理系统
👥 完善的用户体系
- 管理员权限分级,细化操作权限
- JWT认证保障系统安全
- 用户行为跟踪,精准分析群组活跃度
- 黑名单管理,有效防止问题用户
- 用户数据统计,掌握群组发展趋势
🔧 技术架构
后端架构
- 基础框架:Spring Boot 3.4.2
- 数据持久层:MyBatis-Plus 3.5.11
- 数据库:MySQL 8.0.30
- 缓存:Redis
- 连接池:Druid 1.2.24
- API文档:Knife4j 4.6.0
- Telegram API:Telegrambots 6.9.7.1
- 安全认证:JWT + BCrypt
- 工具库:Hutool、FastJSON2、Apache Commons
前端架构
- 基础框架:Vue 3.5.13
- UI组件库:Element Plus 2.9.7
- 状态管理:Pinia 3.0.1
- 路由:Vue Router 4
- HTTP客户端:Axios 1.8.4
- 富文本编辑:Quill 2.0.3
- 打包工具:Vite 6.2.0
💼 系统架构详解
后端模块结构
src/main/java/com/geordie/telegram/bot/
├── YmptBotApplication.java # 应用程序入口
├── BotInitializer.java # 机器人初始化器
├── webhook/ # Webhook模式支持
└── ympt/ # 核心业务模块
├── YmptBot.java # 机器人主类
├── business/ # 业务逻辑层
│ ├── common/ # 通用枚举和常量
│ └── service/ # 业务服务接口和实现
├── common/ # 通用工具和helpers
├── config/ # 系统配置类
├── controller/ # 接口控制器
├── database/ # 数据库相关
│ ├── domain/ # 实体类
│ ├── mapper/ # MyBatis映射器
│ └── service/ # 数据库服务层
├── other/ # 其他功能模块
└── service/ # 系统服务层
前端模块结构
web/src/
├── main.ts # 应用入口
├── App.vue # 根组件
├── api/ # API接口定义
├── assets/ # 静态资源
├── components/ # 公共组件
├── layout/ # 布局组件
├── router/ # 路由配置
├── store/ # 状态管理
├── styles/ # 全局样式
├── types/ # 类型定义
├── utils/ # 工具函数
└── views/ # 页面视图
├── announcement/ # 公告管理
├── bot-config/ # 机器人配置
├── botMenu/ # 机器人菜单
├── dashboard/ # 仪表盘
├── error/ # 错误页面
├── forbidden-word/ # 违禁词管理
├── keyboard/ # 自定义键盘
├── login/ # 登录页面
├── managed-chat/ # 群组管理
├── message-template/ # 消息模板
├── push/ # 消息推送
├── user/ # 用户管理
├── user-violation/ # 用户违规
├── variable/ # 变量管理
├── violation/ # 违规管理
├── violation-log/ # 违规日志
├── violation-strategy/ # 违规策略
└── welcome-template/ # 欢迎模板
🚀 系统运行流程
-
初始化阶段:
- 系统启动时,加载配置文件和数据库配置
BotInitializer
根据配置选择适当的启动模式(轮询或Webhook)- 初始化机器人实例,设置命令菜单和基本参数
-
消息处理流程:
- 接收Telegram更新(
Update
对象) - 根据更新类型分发到相应的处理器:
- 文本消息 →
TextMessageHandler
- 回调查询 →
CallbackQueryHandler
- 内联查询 →
InlineQueryHandler
- 文本消息 →
- 处理器执行相应的业务逻辑,如回复消息、执行命令等
- 接收Telegram更新(
-
内容审核流程:
- 收到新消息时,
MessageModeratorService
自动检查内容 - 匹配违禁词库中的关键词和正则表达式
- 根据匹配结果调用
ViolationStrategyService
执行相应处罚 - 通过
ViolationLogService
记录违规信息
- 收到新消息时,
-
消息推送流程:
- 用户通过前端创建推送任务
PushService
接收任务并调用TelegramAnnouncementService
- 根据目标配置,系统向指定群组发送消息
- 实时记录推送状态和结果
🔍 关键服务和功能
核心服务组件
- BotConfigService:管理机器人配置,支持多机器人切换
- KeyboardService:处理自定义软键盘的创建和交互
- MessageModeratorService:负责消息审核和违规处理
- BotMessageService:处理消息发送和接收
- WelcomeService:管理欢迎消息模板和欢迎新成员
- PushService:处理消息推送和定时任务
- UserViolationService:管理用户违规记录
- ForbiddenWordService:管理违禁词库和匹配规则
安全与认证
- 采用JWT(JSON Web Token)认证机制保障API安全
- 使用BCrypt算法加密敏感信息
- 权限分级控制,确保不同角色有适当的操作权限
- 请求参数校验,防止非法数据和注入攻击
性能优化
- Redis缓存减轻数据库负担,提高响应速度
- Druid连接池优化数据库连接管理
- 定时任务统一调度,避免资源竞争
- 推送任务异步处理,提高并发能力
📊 系统浏览
登录
后台管理