一个 Telegram 群组定时禁言机器人,支持自动按时间段禁言/解禁所有普通成员。
- 🕐 定时禁言:设置每日禁言时间段,到时自动禁言所有普通成员
- 🌙 跨天支持:支持跨天时间段,如 23:00 ~ 08:00(夜间静默)
- 📅 多时间段:支持同一群同时配置多个时间段,如夜间 + 午休
- 👑 管理员豁免:管理员/群主全程不受禁言影响,可正常发言
- 🚪 新成员自动禁言:禁言期间新加入的成员会被立即禁言
- 🔓 临时解禁:管理员可对指定成员单独临时解禁,禁言结束后自动恢复
- 💾 配置持久化:设置保存到本地文件,重启机器人后依然生效
- 🌏 多群独立配置:支持同时管理多个群组,每个群单独配置
禁言开始时,机器人自动发送:
🔇 禁言时间段已开始。 所有普通成员已被禁言(共 X 人)。 管理员不受影响,仍可正常发言。
禁言结束时,机器人自动发送:
🔊 禁言时间段已结束,所有成员恢复正常发言。
git clone https://github.com/你的用户名/GroupSilentBot.git
cd GroupSilentBotpip install -r requirements.txt复制环境变量模板并填入你的 Token:
cp .env.example .env编辑 .env 文件:
BOT_TOKEN=你的机器人Token
Token 可在 Telegram 中找 @BotFather 创建机器人获取。
python3 bot.py- 把机器人拉进目标群组
- 将机器人设为管理员
- 管理员权限中需勾选:
- ✅ 限制成员
- ✅ 删除消息
| 命令 | 说明 | 权限 |
|---|---|---|
/start |
查看机器人介绍与使用说明 | 所有人 |
/help |
查看详细命令帮助 | 所有人 |
/addperiod HH:MM-HH:MM |
添加一个每日禁言时间段 | 仅管理员 |
/removeperiod <编号> |
删除指定编号的禁言时间段 | 仅管理员 |
/listperiods |
查看本群所有禁言时间段及当前状态 | 所有人 |
/unmute |
引用消息,临时解禁该成员 | 仅管理员 |
/status |
查看当前群组禁言状态与统计 | 所有人 |
# 添加夜间禁言(每天 23:00 到次日 08:00)
/addperiod 23:00-08:00
# 再添加午休禁言(每天 12:00 到 13:30)
/addperiod 12:00-13:30
# 查看所有已配置的时间段
/listperiods
# 删除第 2 个时间段
/removeperiod 2
# 临时解禁某个成员(先引用该成员的消息,再发送)
/unmute
# 查看当前群组状态
/status
- 所有时间均为北京时间(UTC+8)
- 机器人每 30 秒检查一次时间,禁言/解禁最多有约 30 秒误差
- 成员首次发言后才会被机器人记录,若某成员从未发过消息,禁言开始时不会被主动禁言,但一旦他在禁言期间发消息,消息会被立即删除并被禁言
- 临时解禁在当前禁言时间段结束后自动失效
.env文件包含敏感 Token,已加入.gitignore,请勿手动提交
GroupSilentBot/
├── bot.py # 主程序
├── requirements.txt # 依赖列表
├── .env # 环境变量(不提交)
├── .env.example # 环境变量模板
├── .gitignore # Git 忽略规则
├── config.json # 运行时自动生成,保存群组配置
└── README.md # 使用说明
- Python 3.9+
- python-telegram-bot >= 21.0
- python-dotenv >= 1.0.0
MIT