В общем, я делаю ники для участников беседы, создаю функцию niki, в которой расписан ход действий и моя база sqlite3.
Если в сообщении в беседе есть /ник (nickname), то ник регистрируется и делается индивидуальным. Нужно сделать так, чтобы после написании ника, ник присвоился именно этому человеку, никакому другому, то есть к его id. Затем нужно, чтобы этот ник можно было использовать в дальнейших командах, пример приведу ниже основного кода.
db = sqlite3.connect("niki.db")
sql = db.cursor()
sql.execute("""CREATE TABLE IF NOT EXISTS users (
nickname TEXT
)""")
db.commit()
def niki():
user_nickname011 = event.object.message['text'] #тут я убираю /ник, чтобы остался сам никнейм для обозначения
user_nickname01 = user_nickname011.split()
fragment_da = '/ник'
new_words001 = []
for word in user_nickname01:
if fragment_da not in word:
new_words001.append(word)
user_nickname = ' '.join(new_words001)
sql.execute(f"SELECT nickname FROM users WHERE nickname = '{user_nickname}'")
if sql.fetchone() is None:
sql.execute(f"INSERT INTO users VALUES (?)", (user_nickname,))
db.commit()
vk_session.method('messages.send', {'chat_id':id, "message": "зареган", 'random_id' : 0})
else:
vk_session.method('messages.send', {'chat_id':id, "message": "такой ник уже есть", 'random_id' : 0})
if "/ник" in msg: #сама регистрация никнейма
niki()
#пример использования ника
if user_id == id2 and "/тест" in msg: #id2 = это id привязанные к участникам беседы
vk_session.method('messages.send', {'chat_id':id, "message" : f"{user_nickname}", 'random_id' : 0}) #тут мне пишет, что нет такой переменной