Всем привет!
Недавно начала изучать создание ботов на Python.
Изучила что да как писать, чтобы бот работал.
Пишу кстати с применением библиотеки vk_api.
Все было вроде неплохо. Но..
Я заметила, что если бот выполняет что-то кроме "прослушки" сервера(в моем случае генерации картинки), то прослушка замораживается и бот отвечает уже только потом, когда картинка будет сгенерирована и отправлена пользователю. Так не годится же....
Я просмотрела некоторые библиотеки с многопоточностью и т.п Но что-то все не получалось
И вот хотелось бы спросить у вас на этот счет, что да как мне сделать.
Вот код моего проекта(оставлен необходимый минимум):
import vk_api
from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType
from vk_api.keyboard import VkKeyboard, VkKeyboardColor
from vk_api.utils import get_random_id
token = 'ТОКЕН'
vk_session = vk_api.VkApi(token=token)
vk = vk_session.get_api()
longpool = VkBotLongPoll(vk_session, ID группы)
def create_img():
"""
код для генерации и сохранения картинки
"""
while True:
for event in longpool.check():
user_id = event.obj.from_id
if event.type == VkBotEventType.MESSAGE_NEW:
if not check_reg(event.obj.from_id):
register_new_user(event.obj.from_id)
response = str(event.obj.text).lower()
if response == 'привет':
create_img() #генерируем картинку
upload = vk_api.Upload(vk_session)
photo = upload.photo_messages(
'путь до фотографии, которую сгенерировала функция выше',
user_id
) # сохранение картинки на сервер || хранится вся информация, которую вернул сервер
attachment = 'photo{}_{}_{}'.format(photo[0]['owner_id'], photo[0]['id'],
photo[0]['access_key']) # создается полное название вложения
vk.messages.send(
user_id=user_id,
message='Привет!!!',
attachment=attachment,
keyboard=create_keyboard(response, user_id),
random_id=get_random_id()
)
Буду очень признательна, если поможете