From 1549f01699f3742f29e62ede0d5c67c0493f2131 Mon Sep 17 00:00:00 2001 From: Zakhar Izmaylov Date: Mon, 25 Nov 2024 00:29:06 +0300 Subject: [PATCH] =?UTF-8?q?Refactor=20notification=20and=20admin=20user=20?= =?UTF-8?q?editor=20handlers=20to=20improve=20user=20feedback.=20Comment?= =?UTF-8?q?=20out=20inactive=20trial=20user=20notifications=20in=20notific?= =?UTF-8?q?ations.py.=20Enhance=20error=20messages=20with=20consistent=20"?= =?UTF-8?q?=D0=9D=D0=B0=D0=B7=D0=B0=D0=B4"=20button=20for=20better=20navig?= =?UTF-8?q?ation=20in=20admin=5Fuser=5Feditor.py.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- handlers/admin/admin_user_editor.py | 56 +++++++++++++++++++---------- handlers/notifications.py | 5 +-- 2 files changed, 40 insertions(+), 21 deletions(-) diff --git a/handlers/admin/admin_user_editor.py b/handlers/admin/admin_user_editor.py index 83a45c85..63c87ebe 100644 --- a/handlers/admin/admin_user_editor.py +++ b/handlers/admin/admin_user_editor.py @@ -45,7 +45,9 @@ async def handle_username_input(message: types.Message, state: FSMContext, sessi user_record = await session.fetchrow("SELECT tg_id FROM users WHERE username = $1", username) if not user_record: - await message.answer("🔍 Пользователь с указанным username не найден. 🚫") + builder = InlineKeyboardBuilder() + builder.row(InlineKeyboardButton(text="🔙 Назад", callback_data="user_editor")) + await message.answer("🔍 Пользователь с указанным username не найден. 🚫", reply_markup=builder.as_markup()) await state.clear() return @@ -56,7 +58,9 @@ async def handle_username_input(message: types.Message, state: FSMContext, sessi referral_count = await session.fetchval("SELECT COUNT(*) FROM referrals WHERE referrer_tg_id = $1", tg_id) if balance is None: - await message.answer("🚫 Пользователь с указанным tg_id не найден. 🔍") + builder = InlineKeyboardBuilder() + builder.row(InlineKeyboardButton(text="🔙 Назад", callback_data="user_editor")) + await message.answer("🚫 Пользователь с указанным tg_id не найден. 🔍", reply_markup=builder.as_markup()) await state.clear() return @@ -102,7 +106,9 @@ async def handle_tg_id_input(message: types.Message, state: FSMContext, session: referral_count = await session.fetchval("SELECT COUNT(*) FROM referrals WHERE referrer_tg_id = $1", tg_id) if balance is None: - await message.answer("❌ Пользователь с указанным tg_id не найден. 🔍") + builder = InlineKeyboardBuilder() + builder.row(InlineKeyboardButton(text="🔙 Назад", callback_data="user_editor")) + await message.answer("❌ Пользователь с указанным tg_id не найден. 🔍", reply_markup=builder.as_markup()) await state.clear() return @@ -163,7 +169,11 @@ async def process_balance_change(callback_query: CallbackQuery, state: FSMContex @router.message(UserEditorState.waiting_for_new_balance, IsAdminFilter()) async def handle_new_balance_input(message: types.Message, state: FSMContext, session: Any): if not message.text.isdigit() or int(message.text) < 0: - await message.answer("❌ Пожалуйста, введите корректную сумму для изменения баланса.") + builder = InlineKeyboardBuilder() + builder.row(InlineKeyboardButton(text="🔙 Назад", callback_data="user_editor")) + await message.answer( + "❌ Пожалуйста, введите корректную сумму для изменения баланса.", reply_markup=builder.as_markup() + ) return new_balance = int(message.text) @@ -239,7 +249,11 @@ async def process_key_edit(callback_query: CallbackQuery, session: Any): key_details = await get_key_details(email, session) if not key_details: - await callback_query.message.answer("🔍 Информация о ключе не найдена. 🚫") + builder = InlineKeyboardBuilder() + builder.row(InlineKeyboardButton(text="🔙 Назад", callback_data="user_editor")) + await callback_query.message.answer( + "🔍 Информация о ключе не найдена. 🚫", reply_markup=builder.as_markup() + ) return response_message = ( @@ -280,13 +294,7 @@ async def handle_key_name_input(message: types.Message, state: FSMContext, sessi if not key_details: builder = InlineKeyboardBuilder() - builder.row( - InlineKeyboardButton( - text="🔙 Назад в меню администратора", - callback_data="user_editor", - ) - ) - + builder.row(InlineKeyboardButton(text="🔙 Назад", callback_data="user_editor")) await message.answer( "🚫 Пользователь с указанным именем ключа не найден.", reply_markup=builder.as_markup(), @@ -336,7 +344,9 @@ async def handle_expiry_time_input(message: types.Message, state: FSMContext, se email = user_data.get("email") if not email: - await message.answer("📧 Email не найден в состоянии. 🚫") + builder = InlineKeyboardBuilder() + builder.row(InlineKeyboardButton(text="🔙 Назад", callback_data="user_editor")) + await message.answer("📧 Email не найден в состоянии. 🚫", reply_markup=builder.as_markup()) await state.clear() return @@ -346,13 +356,17 @@ async def handle_expiry_time_input(message: types.Message, state: FSMContext, se client_id = await get_client_id_by_email(email) if client_id is None: - await message.answer(f"🚫 Клиент с email {email} не найден. 🔍") + builder = InlineKeyboardBuilder() + builder.row(InlineKeyboardButton(text="🔙 Назад", callback_data="user_editor")) + await message.answer(f"🚫 Клиент с email {email} не найден. 🔍", reply_markup=builder.as_markup()) await state.clear() return record = await session.fetchrow("SELECT server_id FROM keys WHERE client_id = $1", client_id) if not record: - await message.answer("🚫 Клиент не найден в базе данных. 🔍") + builder = InlineKeyboardBuilder() + builder.row(InlineKeyboardButton(text="🔙 Назад", callback_data="user_editor")) + await message.answer("🚫 Клиент не найден в базе данных. 🔍", reply_markup=builder.as_markup()) await state.clear() return @@ -384,7 +398,11 @@ async def handle_expiry_time_input(message: types.Message, state: FSMContext, se builder.row(InlineKeyboardButton(text="🔙 Назад", callback_data="admin")) await message.answer(response_message, reply_markup=builder.as_markup()) except ValueError: - await message.answer("❌ Пожалуйста, используйте формат: YYYY-MM-DD HH:MM:SS.") + builder = InlineKeyboardBuilder() + builder.row(InlineKeyboardButton(text="🔙 Назад", callback_data="user_editor")) + await message.answer( + "❌ Пожалуйста, используйте формат: YYYY-MM-DD HH:MM:SS.", reply_markup=builder.as_markup() + ) except Exception as e: logger.error(e) await state.clear() @@ -396,9 +414,9 @@ async def process_callback_delete_key(callback_query: types.CallbackQuery, sessi client_id = await session.fetchval("SELECT client_id FROM keys WHERE email = $1", email) if client_id is None: - await callback_query.message.answer( - "🔍 Ключ не найден. 🚫", - ) + builder = InlineKeyboardBuilder() + builder.row(InlineKeyboardButton(text="🔙 Назад", callback_data="user_editor")) + await callback_query.message.answer("🔍 Ключ не найден. 🚫", reply_markup=builder.as_markup()) return builder = InlineKeyboardBuilder() diff --git a/handlers/notifications.py b/handlers/notifications.py index 3940c726..6e92e053 100644 --- a/handlers/notifications.py +++ b/handlers/notifications.py @@ -35,8 +35,9 @@ async def notify_expiring_keys(bot: Bot): logger.info("Начало обработки уведомлений.") - await notify_inactive_trial_users(bot, conn) - await asyncio.sleep(1) + # TODO + # await notify_inactive_trial_users(bot, conn) + # await asyncio.sleep(1) await notify_10h_keys(bot, conn, current_time, threshold_time_10h) await asyncio.sleep(1) await notify_24h_keys(bot, conn, current_time, threshold_time_24h)