Проблема с split

nesterso

Новичок
Пользователь
Фев 14, 2022
14
0
1
Python:
import vk_api, json
import sqlite3
from vk_api.longpoll import VkLongPoll, VkEventType

vk_session = vk_api.VkApi(token="token")
session_api = vk_session.get_api()
longpool = VkLongPoll(vk_session)
db = sqlite3.connect('payson.db')
sql = db.cursor()
sql.execute("""CREATE TABLE IF NOT EXISTS users (
 userId BIGINT,
 act TEXT,
 nick TEXT,
 prefix TEXT,
 post TEXT
)""")
db.commit()
userAct = '0'

def sendMsg(id, some_text):
    vk_session.method("messages.send", {"user_id": id, "message": some_text, "random_id": 0})

def fixMsg(msg):
    msg = "'"+msg+"'"
    return msg

for event in longpool.listen():
    if event.type == VkEventType.MESSAGE_NEW and event.to_me:
        msg = event.text.lower()
        id = event.user_id
        sql.execute(f"SELECT userId FROM users WHERE userId = '{id}'")
        if sql.fetchone() is None:
            sql.execute("INSERT INTO users VALUES (?, ?, ?, ?, ?)", (id, "newUser", "0", "0", "0"))
            db.commit()
            sendMsg(id, "Привет, напиши 'Войти'")
        else:
            userAct = sql.execute(f"SELECT act FROM users WHERE userId = '{id}'").fetchone()[0]
            if userAct == "newUser" and msg == "Войти":
                sendMsg(id, "Отправь 'рег' для регистрации.")
            elif userAct == "newUser" and msg == "рег":
                sql.execute(f"UPDATE users SET act = 'getNick' WHERE userId = {id}")
                db.commit()
                sendMsg(id, "Напиши свое имя:")
            elif userAct == "getNick":
                sql.execute(f"UPDATE users SET nick = {fixMsg(msg)}  WHERE userId = {id}")
                sql.execute(f"UPDATE users SET act = 'getPrefix' WHERE userId = {id}")
                db.commit()
                sendMsg(id, "Твой префикс:")
            elif userAct == "getPrefix":
                sql.execute(f"UPDATE users SET prefix = {fixMsg(msg)} WHERE userId = {id}")
                sql.execute(f"UPDATE users SET act = 'getPost' WHERE userId = {id}")
                db.commit()
                sendMsg(id, "Твоя должность:")
            elif userAct == "getPost":
                sql.execute(f"UPDATE users SET post = {fixMsg(msg)} WHERE userId = {id}")
                sql.execute(f"UPDATE users SET act = 'full' WHERE userId = {id}")
                db.commit()
                sendMsg(id, "Регистрация прошла успешно!")
            elif userAct == "full" and msg == "Войти":
                sendMsg(id, "Ты зарегистрированный пользователь, тебе доступно все: Хлеб, вода, овощи, фрукты, алкоголь, оружие, лекарства.")


Сама суть. Бот вк, мне нужно, чтобы бот кидал не много раз по типу
ник
- ответ
возраст
- ответ
А сразу

Ник
Возраст
И пользователь разом отвечал
Денис
19.

Мне сказали можно сделать по типу info_list = message.text.split("\n")
Но я так и не вкурил. Найдитесь кто поможет. Тг могу связаться так же.
 

nesterso

Новичок
Пользователь
Фев 14, 2022
14
0
1
help
 

Vershitel_sudeb

Vershitel sudeb
Команда форума
Модератор
Мар 17, 2021
933
208
43
20
Москва
ну имеется ввиду что ты отправляешь сообщение
Код:
Ник
Возраст

Пользователь отвечает
Код:
Денис
19

У тебя этот ответ находится в переменной message.text, и чтобы разделить что из этого ник, а что возраст, ты используешь
Python:
info_list = message.text.split("\n")

Теперь у тебя есть список info_list первый элемент которого ник, а второй - возраст
 

nesterso

Новичок
Пользователь
Фев 14, 2022
14
0
1
ну имеется ввиду что ты отправляешь сообщение
Код:
Ник
Возраст

Пользователь отвечает
Код:
Денис
19

У тебя этот ответ находится в переменной message.text, и чтобы разделить что из этого ник, а что возраст, ты используешь
Python:
info_list = message.text.split("\n")

Теперь у тебя есть список info_list первый элемент которого ник, а второй - возраст
message.text у меня выдает ошибку. Что нету такого переменной
 

Vershitel_sudeb

Vershitel sudeb
Команда форума
Модератор
Мар 17, 2021
933
208
43
20
Москва
ну я точно не помню где хранится текст пришедшего ответа, это уже надо в доки лезть
 

nesterso

Новичок
Пользователь
Фев 14, 2022
14
0
1
ну я точно не помню где хранится текст пришедшего ответа, это уже надо в доки лезть
Был бы благодарен, если бы нашли. Сдвинуться с этого не могу
 

Vershitel_sudeb

Vershitel sudeb
Команда форума
Модератор
Мар 17, 2021
933
208
43
20
Москва
ну я думаю event.text
 

nesterso

Новичок
Пользователь
Фев 14, 2022
14
0
1
ну я думаю event.text
Не. Пробовал. Я что только не пробовал
 

nesterso

Новичок
Пользователь
Фев 14, 2022
14
0
1
info_list = event.text.split("\n")
NameError: name 'event' is not defined
 

Vershitel_sudeb

Vershitel sudeb
Команда форума
Модератор
Мар 17, 2021
933
208
43
20
Москва
Покажи где это в коде

(Ты же питон не учил?)
 

nesterso

Новичок
Пользователь
Фев 14, 2022
14
0
1
Это ошибка пишет. Учил
 

Vershitel_sudeb

Vershitel sudeb
Команда форума
Модератор
Мар 17, 2021
933
208
43
20
Москва
Это ошибка говорит о том, что переменной не существует, значит ты куда то не туда вставил эту часть кода скорее всего. В ошибке обычно указывается строка
 

Форум IT Специалистов