It's version 0.6.1 I fixed the set command before, if the user didn't exist, it wouldn't record him.

This commit is contained in:
Niken
2025-11-16 14:34:37 +03:00
parent be9ec785f4
commit b6c1c60609
2 changed files with 18 additions and 3 deletions
+5 -2
View File
@@ -81,11 +81,13 @@ def register_handlers(dp: Dispatcher, state: BotState):
builder.button(text=group, callback_data=f"set_group:{group}") builder.button(text=group, callback_data=f"set_group:{group}")
builder.adjust(5) # количество кнопок в строке builder.adjust(5) # количество кнопок в строке
await message.answer( msg = await message.answer(
"Выбери группу из списка:", "Выбери группу из списка:",
reply_markup=builder.as_markup() reply_markup=builder.as_markup()
) )
save_message(msg.chat.id, msg.message_id)
@dp.callback_query(lambda c: c.data.startswith("set_group:")) @dp.callback_query(lambda c: c.data.startswith("set_group:"))
async def process_group_choice(callback: types.CallbackQuery): async def process_group_choice(callback: types.CallbackQuery):
group = callback.data.split(":")[1] 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.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() await callback.answer()
+13 -1
View File
@@ -11,11 +11,23 @@ def save_user(user_id: int, group: str = "30тс"):
def set_group(user_id: int, group: str = "30тс"): def set_group(user_id: int, group: str = "30тс"):
db = get_db() db = get_db()
cur = db.cursor() 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() db.commit()
cur.close() cur.close()
db.close() db.close()
def get_group(user_id: int, default: str = "30тс") -> str: def get_group(user_id: int, default: str = "30тс") -> str:
db = get_db() db = get_db()
cur = db.cursor() cur = db.cursor()