一个功能强大的 Telegram 机器人。
- 支持 cron 表达式的消息定时发送
- 结构化日志记录
- 强大的错误处理和自动重试机制
- 清晰的代码结构
- 完整的类型提示和详细文档
-
克隆仓库
-
安装依赖:
pip install -r requirements.txt-
获取 Telegram API 凭证:
- 访问 https://my.telegram.org/auth
- 登录你的 Telegram 账号
- 点击 "API development tools"
- 创建一个新的应用
- 记下
api_id和api_hash
-
创建配置文件:
- 在项目根目录创建
.env文件 - 添加以下内容(替换为你的实际值):
API_ID=你的api_id API_HASH=你的api_hash - 在项目根目录创建
- 启动机器人:
python main.py-
可用命令:
/start- 显示帮助信息/list- 列出所有可用的对话/schedule- 设置定时消息
-
设置定时消息示例:
/schedule "早上好!" "0 9 * * *" "123456789"
这将在每天早上 9 点发送 "早上好!" 到指定的对话。
* * * * *
│ │ │ │ │
│ │ │ │ └── 星期 (0-7, 0 和 7 都表示星期日)
│ │ │ └──── 月份 (1-12)
│ │ └────── 日期 (1-31)
│ └──────── 小时 (0-23)
└────────── 分钟 (0-59)
常用例子:
0 9 * * *- 每天早上 9 点0 */2 * * *- 每 2 小时一次0 9 * * 1-5- 工作日早上 9 点0 9,18 * * *- 每天早上 9 点和晚上 6 点
项目采用模块化设计:
main.py- 机器人核心逻辑和命令处理config.py- 使用 Pydantic 的配置管理utils.py- 工具函数和辅助方法
机器人实现了完善的错误处理机制:
- 消息发送失败自动重试
- 结构化日志记录,方便调试
- 友好的错误提示信息
- 请妥善保管你的 API 凭证,不要分享给他人
- 确保机器人保持运行状态才能发送定时消息
- 使用
/list命令获取正确的对话 ID - 定时任务使用服务器的本地时间