MIKHAN_GO
@MIKHAN_GO

Почему не получается получить текст из сообщения в vk_api?

Не получается получить текст сообщения в vk_api. (Пробовал text, message, obj.text)
import vk_api
from vk_api.longpoll import VkLongPoll, VkEventType
import json

from config import bottoken
from all_msg import mass, mass_key
from handlers.database_handler import DatabaseSitesHandler

import sqlite3


conn = sqlite3.connect('need.db')
cur = conn.cursor()
cur.execute("""CREATE TABLE IF NOT EXISTS users(
   userid INT,
   etap INT);
""")
cur.execute("""CREATE TABLE IF NOT EXISTS sites(
   licensy_id INT,
   site_name TEXT);
""")
conn.commit()


session = vk_api.VkApi(token=bottoken)
dbsites = DatabaseSitesHandler('need.db', 'sites')


def send_message(user_id, message):
    session.method("messages.send", {
        "user_id": user_id,
        "message": message,
        "random_id": 0
    })

def commands(t, u):
    text = t
    user_id = u
    if '/addsite' in text:
        text = text.split(' ')
        t = dbsites.try_insert_data(text[1], text[2])
        send_message(user_id, t)
    elif '/delsite' in text:
        text = text.split(' ')
        t = dbsites.try_delete_data(text[1])
        send_message(user_id, t)
    elif '/mark' in text:
        text = text[6:]
        send_message(user_id, text)
    else:
        send_message(user_id, dbsites.select_all)

def is_msg(func):
    def _wrapper(*args, **kwargs):
        for event in VkLongPoll(session).listen():
            print(event.text)
            t = event.obj.text
            if event.type == VkEventType.MESSAGE_NEW and event.to_me and '/' not in t:
                func(event, *args, **kwargs)
            else:
                commands(t, event.user_id)
    return _wrapper


@is_msg
def sendmsg(event):
    text = event.text.lower()
    user_id = event.user_id
    el = 0
    with sqlite3.connect("need.db") as con:
        cur = con.cursor()
        info = cur.execute('SELECT * FROM users WHERE userid=?', (int(user_id), ))

        k = info.fetchone()

        if k is None:
            cur.execute(f"""INSERT INTO users(userid, etap)
            VALUES({int(user_id)}, {int(0)});""")
            con.commit()
        else:
            el = int(k[1])
    el %= 3
    if mass[el] != []:
        send_message(user_id, mass[el])
    else:
        send_message(user_id, mass[el])

    if el == 2:
        k = dbsites.select_all
        for ell in k:
            send_message(user_id, f' {ell[0]}\nЛицензия: №{ell[1]}\n')

    sqlite_connection = sqlite3.connect('need.db')
    cursor = sqlite_connection.cursor()

    sql_update_query = f"""Update users set etap = {el + 1} where userid = {user_id}"""
    cursor.execute(sql_update_query)
    sqlite_connection.commit()
    cursor.close()

sendmsg()

Ошибка в строке 56
Traceback (most recent call last):
File "D:\code\github.com\MIKHANGO\zaim_bot\main.py", line 101, in
sendmsg()
File "D:\code\github.com\MIKHANGO\zaim_bot\main.py", line 56, in _wrapper
print(event.text)
AttributeError: 'Event' object has no attribute 'text'
  • Вопрос задан
  • 107 просмотров
Пригласить эксперта
Ответы на вопрос 1
lxstvayne
@lxstvayne
Люблю Python
event.obj.text
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
01 мая 2024, в 00:29
2000 руб./за проект
01 мая 2024, в 00:20
15000 руб./за проект
30 апр. 2024, в 23:39
5000 руб./за проект