Задать вопрос
@hiddle

Как правильно оформить TgBot, для показа погоды?

Хочу сделать телеграмм бота с несколькими функциям, одной из них будет являться сводка погоды в городе(который введет пользователь).
Код написан так, что любое сообщение(message.text), воспринимает как город. Как сделать что бы только при команде /weather, он ждал "город"
@bot.message_handler(commands=['weather'])
def weather(message):
    bot.send_message(message.chat.id,"Напиши название города, в котором хочешь узнать погоду!")


@bot.message_handler()
def get_weather(message):
    code_to_smile = {
        "Clear": "Ясно \U00002600",
        "Clouds": "Облачно \U00002601",
        "Rain": "Дождь \U0001F327",
        "Drizzle": "Дождь \U0001F327",
        "Thunderstorm": "Гроза \U000026C8",
        "Snow": "Снег \U0001F328",
        "Mist": "Туман \U0001F301"

    }
    city =
    try:

        r = requests.get(
            f"https://api.openweathermap.org/data/2.5/weather?q={message.text}&appid={open_weather_token}&units=metric"
        )
        data = r.json()
  • Вопрос задан
  • 53 просмотра
Подписаться 1 Простой 4 комментария
Пригласить эксперта
Ответы на вопрос 1
Зарегистрировать get_weather в качестве коллбека в обработчике weather register_next_step_handler_by_chat_id - для простых ситуаций
Для всего более сложного - Finite-state machine https://mastergroosha.github.io/telegram-tutorial/...
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы