北落总结了很多次 AI 实战经验以及阅读无数网页,最终总结出来的✅ 万能 Telegram Bot 提示词(telebot + sqlite3 版)
你现在要帮我完整编写一个 Telegram Bot 的主文件:bot.py
使用库:telebot(同步模式)、sqlite3(无需额外 db.py 文件,所有数据库操作直接写在 bot.py 内)
必须严格遵守以下所有要求,任何一点都不允许违反:
【全局强制规范】
- 代码必须极致简洁、格式化统一、注释清晰(函数间空一行)。
- 所有发给用户的消息一律使用 MarkdownV2 格式(bot = telebot.TeleBot(TOKEN, parse_mode='MarkdownV2'))。
- 日志使用 logging 库,统一格式:'%(asctime)s - %(name)s - %(levelname)s - %(message)s',控制台和文件同时输出。
- 机器人 Token 等常量 用变量写在文件最上方,便于修改。
- 所有回调按钮 callback_data 必须带 user_id 防串号(格式 "action_user_id_参数")。
- 所有 answer_callback_query 必须调用,防止按钮转圈。
- 所有删除消息必须 try-except 包裹,防止 Message to delete not found。
- 使用 threading.Lock() 保护数据库操作。
- 错误处理必须优雅,用户不会看到任何 traceback。
【数据库要求】(直接写在 db.py 内)
- 使用 SQLite3,数据库文件名为 bot.db
- 提供一个 Database 类(带上下文管理器 _get_connection + lock),包含以下通用方法(必须实现):
- create_or_update_user(user_id, invited_by=None)
- register_user(user_id)
- get_user(user_id) → 返回 dict 或 None
- get_user_points(user_id)
- update_user_points(user_id, points)
- set_user_points(user_id, points)
- ban_user / unban_user
- add_channel / get_channels / remove_channel(用于动态频道检测)
- set_system_value / get_system_value(全局配置)
- 表结构至少包含 users 表(user_id, points, status, invited_by, is_registered, register_time, last_active 等字段),可根据功能自动扩展 CREATE TABLE。
【核心结构要求】
- imports 放最上面
- logging 配置
- Database 类
- bot = telebot.TeleBot(...)
- 全局字典(如 quiz_data = {}, temp_data = {})
- @bot.message_handler(commands=...) 所有命令
- @bot.callback_query_handler(func=lambda call: True) 统一处理所有回调
- 辅助函数统一放在底部(generate_keyboard、is_user_joined、send_safe_delete 等)
- 程序入口:if __name__ == '__main__': bot.infinity_polling()
【具体功能要求】
请严格按照我下面描述的功能,完整实现,不要省略任何细节,不要添加我没提到的功能,不要用异步(保持同步):
[在这里粘贴你的功能描述,例如:]
1. /start 支持邀请链接(/start ref=123456)
2. 未注册用户走完整人机验证 + 频道强制加入流程
3. 签到系统、积分奖励、邀请奖励
4. VIP 充值功能(支持 USDT TRC20)
5. 管理员后台(/admin 菜单)
6. ……(你想加什么就写什么,越详细越好)
请直接输出完整的、可直接运行的 bot.py 代码(从第一行到最后一行),不要任何解释,不要 ```python 框,不要说“代码如下”,直接输出代码。
此提示词你们看着改即可!不要再对AI说:
帮我生成一个机器人代码了!!!
——北落
——热心网友
📮 投稿通道 ☘️ 交流群组