From b6c1c60609bb0a130239c3b500466d3c64300e0d Mon Sep 17 00:00:00 2001 From: Niken Date: Sun, 16 Nov 2025 14:34:37 +0300 Subject: [PATCH] It's version 0.6.1 I fixed the set command before, if the user didn't exist, it wouldn't record him. --- handlers/schedule.py | 7 +++++-- storage/users_storage.py | 14 +++++++++++++- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/handlers/schedule.py b/handlers/schedule.py index 6e39982..a075892 100644 --- a/handlers/schedule.py +++ b/handlers/schedule.py @@ -81,11 +81,13 @@ def register_handlers(dp: Dispatcher, state: BotState): builder.button(text=group, callback_data=f"set_group:{group}") builder.adjust(5) # количество кнопок в строке - await message.answer( + msg = await message.answer( "Выбери группу из списка:", reply_markup=builder.as_markup() ) + save_message(msg.chat.id, msg.message_id) + @dp.callback_query(lambda c: c.data.startswith("set_group:")) async def process_group_choice(callback: types.CallbackQuery): group = callback.data.split(":")[1] @@ -94,5 +96,6 @@ def register_handlers(dp: Dispatcher, state: BotState): # редактируем сообщение: убираем клавиатуру await callback.message.edit_reply_markup(reply_markup=None) - await callback.message.answer(f"✅ Группа установлена: {group}") + msg = await callback.message.answer(f"✅ Группа установлена: {group}") + save_message(msg.chat.id, msg.message_id) await callback.answer() diff --git a/storage/users_storage.py b/storage/users_storage.py index 037cb3c..457a7cf 100644 --- a/storage/users_storage.py +++ b/storage/users_storage.py @@ -11,11 +11,23 @@ def save_user(user_id: int, group: str = "30тс"): def set_group(user_id: int, group: str = "30тс"): db = get_db() cur = db.cursor() - cur.execute("UPDATE users SET user_group = ? WHERE user_id = ?", (group, user_id)) + + # проверяем, есть ли пользователь + cur.execute("SELECT 1 FROM users WHERE user_id = ?", (user_id,)) + exists = cur.fetchone() + + if exists: + # если есть — обновляем группу + cur.execute("UPDATE users SET user_group = ? WHERE user_id = ?", (group, user_id)) + else: + # если нет — регистрируем нового пользователя + cur.execute("INSERT INTO users (user_id, user_group) VALUES (?, ?)", (user_id, group)) + db.commit() cur.close() db.close() + def get_group(user_id: int, default: str = "30тс") -> str: db = get_db() cur = db.cursor()