@Nika980

Код не работает дальше списка городов, что делать?

Здравствуйте, такая проблема: перед этой частью кода код с капчей, все функционирует пока не выберешь город. Прописала к первому городу последующий список кнопок, он в боте не открывается и при выборе города бесконечная загрузка, что делать? Я уже всю голову сломала

@bot.message_handler(commands=['shop'])
def shop_message(message):
    bot.send_message(message.chat.id,"Text")
    markup = types.InlineKeyboardMarkup()
    city1 = types.InlineKeyboardButton('город1', callback_data='city1')
    city2 = types.InlineKeyboardButton('город2', callback_data='city2')
    city3 = types.InlineKeyboardButton('город3', callback_data='city3')
    city4 = types.InlineKeyboardButton('город4', callback_data='city4')
    city5 = types.InlineKeyboardButton('город5', callback_data='city5')
    city6 = types.InlineKeyboardButton('город6', callback_data='city6')
    city7 = types.InlineKeyboardButton('город7', callback_data='city7')
    city8 = types.InlineKeyboardButton('город8', callback_data='city8')
    markup.row(city1)
    markup.row(city2)
    markup.row(city3)
    markup.row(city4)
    markup.row(city5)
    markup.row(city6)
    markup.row(city7)
    markup.row(city8)
    bot.send_message(message.from_user.id, f"<b>Для покупки выберите свой город ниже:</b>", reply_markup=markup, parse_mode="html")
@bot.callback_query_handler(func=lambda call: True)
def query_handler(call):
    bot.answer_callback_query(callback_query_id=call.id)    

@bot.message_handler(commands=['city1'])
def city1_message(message):
        markup = types.InlineKeyboardMarkup()
        button9 = types.InlineKeyboardButton('1', callback_data='9')
        button10 = types.InlineKeyboardButton('2', callback_data='10')
        button11 = types.InlineKeyboardButton('3', callback_data='11')
        button12 = types.InlineKeyboardButton('4', callback_data='12')
        button13 = types.InlineKeyboardButton('5', callback_data='13')
        button14 = types.InlineKeyboardButton('6', callback_data='14')
        button15 = types.InlineKeyboardButton('7', callback_data='15')
        button16 = types.InlineKeyboardButton('8', callback_data='16')
        button0 = types.InlineKeyboardButton('0', callback_data='0')
        markup.row(button9)
        markup.row(button10)
        markup.row(button11)
        markup.row(button12)
        markup.row(button13)
        markup.row(button14)
        markup.row(button15)
        markup.row(button16)
        markup.row(button0)
        bot.send_message(call.message.chat.id, f"<b>Выберите:</b>", reply_markup=markup, parse_mode="html")
        bot.answer_callback_query(callback_query_id=call.id)
       
        




                   
bot.infinity_polling(timeout=10, long_polling_timeout=5)
  • Вопрос задан
  • 186 просмотров
Пригласить эксперта
Ответы на вопрос 1
@sttreng
у вас написан хендлер на обычные кнопки, хендлер на инлайн кнопки выглядит так
@bot.callback_query_handler(text=['city1'])
советую сделать универсальный хендлер и обрабатывать колбеки через startswith
например у вас будут кнопки с колбеками city_1, city_2 и тд.
будет такой хендлер
@bot.callback_query_handler(Text(startswith='city_'))

потом через strip делите колбеку дату и смотрите какой город
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы