我开始用 python 编写 tg 机器人,只是为了好玩。我立即决定将所有内容分解为模块。目前我有:main.py、key.py、create_bot.py 和 handlers 包,包内有两个文件 holidays.py和init.py。
初始化.py。
//所有模块初始化都将在这里发生
from Handlers import holidays
创建机器人.py
// 这里有一个技巧,可以让 Python 将所有内容从一个文件导入到另一个文件,然后再返回,而不会出现错误
import telebot
from key import token
from telebot import types
bot=telebot.TeleBot(token)
主程序
//按照我的想法,主要部分将包含问候语、键盘的初始处理(也许我表达得不正确,您稍后会明白)以及由 send_message 组成的一些小功能,例如表扬对话者(我知道这不是一个很好的结构,但是我想要它)。
from bot_create import token, bot, types
@bot.message_handler(commands=['start'])
def start_message(message):
bot.send_message(message.chat.id,'Привет')
@bot.message_handler(commands=['button'])
def button_message(message):
markup=types.ReplyKeyboardMarkup(resize_keyboard=True)
item1=types.KeyboardButton("Кнопка")
markup.add(item1)
bot.send_message(message.chat.id,'Выберите что вам надо',reply_markup=markup)
@bot.message_handler(content_types='text')
def message_reply(message):
if message.text=="Кнопка":
from Handlers import holidays
holidays.holidays_button(message)
bot.infinity_polling()
假期.py
//实际上按下按钮后触发的模块是这样的。
from bot_create import token, bot, types
@bot.message_handler(content_types='text')
def holidays_button(message):
mark=types.ReplyKeyboardMarkup(resize_keyboard=True)
btn=types.KeyboardButton('Вугар')
mark.add(btn)
bot.send_message(message.chat.id, 'кто вас интересует?', reply_markup=mark) // Выводится
if message.text == 'Вугар':
bot.send_message(message.chat.id, 'Держите') // не выводится
告诉我问题是什么以及如何解决它,提前谢谢。
ps 在key.py中有一个token
解决办法是这样的。
我不知道这是否正确,但它确实有效