Files
PrimoWorldsBot/SQLite3/bd_func/bd_add_user.py

40 lines
1.6 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# SQLite3/bd_func/bd_add_user.py
# Добавление пользователя в базу данных bd|user
import sqlite3
from ProjectsFiles import BotVar
# Настройка экспорта в модули
__all__ = ("add_user",)
# Функция добавления пользователя с последовательным user_id
async def add_user(tg_id: int, username: str, first_name: str,
last_name: str, role: str, status: str, bd_name: str = BotVar.bd_names):
with sqlite3.connect(bd_name) as db:
cursor = db.cursor()
# Проверяем, существует ли пользователь с таким tg_id
cursor.execute("SELECT user_id FROM users WHERE tg_id = ?", (tg_id,))
if cursor.fetchone():
return # Пользователь уже существует, ничего не добавляем
# Находим максимальный user_id
cursor.execute("SELECT MAX(user_id) FROM users")
max_id = cursor.fetchone()[0]
new_user_id = 1 if max_id is None else max_id + 1
# Добавляем нового пользователя
cursor.execute('''
INSERT INTO users (user_id, tg_id, username, first_name, last_name, role, status)
VALUES (?, ?, ?, ?, ?, ?, ?)
''', (new_user_id, tg_id, username, first_name, last_name, role, status))
# Добавляем запись в user_messages
cursor.execute('''
INSERT INTO user_messages (user_id)
VALUES (?)
''', (new_user_id,))
db.commit()