Бот начинает игру в слова и первым отправляет сообщение, но получает в качестве ответа от пользователя название кнопки Play on words. Как можно достать второе сообщение от пользователя? И можно ли не отправлять сообщение при нажатии кнопки пользователем?
@bot.message_handler(commands=['start'])
def welcome(message):
sti = open('path' , 'rb')
bot.send_sticker(message.chat.id, sti)
markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
item1 = types.KeyboardButton("Random number")
item2 = types.KeyboardButton("How it's going?")
item3= types.InlineKeyboardButton("Play on words", callback_data= "play")
markup.add(item1, item2, item3)
bot.send_message(message.chat.id, "Hi there,<i> {0.first_name}!</i>\n I'm <b>{1.first_name}</b>- bot that was created for test."
.format(message.from_user, bot.get_me()), parse_mode = 'html', reply_markup=markup)
@bot.callback_query_handler(func=lambda call: True)
def callback_worker(call):
mess = call.text
my_file = (open('path'))
text = my_file.read()
my_file.close()
words = []
def get_word():
for candidant in available_words:
if mess.lower()[-1] == "ъ" or mess.lower()[-1] == "ь" or mess.lower()[-1] == "ы":
if candidant[0] == mess[-2].lower():
available_words.remove(candidant)
print("Проверка, что предпоследняя буква от пользователя = 1 букве слова . сообщ пользователя " + mess + ' ответ бота ' + candidant)
break
elif candidant[0] == mess[-1].lower():
available_words.remove(candidant)
print(candidant)
break
else:##словарный запас иссяк
print("GAME OVER")
return
for word in text.split():
words.append(word)
available_words = list (words)
random.shuffle(available_words)
anyword = available_words.pop()
bot.send_message(call.message.chat.id, anyword)
break
if anyword[-1] == "ъ" or anyword[-1] == "ь" or anyword[-1] == "ы":
if anyword[-2] == mess.lower()[0]:
print(anyword)
available_words.remove(anyword)
print("Успех")
get_word()
else:
print("Неверно, слово должно начинаться с буквы " + anyword[-2])
return
elif mess.lower()[0] != anyword[-1]:
print(mess)
print("Неверно, слово должно начинаться с буквы " + anyword[-1])
else:
print(anyword)
words.remove(anyword)
print("Успех, удалено слово " + anyword)
for candidant in available_words:
if mess.lower()[-1] == "ъ" or mess.lower()[-1] == "ь" or mess.lower()[-1] == "ы":
get_word()
break
elif candidant[0] == mess[-1].lower():
print(candidant)
available_words.remove(candidant)
break
else:##словарный запас иссяк
print("GAME OVER")
return