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

Почему бот не отвечает на ошибку а крашится?

from pyowm import OWM
import telebot
# Импортируем бота тг
# А вот и сам бот, с токеном, взятый у BotFather.
owm = OWM("TOKEN")
mgr = owm.weather_manager()
from pyowm.utils.config import get_default_config
config_dict = get_default_config()
config_dict['language'] = 'ru'  # Смена языка
bot = telebot.TeleBot('TOKEN')
@bot.message_handler(content_types=['text']) # это хендлер, т.е. при получении указанного типа контента, выполнит функцию ниже
# хз для чего сделано вна2ре, но я так понял, что для ответа на любые сообщения
def send_echo(message):
	try:
		observation = mgr.weather_at_place(message.text)
		w = observation.weather
		temp= w.temperature('celsius')["temp"]

		answer = "В городе " + message.text + " сейчас - " + w.detailed_status + "\n"
		answer += "Температура сейчас в районе " + str(temp) + "\n\n"

		if temp < 10:
			answer += "Рекомендую одеться потеплее!"

		elif temp<20:
				answer += 'Отличная погода, сударь.'
		else:
				answer += "Не холодно, доставай майки :) "

		bot.send_message(message.chat.id, answer)
	except NotFoundError(APIResponseError):
		bot.send_message(message.chat.id, 'Город не найден :(')

bot.polling(none_stop=True)
  • Вопрос задан
  • 75 просмотров
Подписаться 1 Простой 2 комментария
Решения вопроса 1
@vascodogama
Попробуй:

def send_echo(message):
  try:
    observation = mgr.weather_at_place(message.text)
    w = observation.weather
    temp= w.temperature('celsius')["temp"]

    answer = "В городе " + message.text + " сейчас - " + w.detailed_status + "\n"
    answer += "Температура сейчас в районе " + str(temp) + "\n\n"

    if temp < 10:
      answer += "Рекомендую одеться потеплее!"

    elif temp<20:
        answer += 'Отличная погода, сударь.'
    else:
        answer += "Не холодно, доставай майки :) "

    bot.send_message(message.chat.id, answer)
  except:
    bot.send_message(message.chat.id, 'Город не найден :(')
    print('Город не найден')


Запринтил ?
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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