bot.reply_to(message, 'something fails...')
- не делайте так никогда, в смысле в разных участках кода выводить одну и ту же общую ошибку с одинаковым текстом. У вас в коде один текст для четырёх разных ошибок. И как гадать, когда в телегу пришло сообщение "something fails..." - из какого места в коде прилетела ошибка. Плюс, как мне кажется, не нужно обрабатывать все исключения одним кодом. Лучше написать обработчики для каждого возможного исключения, и выводить конкретный текст ошибки в случае определенного исключения, и при возможности как-то обрабатывать его. import telebot
from PIL import Image
from PIL import ImageDraw
from PIL import ImageFont
token = 'Здесь нужно вписать токен вашего бота'
bot = telebot.TeleBot(token)
def generate_doc(first_name, second_name):
img = Image.open('1.jpg')
font = ImageFont.truetype('font.ttf',30) # Загрузка шрифта и установка размера
font_color = (74,75,69) # Цвет шрифта
first_name_pos = (585,172) # Координаты первой буквы фамилии на картинке 1.jpg
second_name_pos = (505,205) # Координаты первой буквы имени
drawing = ImageDraw.Draw(img)
drawing.text(first_name_pos,first_name,font=font,fill=font_color)
drawing.text(second_name_pos,second_name,font=font,fill=font_color)
return img
@bot.message_handler(content_types=['text'])
def repeat_all_message(message):
string = message.text
s = string.split(' ')
if len(s) == 3:
image = generate_doc(s[0],s[1]+' '+s[2])
image.save('test.jpg')
bot.send_photo(message.chat.id,photo=open('test.jpg','rb'))
else:
bot.send_message(message.chat.id,'Ошибка! Введите имя, фамилию и отчество через пробел.')
if __name__ == '__main__':
bot.polling(none_stop=True)
bot = telebot.TeleBot(config.token)
import telebot
import pyowm
owm = pyowm.OWM('key', language = "ru")
bot = telebot.TeleBot('token')
@bot.message_handler(content_types=['text'])
def send_echo(message):
try:
observation = owm.weather_at_place( message.text )
w = observation.get_weather()
temp = w.get_temperature('celsius')["temp"]
hum = w.get_humidity()
time = w.get_reference_time(timeformat='iso')
wind = w.get_wind()["speed"]
answer ="В городе " + message.text + " сейчас " + w.get_detailed_status() + "\n"
answer += "Температура сейчас в районе " + str(temp) + "\n\n" + "\nСкорость ветра: " + str(wind) + "м/с" + "\n" + "\nВлажность: " + str(hum) + "%" + "\n" + "\nВремя: " + str(time) + "\n"
if temp < 11:
answer += "Сейчас очень холодно."
elif temp < 20:
answer += "Сейчас прохладно, лучше одеться потеплее."
else:
answer += "Температура в норме!"
bot.send_message(message.chat.id, answer)
except pyowm.exceptions.api_response_error.NotFoundError:
bot.send_message(message.chat.id,'Ошибка! Город не найден.')
except pyowm.exceptions.api_response_error.UnauthorizedError:
print('Не верный ключ pyowm!')
bot.polling( none_stop = True)
input()