Имеется код чат бота вк который отправляет дз из бд, и расписание (.jpg). Мне нужна задержка чтоб получить сообщение и его содержимое записать в бд.
import vk_api
import config
from vk_api.bot_longpoll import VkBotEventType, VkBotLongPoll
import json
import sqlite3
import os
import requests
THIS_FOLDER = os.path.dirname(os.path.abspath(__file__))
my_file = os.path.join(THIS_FOLDER, 'mydb.db')
raspisanie = os.path.join(THIS_FOLDER, 'raspisanie.jpg')
conn = sqlite3.connect(my_file)
conn.text_factory = sqlite3.OptimizedUnicode
cursor = conn.cursor()
cursor.execute("SELECT homework FROM Homework")
homework = cursor.fetchall()
vk = vk_api.VkApi(token="***")
vk._auth_token()
vk.get_api()
longpoll = VkBotLongPoll(vk, "***")
keyboard = {
"one_time": False,
"buttons": [
[{
"action": {
"type": "text",
"payload": "{\"button\": \"1\"}",
"label": "Чё сегодня задали?"
},
"color": "positive"
},
{
"action": {
"type": "text",
"payload": "{\"button\": \"2\"}",
"label": "Задать дз"
},
"color": "negative"
}],[{
"action": {
"type": "text",
"payload": "{\"button\": \"3\"}",
"label": "Расписание"
},
"color": "secondary"
}],[
{
"action": {
"type": "text",
"payload": "{\"button\": \"3\"}",
"label": "Помощь"
},
"color": "primary"
},
{
"action": {
"type": "open_app",
"app_id": ***,
"owner_id": -***,
"hash": "",
"label": "***"
}
}
]
]
}
otmena = {
"one_time": False,
"buttons": [
[{
"action": {
"type": "text",
"payload": "{\"button\": \"2\"}",
"label": "Назад"
},
"color": "negative"
}]
]
}
creators = {
"one_time": False,
"buttons": [
[{
"action": {
"type": "open_link",
"link": "https://vk.com/***",
"payload": "{\"button\": \"2\"}",
"label": "Создатель"
}
},{
"action": {
"type": "open_link",
"link": "https://vk.com/***",
"payload": "{\"button\": \"2\"}",
"label": "Бета-тестер"
}
}],[
{
"action": {
"type": "text",
"payload": "{\"button\": \"2\"}",
"label": "Назад"
},
"color": "negative"
}]
]
}
otmena = json.dumps(otmena, ensure_ascii=False).encode('utf-8')
keyboard = json.dumps(keyboard, ensure_ascii=False).encode('utf-8')
creators = json.dumps(creators, ensure_ascii=False).encode('utf-8')
keyboard = str(keyboard.decode('utf-8'))
otmena = str(otmena.decode('utf-8'))
creators = str(creators.decode('utf-8'))
while True:
for event in longpoll.listen():
if event.type == VkBotEventType.MESSAGE_NEW:
a = vk.method('photos.getMessagesUploadServer')
b = requests.post(a['upload_url'], files={'photo': open(raspisanie, 'rb')}).json()
c = vk.method('photos.saveMessagesPhoto', {'photo': b['photo'], 'server': b['server'], 'hash': b['hash']})[0]
d = 'photo{}_{}'.format(c['owner_id'], c['id'])
if event.object.text.lower() == "начать":
vk.method("messages.send", {"peer_id": event.object.from_id, "message": "Ну сообственно, кнопки внизу :)",
"keyboard": keyboard, "random_id": 0})
if event.object.text.lower() == "задать дз":
vk.method("messages.send", {"peer_id": event.object.from_id, "message": "Напишите дз одним сообщением.","keyboard": otmena, "random_id": 0})
#ЗАДЕРЖКА НУЖНА ТУТ (ОЖИДАНИЕ СООБЩЕНИЯ)
if event.object.text.lower() == "чё сегодня задали?":
cursor.execute("SELECT homework FROM Homework")
result = cursor.fetchall()
vk.method("messages.send", {"peer_id": event.object.from_id, "message": result,"keyboard": keyboard, "random_id": 0})
if event.object.text.lower() == "помощь":
vk.method("messages.send", {"peer_id": event.object.from_id, "message": """
1. Длина сообщения содержащего дз не должна превышать 500 символов.
2. ВСЁ ЛОГИРУЕТСЯ ПО ЭТОМУ ДАЖЕ НЕ ПЫТАЙСЯ КРАШНУТЬ БОТА/УДАЛИТЬ ДЗ ИНАЧЕ ПОПАДЕШЬ В БАН!
3. Если нужно добавить дз то писать необходимо заново так как при записи предыдущая удаляется.
4. Другая проблема? Пиши [***|ему].""",
"keyboard": creators, "random_id": 0})
if event.object.text.lower() == "назад":
vk.method("messages.send", {"peer_id": event.object.from_id, "message": "Действие отменено.","keyboard": keyboard, "random_id": 0})
if event.object.text.lower() == "расписание":
vk.method('messages.send', {"peer_id": event.object.from_id, "keyboard": keyboard, 'attachment': d, "random_id": 0})