【发布时间】:2021-05-09 16:19:53
【问题描述】:
我的问题是当用户使用命令 /menu 时会出现键盘
而用户在键盘中输入内容,它使用if条件检查用户是否输入了我指定的文本
如果是,则转到下一个键盘,然后检查用户是否输入了我指定的文本
我希望用户使用该命令来确定他的文本输入是否正确。
现在如果用户没有打开键盘而是输入了正确的文字,就可以显示条件中的文字了。
我该如何解决这个问题?
希望效果如下(代码不行)
@bot.message_handler(commands=['menu'])
def menu(message):
main_keyboard = types.ReplyKeyboardMarkup(resize_keyboard=True)
main_keyboard.row('OS System','WebSite')
bot.send_message(chat_id=message.chat.id, text="what you want to see?", reply_markup=main_keyboard)
if message.text =="OS System":
os_system_keyboard = types.ReplyKeyboardMarkup(resize_keyboard=True)
os_system_keyboard.row('Linux','Windows')
bot.send_message(chat_id=message.chat.id, text="what os you want to see?", reply_markup=os_system_keyboard)
if message.text =="Liunx":
bot.send_message(message,"Linux distros : Ubuntu,LiunxMint....")
elif message.text =="Windows":
bot.send_message(message,"Windows distros : windows7 windows xp...")
elif message.text =="WebSite":
website_keyboard = types.ReplyKeyboardMarkup(resize_keyboard=True)
website_keyboard.row('Videos','Knowledge')
bot.send_message(message,"What type website you want to know ?")
if message.text =="Videos":
bot.send_message(message,"Youtube, Netfilx")
elif message.text =="Knowledge":
bot.send_message(message,"wiki...")
else:
bot.send_message(message,"The text you have entered has no relevant content,Please try again.")
我不想这样:
def main_menu(msg): #(row_width=4)
main_keyboard = types.ReplyKeyboardMarkup(resize_keyboard=True)
main_keyboard.row('OS System','WebSite')
bot.send_message(chat_id=message.chat.id, text="what you want to see?", reply_markup=main_keyboard)
def os_menu(msg):
os_system_keyboard = types.ReplyKeyboardMarkup(resize_keyboard=True)
os_system_keyboard.row('Linux','Windows')
bot.send_message(chat_id=message.chat.id, text="what os you want to see?", reply_markup=os_system_keyboard)
def web_menu(msg):
web_keyborad = types.ReplyKeyboardMarkup(resize_keyboard=True)
os_system_keyboard.row('Videos','Knowledge')
@bot.message_handler(commands=['menu'])
def menu(message):
main_menu(message)
@bot.message_handler(content_types=['text'])
def echo_message(message):
if message.text =="OS System":
main_keyboard(message)
elif message.text =="WebSite":
web_keyborad(message)
elif message.text =="Linux":
bot.send_message(message,"Linux distros : Ubuntu,LiunxMint....")
elif message.text =="Windows"
bot.send_message(message,"Windows distros : windows7 windows xp...")
elif message.text =="Videos":
bot.send_message(message,"Youtube, Netfilx")
elif message.text =="Knowledge":
bot.send_message(message,"wiki...")
else:
bot.send_message(message,"The text you have entered has no relevant content,Please try again.")
【问题讨论】:
标签: python-3.x py-telegram-bot-api