Telegram Bot. Руководство по созданию бота в мессенджере Телеграм. - страница 5

Шрифт
Интервал



import pyowm


owm = pyowm.OWM('your-api-key')


def get_weather(city):

observation = owm.weather_at_place(city)

weather = observation.get_weather()

temperature = weather.get_temperature('celsius')['temp']

status = weather.get_detailed_status()

return f"Current weather in {city}: {status}. Temperature: {temperature}°C"


Эта функция получает текущую погоду для заданного города, используя API сайта OpenWeatherMap. Мы извлекаем температуру и детальный статус погоды, а затем формируем строку с информацией о погоде.

Теперь мы можем создать обработчик команды "/weather", который будет вызывать функцию get_weather и отправлять пользователю информацию о погоде для заданного города:


def weather(update, context):

text = update.message.text

city = text.split(' ')[1]

weather = get_weather(city)

context.bot.send_message(chat_id=update.effective_chat.id, text=weather)


updater.dispatcher.add_handler(CommandHandler('weather', weather))


Мы добавили обработчик команды "/weather", который получает название города из сообщения пользователя и вызывает функцию get_weather для получения информации о погоде. Затем мы отправляем полученную информацию пользователю.

Теперь наш бот имеет три функции: отправку случайной цитаты, отправку случайной картинки кота и получение информации о погоде для заданного города. Мы можем продолжать добавлять новые функции, чтобы сделать наш бот еще более полезным и интересным для пользователей.