Запускаю код захожу в бота в Telegram, всё работает кроме кнопок "Назад" и "Помощь". Мне кажется, что он просто не считывает эту часть кода, а почему не знаю.
import telebot
import random
import logging
from telebot import types
import strings as st
bot = telebot.TeleBot(TOKEN)
telebot.logger.setLevel(logging.INFO)
storage = dict()
def init_storage(user_id):
storage[user_id] = dict(attempt=None, random_digit=None)
def set_data_storage(user_id, key, value):
storage[user_id][key] = value
def get_data_storage(user_id):
return storage[user_id]
@bot.message_handler(commands=['start'])
def start(message):
if (message.text == '/start'):
markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
btn1 = types.KeyboardButton(st.ANSW_START)
btn2 = types.KeyboardButton(st.ANSW_HELP)
markup.add(btn1,btn2)
bot.send_message(message.chat.id, text=st.ANSW_HIFROM_BOT, reply_markup=markup)
@bot.message_handler(func=lambda messsage: messsage.text.lower() == '\U00002705выбрать игру\U00002705')
def choose_game_or_start(message):
if(message.text == st.ANSW_START):
markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
button1 = types.KeyboardButton(st.GAME_DIGIT)
button2 = types.KeyboardButton(st.GAME_KNB)
button3 = types.KeyboardButton(st.ANSW_MENU)
markup.add(button1, button2, button3)
bot.send_message(message.chat.id, text=st.CHOOSE_GAME, reply_markup=markup)
@bot.message_handler(func=lambda message: message.text.lower() == 'игра "угадай число"')
def digitgames(message):
init_storage(message.chat.id)
attempt = 5
set_data_storage(message.chat.id, "attempt", attempt)
bot.send_message(message.chat.id, f'Игра "Угадай число"!\nКоличество попыток: {attempt}')
random_digit = random.randint(1, 10)
print(random_digit)
set_data_storage(message.chat.id, "random_digit", random_digit)
print(get_data_storage(message.chat.id))
bot.send_message(message.chat.id, 'Готово! Я загадал число от 1 до 10')
bot.send_message(message.chat.id, 'Попробуй угадать число')
bot.register_next_step_handler(message, process_digit_step)
def process_digit_step(message):
user_digit = message.text
if not user_digit.isdigit():
msg = bot.reply_to(message, 'Вы ввели не цифры, введите пожалуйста цифры')
bot.register_next_step_handler(msg, process_digit_step)
return
attempt = get_data_storage(message.chat.id)["attempt"]
random_digit = get_data_storage(message.chat.id)["random_digit"]
if int(user_digit) == random_digit:
bot.send_message(message.chat.id, f'Поздравляю! Ты угадал, это была цифра: {random_digit}')
init_storage(message.chat.id)
return
elif attempt > 1:
attempt -= 1
set_data_storage(message.chat.id, "attempt", attempt)
bot.send_message(message.chat.id, f'Упс! Я загадал не это число, осталось попыток: {attempt}')
bot.register_next_step_handler(message, process_digit_step)
else:
bot.send_message(message.chat.id, f'Вы проиграли! Не растраивайтесь повезёт в другой раз! Это было число: {random_digit}')
init_storage(message.chat.id)
return
@bot.message_handler(func=lambda message: message.text.lower() == 'камень' or 'ножницы' or 'бумага' or 'игра "камень, ножницы, бумага"')
def cuefa_start_game(message):
if (message.text == st.GAME_KNB):
markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
bttn1 = types.KeyboardButton(st.STONE)
bttn2 = types.KeyboardButton(st.SICCORS)
bttn3 = types.KeyboardButton(st.PAPER)
bttn4 = types.KeyboardButton(st.ANSW_MENU)
markup.add(bttn1, bttn2, bttn3, bttn4)
bot.send_message(message.chat.id, text=st.BOT_CUEFA, reply_markup=markup)
elif (message.text == 'камень' or 'ножницы' or 'бумага'):
choice = random.choice(['Камень', 'Ножницы', 'Бумага'])
if message.text == choice:
bot.send_message(message.chat.id, text=f'Боевая ничья! Бот тоже выбрал {choice}')
else:
if message.text == 'Камень':
if choice == 'Ножницы':
bot.send_message(message.chat.id, text=f'Поздравляю с победой! У меня были {choice}')
else:
bot.send_message(message.chat.id, text=f'К сожалению Вы проиграли. У меня была {choice}')
elif message.text == 'Ножницы':
if choice == 'Бумага':
bot.send_message(message.chat.id, text=f'Поздравляю с победой! У меня была {choice}')
else:
bot.send_message(message.chat.id, text=f'К сожалению Вы проиграли. У меня был {choice}')
elif message.text == 'Бумага':
if choice == 'Камень':
bot.send_message(message.chat.id, text=f'Поздравляю с победой! У меня был {choice}')
else:
bot.send_message(message.chat.id, text=f'К сожалению Вы проиграли. У меня были {choice}')
@bot.message_handler(content_types=['text'])
def back_or_help(message):
if(message.text == st.ANSW_MENU):
markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
button1 = types.KeyboardButton(st.ANSW_START)
button2 = types.KeyboardButton(st.ANSW_HELP)
markup.add(button1, button2)
bot.send_message(message.chat.id, text=st.ANSW_GLAVNAYA, reply_markup=markup)
elif(message.text == st.ANSW_HELP):
bot.send_message(message.chat.id, text=st.ANSW_HOWISIT_WORK)
if __name__ == '__main__':
bot.skip_pending = True
bot.polling()
Если надо переписать код, то как? Заранее спасибо!)