Прим: Заодно хочу спросить, правильно ли я подхожу к объявлению экземпляров классов или это лучше все делать глобально ?
Вы пишете в функциональном стиле, для него Ваш код довольно грамотный
Но если Вы считаете SplitText, MakeCard, Translate, Main "экземплярами классов", то это обычные функции. Классы определяются ключевым словом class. https://docs.python.org/3/tutorial/classes.html
Единственные мелкие помарки на счёт оформления программы это:
...
words = SplitText(text)
...
...
words = text.split()
...
Функцию ради функции не пишут, это непрактично
Также в python перебирать значения в итерируемых объектах можно и без использования индексов
...
for i in range(len(words)):
card = Translate(words[i])
MakeCard(card)
...
...
for word in words:
card = Translate(word)
MakeCard(card)
...
Семен, У меня два аккаунта, сначала проверил именно этот код, потом забил "намертво" в коде id второго аккаунта, который ещё не писал боту, выявил похожую ошибку. Потом написал, с основного также попробовал получить аватарку второго аккаунта и всё получилось. Заблокировал со второго аккаунта - получил пустой список на первом. По идее у Вас из БД точно так же должно работать, как во втором случае.
Попробуйте написать ещё функцию, где ловите "свежих" пользователей, может быть это поможет.
Этот код полностью рабочий, почему у Вас пользователь не найден, хотя он писал боту. Проверил со статичным id пользователя, который написал боту: работает. Если не написать, то ошибка аналогичная вашей. Если бота заблокировать, то возвращается пустой лист
А код, который вы привели, не корректен, так как пытаетесь засунуть в random список из функции, которая сразу же выполняется. Если у Вас возникает такая ошибка, то вынужден признать, что Ваши знания языка плохи, делаю вывод, что писать ботов, тем более без чтения базовой документации, Вам рано.
Надеюсь, что моменту моего ответа вы сами нашли решение проблемы в Гугле
Вы пишете в функциональном стиле, для него Ваш код довольно грамотный
Но если Вы считаете
SplitText
,MakeCard
,Translate
,Main
"экземплярами классов", то это обычные функции. Классы определяются ключевым словомclass
.https://docs.python.org/3/tutorial/classes.html
Единственные мелкие помарки на счёт оформления программы это:
Функцию ради функции не пишут, это непрактично
Также в python перебирать значения в итерируемых объектах можно и без использования индексов