Не могу решить данную проблему IndexError: list index out of range
Ругается на эту строку image = generate_doc(nameString[0], nameString[1], message.text)
import telebot
import config
import time
from telebot import types
from PIL import Image
from PIL import ImageDraw
from PIL import ImageFont
token = config.TOKEN
bot = telebot.TeleBot(token)
dateGiven = False
users = {}
nameString = [];
def generate_doc(first_name, second_name, date):
img = Image.open('Perevod.png') # Грузим Картинку
nameFont = ImageFont.truetype('arial.ttf',22) # Загрузка шрифта и установка размера
pechatFont = ImageFont.truetype('CoreSansG.ttf',30) # Загрузка шрифта и установка размера
dateFont = ImageFont.truetype('CoreSansG.ttf',73)
namefont_color = '#414141' # Цвет шрифта
datefont_color = '#ffffff' # Цвет шрифта
name = first_name + ' ' + second_name # Соединяем имя и фамилию
name_pos = (23,453) # Координаты имени и фамилии
drawing = ImageDraw.Draw(img) # Создаем пикчу
drawing.text(name_pos,name,font=nameFont,fill=namefont_color) # Пишем текст
date_pos = (20,236) # Координаты даты
drawing.text(date_pos,date + " Т",font=dateFont,fill=datefont_color) # Пишем дату
textWidth = drawing.textsize(name,font=nameFont)
pechat_pos = (25 + textWidth[0] + 50,256) # Координаты
drawing.text(pechat_pos,'',font=dateFont,fill=datefont_color) # Пишем дату
dateGiven = False
return img
@bot.message_handler(commands=['start'])
def start(message: types.Message):
bot.send_message(message.from_user.id, 'Введите имя и фамилию c большой буквы.')
# при нажатии на кнопку Старт юзер запишется в переменную users
users.setdefault(message.from_user.id, {})
@bot.message_handler()
def repeat_all_message(message: types.Message):
if users.get("data_given") is not True:
# не обязательно в split давать " " так как это знаечние по-умолчанию
name_surname = message.text.split()
if len(name_surname) == 2: # проверка на длину списка (должно быть два слова от юзера отделенных пробелом)
bot.send_message(message.from_user.id, 'Введите дату.')
users['data_given'] = True
users['words'] = name_surname
else:
bot.send_message(message.from_user.id, 'Ошибка! Введите имя и фамилию через пробел (с большой буквы).')
else:
image = generate_doc(nameString[0], nameString[1], message.text) # дергаем нашу функцию
image.save(str(message.from_user.id) + ' completedCert.jpg') # сохраняем пикчу
bot.send_photo(message.from_user.id,
hoto=open(str(message.from_user.id) + ' completedCert.jpg', 'rb')) # отправляем пикчу
users['data_given'] = False
bot.polling(none_stop=True)