@Rebza

Вопросик по телеграмм боту?

Телеграмм бот погода, как сделать так чтобы когда openweathermap не находил страну или город, заместо ошибки вылазило сообщение типа: Город не найден. Помогите плииз
Вот код:
import pyowm
from pyowm.commons.enums import SubscriptionTypeEnum
from pyowm.utils.measurables import kelvin_to_celsius
import telebot

config = {
'subscription_type': SubscriptionTypeEnum.FREE,
'language': 'ru',
'connection': {
'use_ssl': True,
'verify_ssl_certs': True,
'use_proxy': False,
'timeout_secs': 5
},
'proxies': {
'http': 'http://user:pass@host:port',
'https': 'socks5://user:pass@host:port'
}
}

owm = pyowm.OWM('66d228e4647a94aff7bfd6112de11ab7', config=config)
mgr = owm.weather_manager()
bot = telebot.TeleBot("1151683680:AAHHvAcJ4DmT69oQ2NhEB2DWFXqF_XwSrK8", parse_mode=None)
@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']

answer = " В городе/стране " + message.text + " сейчас температура: " + str(temp) + " по Цельсию." + "\n"
answer += 'Погода в указанном городе/стране: ' + w.detailed_status + "\n"

if temp < 0:
answer += "На улице дубак, оденься как танк!"
elif temp < 7:
answer += "Сейчас холодно, одень куртку!"
elif temp < 15:
answer += "Сейчас прохладно, оденься потеплее!"
elif temp > 30:
answer += "На улице жарко одевайся полегче)"
elif temp > 20:
answer += "На улице тепло, можешь выходить без верхней одежды))"
elif temp > 15:
answer += "Сейчас, более менее тепло XD"

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

bot.polling(none_stop = True)
  • Вопрос задан
  • 144 просмотра
Решения вопроса 1
@vadumo
Сначала нужно найти в каком месте кидает ошибку, а потом использовать
try:
место откуда выбивает ошибку
except:
bot.send_message(message.chat.id, "Город не найден")
чтоб найти где вызывает ошибку, добавь в код несколько bot.send_message для теста, если бот какое-то сообщения не отправил значит ошибка выше

И вижу мое прошлое сообщения помогло, отметь в топике "Отметить решениям"
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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