1.8 Новая таблица с персонажами флуда

This commit is contained in:
Verum
2025-03-02 22:43:26 +07:00
parent efa55732cc
commit e94998c91b

View File

@@ -7,10 +7,13 @@ from ProjectsFiles import BotVar
# Настройка экспорта в модули # Настройка экспорта в модули
__all__ = ("create_user_db",) __all__ = ("create_user_db",)
# Функция создания базы данных # Функция создания базы данных
async def create_user_db(bd_name: str = BotVar.bd_names): async def create_user_db(bd_name: str = BotVar.bd_names):
with sqlite3.connect(bd_name) as db: with sqlite3.connect(bd_name) as db:
cursor = db.cursor() cursor = db.cursor()
# Таблица пользователей
cursor.execute(''' cursor.execute('''
CREATE TABLE IF NOT EXISTS users ( CREATE TABLE IF NOT EXISTS users (
user_id INTEGER PRIMARY KEY, user_id INTEGER PRIMARY KEY,
@@ -18,10 +21,12 @@ async def create_user_db(bd_name: str = BotVar.bd_names):
username TEXT, username TEXT,
first_name TEXT, first_name TEXT,
last_name TEXT, last_name TEXT,
role TEXT DEFAULT 'active', role TEXT DEFAULT NULL,
status TEXT DEFAULT 'user' status TEXT DEFAULT 'active',
user TEXT DEFAULT 'user'
);''') );''')
# Таблица сообщений пользователей
cursor.execute(''' cursor.execute('''
CREATE TABLE IF NOT EXISTS user_messages ( CREATE TABLE IF NOT EXISTS user_messages (
user_id INTEGER PRIMARY KEY, -- Уникальный ключ user_id INTEGER PRIMARY KEY, -- Уникальный ключ
@@ -32,7 +37,147 @@ async def create_user_db(bd_name: str = BotVar.bd_names):
messages_per_week INTEGER DEFAULT 0, messages_per_week INTEGER DEFAULT 0,
messages_per_month INTEGER DEFAULT 0, messages_per_month INTEGER DEFAULT 0,
total_messages INTEGER DEFAULT 0, total_messages INTEGER DEFAULT 0,
FOREIGN KEY (user_id) REFERENCES users (user_id) FOREIGN KEY (user_id) REFERENCES users (user_id) ON DELETE CASCADE
);''') );''')
# Таблица персонажей
cursor.execute('''
CREATE TABLE IF NOT EXISTS characters (
id INTEGER PRIMARY KEY AUTOINCREMENT,
region TEXT NOT NULL,
name TEXT NOT NULL,
status TEXT DEFAULT 'Свободно',
user_id INTEGER DEFAULT NULL,
comment TEXT DEFAULT '',
FOREIGN KEY (user_id) REFERENCES users (user_id) ON DELETE SET NULL
);''')
characters = [
# Мондштадт
("Мондштадт", "Венти", "Свободно", ""),
("Мондштадт", "Кэйа", "Свободно", ""),
("Мондштадт", "Альбедо", "Свободно", ""),
("Мондштадт", "Дилюк", "Свободно", ""),
("Мондштадт", "Мика", "Свободно", ""),
("Мондштадт", "Беннет", "Свободно", ""),
("Мондштадт", "Рэйзор", "Свободно", ""),
("Мондштадт", "Эола", "Свободно", ""),
("Мондштадт", "Мона", "Свободно", ""),
("Мондштадт", "Джинн", "Свободно", ""),
("Мондштадт", "Диона", "Свободно", ""),
("Мондштадт", "Лиза", "Свободно", ""),
("Мондштадт", "Ноэлль", "Свободно", ""),
("Мондштадт", "Сахароза", "Свободно", ""),
("Мондштадт", "Розария", "Свободно", ""),
("Мондштадт", "Эмбер", "Свободно", ""),
("Мондштадт", "Фишль", "Свободно", ""),
("Мондштадт", "Барбара", "Свободно", ""),
# Ли Юэ
("Ли Юэ", "Чжун Ли", "Свободно", ""),
("Ли Юэ", "Сяо", "Свободно", ""),
("Ли Юэ", "Син Цю", "Свободно", ""),
("Ли Юэ", "Чун Юнь", "Свободно", ""),
("Ли Юэ", "Бай Чжу", "Свободно", ""),
("Ли Юэ", "Е Лань", "Свободно", ""),
("Ли Юэ", "Шень Хэ", "Свободно", ""),
("Ли Юэ", "Гань Юй", "Свободно", ""),
("Ли Юэ", "Ци Ци", "Свободно", ""),
("Ли Юэ", "Кэ Цин", "Свободно", ""),
("Ли Юэ", "Янь Фэй", "Свободно", ""),
("Ли Юэ", "Нин Гуан", "Свободно", ""),
("Ли Юэ", "Бэй Доу", "Свободно", ""),
("Ли Юэ", "Яо Яо", "Свободно", ""),
("Ли Юэ", "Ка Мин", "Свободно", ""),
("Ли Юэ", "Сянь Юнь", "Свободно", ""),
("Ли Юэ", "Юнь Цзинь", "Свободно", ""),
("Ли Юэ", "Ху Тао", "Свободно", ""),
("Ли Юэ", "Лань Янь", "Свободно", ""),
# Инадзума
("Инадзума", "Итто", "Свободно", ""),
("Инадзума", "Горо", "Свободно", ""),
("Инадзума", "Аято", "Свободно", ""),
("Инадзума", "Хэйдзо", "Свободно", ""),
("Инадзума", "Тома", "Свободно", ""),
("Инадзума", "Кадзуха", "Свободно", ""),
("Инадзума", "Кирара", "Свободно", ""),
("Инадзума", "Кудзё Сара", "Свободно", ""),
("Инадзума", "Ёимия", "Свободно", ""),
("Инадзума", "Аяка", "Свободно", ""),
("Инадзума", "Сангономия Кокоми", "Свободно", ""),
("Инадзума", "Яэ Мико", "Свободно", ""),
("Инадзума", "Райдэн Эи", "Свободно", ""),
("Инадзума", "Саю", "Свободно", ""),
("Инадзума", "Куки Синобу", "Свободно", ""),
("Инадзума", "Мидзуки", "Свободно", ""),
# Сумеру
("Сумеру", "Аль-Хайтам", "Свободно", ""),
("Сумеру", "Кавех", "Свободно", ""),
("Сумеру", "Сайно", "Свободно", ""),
("Сумеру", "Тигнари", "Свободно", ""),
("Сумеру", "Сетос", "Свободно", ""),
("Сумеру", "Нилу", "Свободно", ""),
("Сумеру", "Нахида", "Свободно", ""),
("Сумеру", "Лайла", "Свободно", ""),
("Сумеру", "Кандакия", "Свободно", ""),
("Сумеру", "Дори", "Свободно", ""),
("Сумеру", "Дэхья", "Свободно", ""),
("Сумеру", "Коллеи", "Свободно", ""),
("Сумеру", "Фарузан", "Свободно", ""),
# Фонтейн
("Фонтейн", "Лини", "Свободно", ""),
("Фонтейн", "Ризли", "Свободно", ""),
("Фонтейн", "Невиллет", "Свободно", ""),
("Фонтейн", "Фремине", "Свободно", ""),
("Фонтейн", "Линетт", "Свободно", ""),
("Фонтейн", "Эмилия", "Свободно", ""),
("Фонтейн", "Клоринда", "Свободно", ""),
("Фонтейн", "Навия", "Свободно", ""),
("Фонтейн", "Шарлотта", "Свободно", ""),
("Фонтейн", "Фурина", "Свободно", ""),
("Фонтейн", "Тиори", "Свободно", ""),
("Фонтейн", "Сиджвин", "Свободно", ""),
# Натлан
("Натлан", "Кинич", "Свободно", ""),
("Натлан", "Оророн", "Свободно", ""),
("Натлан", "Муалани", "Свободно", ""),
("Натлан", "Ситлали", "Свободно", ""),
("Натлан", "Шилонен", "Свободно", ""),
("Натлан", "Иансан", "Свободно", ""),
("Натлан", "Мавуика", "Свободно", ""),
("Натлан", "Часка", "Свободно", ""),
# Фатуи
("Фатуи", "Тарталья", "Свободно", ""),
("Фатуи", "Панталоне", "Свободно", ""),
("Фатуи", "Дотторе", "Свободно", ""),
("Фатуи", "Капитано", "Свободно", ""),
("Фатуи", "Пьеро", "Свободно", ""),
("Фатуи", "Пульничелла", "Свободно", ""),
("Фатуи", "Синьора", "Свободно", ""),
("Фатуи", "Арлекино", "Свободно", ""),
("Фатуи", "Коломбина", "Свободно", ""),
("Фатуи", "Царица", "Свободно", ""),
("Фатуи", "Странник", "Свободно", ""),
# Иные персонажи
("Иные персонажи", "Итэр", "Свободно", ""),
("Иные персонажи", "Люмин", "Свободно", ""),
("Иные персонажи", "Элой", "Свободно", ""),
("Иные персонажи", "Паймон", "Свободно", ""),
("Иные персонажи", "Дайнслейф", "Свободно", ""),
]
# Проверяем, пуста ли таблица characters
cursor.execute("SELECT COUNT(*) FROM characters;")
if cursor.fetchone()[0] == 0:
cursor.executemany('''
INSERT INTO characters (region, name, status, comment)
VALUES (?, ?, ?, ?);
''', characters)
db.commit() db.commit()