Как в TeleBot добавить переменную с написанным текстом от пользователя после Inline Keyboard

Делаю бота для Telegram, чтобы узнать погоду.

elif message.text == 'Узнать погоду ⛅️':

        markup = types.InlineKeyboardMarkup(row_width=2)
        item1 = types.InlineKeyboardButton("Санкт-Петербург", callback_data='spb')
        item2 = types.InlineKeyboardButton("Москва", callback_data='msc')
        item3 = types.InlineKeyboardButton("Другой город", callback_data='oth')

        markup.add(item1, item2, item3)

Тут добавил InlineKeyboard, человек выбирает СПБ, МСК, или другой город, который сам должен написать боту. Погоду достаю из PyOWM и для СПБ, МСК легко все получилось.

elif call.data == 'oth':
            bot.send_message(call.message.chat.id, "Хорошо, напиши город, о котором хочешь узнать. ⛅️")
            
            observation = mgr.weather_at_place(town.text)
            w = observation.weather
            sky123 = w.detailed_status
            sky = translator.translate(sky123, dest = "ru")
            temp = w.temperature('celsius')['temp']
            tempma = w.temperature('celsius')['temp_max']
            tempmi = w.temperature('celsius')['temp_min']
            wind = w.wind()['speed']

            answer = "В городе "+ town.text + " сейчас " + sky.text + "\n"
            answer = answer + 'Температура в районе: ' + str(temp) + '°C' + "\n"
            answer += "Самая высокая температура за сегодня: " + str(tempma)+'°C\n'
            answer += "Самая низкая температура за сегодня: " + str(tempmi)+'°C\n'
            answer += "Скорость ветра: " + str(wind) + " м/с\n"
            answer += "Влажность: " + str(w.humidity) + "\n\n"
            bot.send_message(town.chat.id, answer)

В этой части кода после нажимания Inline кнопки "Другой город" бот отвечает, все работает, но когда я пишу например Екатеринбург то ничего не происходит. Как мне сделать так, чтобы после нажимания кнопки "Другой город", я мог ввести город и узнать погоду?

Вот пример


Ответы (1 шт):

Автор решения: Vasily Esipenko

Нужно через @bot.message_handler(content_types=["text"]) сохранить message.text в переменную. Чтобы убедиться, что это точно город, можно сделать массив с городами и добавить дополнительные условия к обработчику текстовых сообщений

→ Ссылка