@kurle

Что делать если телеграмбот который показывает погоду вылетает после неправильного введённого города?

Бот просто вылетает после неправильного введённого города. ВОТ КОД i
mport telebot
from pyowm import OWM
from pyowm.utils import config
from pyowm.utils import timestamps
from pyowm.utils import config as cfg

config = cfg.get_default_config()
config['language'] = 'ru'

owm = OWM('035f2c3fc8a6883ffd824b56f29c2740', config)
mgr = owm.weather_manager()

bot = telebot.TeleBot("1956104990:AAEV_dzCP9HWEcLff47UhOhb0V3ysMFnU48")

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

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

bot.send_message(message.chat.id,otvet)

bot.polling(none_stop = True)

Я понимаю что нужно делать проверку на то что ввёл бот но как?
  • Вопрос задан
  • 124 просмотра
Пригласить эксперта
Ответы на вопрос 2
@MEDIOFF
Python Developer
Делать проверку того что пользователь ввел валидный город
Ответ написан
Vindicar
@Vindicar
RTFM!
Скорее всего при неправильном городе вызов
observation = mgr.weather_at_place(message.text)
сгенерирует исключение. Судя по докам, это будет либо ParseResponseException либо APICallException. Если бы ты озаботился привести полное сообщение об ошибке, можно было бы сказать точно.
В любом случае, читай про обработку исключений. Тебе нужно завернуть вызов в блок try, и если возникла ошибка - сообщить пользователю.

Это я понимаю. Я не сам писал бота это ролик из ютуба.

Если понимаешь, учи основы питона по-старинке - учебник и упражнения. По ютубу научишься только повторять, не понимая смысла. Сначала - основы, потом уже бросайся писать ботов.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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