From 0ca0d47a7bab9a40608067b48a1fb523e9d3c3a3 Mon Sep 17 00:00:00 2001 From: hteppl Date: Sat, 18 Jan 2025 04:08:31 +0300 Subject: [PATCH] Add and fix some keyboards while creating new cluster or server --- handlers/admin/admin_servers.py | 33 ++++++++++++++++++++------------- keyboards/admin/servers_kb.py | 12 ------------ 2 files changed, 20 insertions(+), 25 deletions(-) diff --git a/handlers/admin/admin_servers.py b/handlers/admin/admin_servers.py index dffe9726..d190f1ee 100644 --- a/handlers/admin/admin_servers.py +++ b/handlers/admin/admin_servers.py @@ -9,7 +9,7 @@ from config import ADMIN_PASSWORD, ADMIN_USERNAME, DATABASE_URL from database import check_unique_server_name, get_servers_from_db from filters.admin import IsAdminFilter from keyboards.admin.panel_kb import AdminPanelCallback, build_admin_back_kb -from keyboards.admin.servers_kb import build_cancel_kb, build_manage_server_kb, \ +from keyboards.admin.servers_kb import build_manage_server_kb, \ build_delete_server_kb, \ build_manage_cluster_kb, build_clusters_editor_kb, AdminServerEditorCallback @@ -63,6 +63,7 @@ async def handle_clusters_add( await callback_query.message.edit_text( text=text, + reply_markup=build_admin_back_kb("servers") ) await state.set_state(AdminServersEditor.waiting_for_cluster_name) @@ -78,7 +79,8 @@ async def handle_cluster_name_input( ): if not message.text: await message.answer( - text="❌ Имя кластера не может быть пустым. Попробуйте снова." + text="❌ Имя кластера не может быть пустым. Попробуйте снова.", + reply_markup=build_admin_back_kb("servers") ) return @@ -87,11 +89,11 @@ async def handle_cluster_name_input( text = ( f"Введите имя сервера для кластера {cluster_name}:\n\n" - "Рекомендуется указать локацию сервера в имени.\n\n" - "Пример: server-frankfurt1, fra1" + "Рекомендуется указать локацию и номер сервера в имени.\n\n" + "Пример: de1, fra1, fi2" ) - await message.edit_text( + await message.answer( text=text, reply_markup=build_admin_back_kb("servers"), ) @@ -109,7 +111,8 @@ async def handle_server_name_input( ): if not message.text: await message.answer( - text="❌ Имя сервера не может быть пустым. Попробуйте снова." + text="❌ Имя сервера не может быть пустым. Попробуйте снова.", + reply_markup=build_admin_back_kb("servers") ) return @@ -117,7 +120,8 @@ async def handle_server_name_input( if not await check_unique_server_name(server_name): await message.answer( - text="❌ Сервер с таким именем уже существует. Пожалуйста, выберите другое имя." + text="❌ Сервер с таким именем уже существует. Пожалуйста, выберите другое имя.", + reply_markup=build_admin_back_kb("servers") ) return @@ -132,7 +136,7 @@ async def handle_server_name_input( "URL должен быть без слэша на конце!\n" ) - await message.edit_text( + await message.answer( text=text, reply_markup=build_admin_back_kb("servers"), ) @@ -151,6 +155,7 @@ async def handle_api_url_input( if not message.text or not message.text.strip().startswith("https://"): await message.answer( text="❌ API URL должен начинаться с https://. Попробуйте снова.", + reply_markup=build_admin_back_kb("servers") ) return @@ -169,9 +174,9 @@ async def handle_api_url_input( "Его можно увидеть в панели 3x-ui в информации о клиенте." ) - await message.edit_text( + await message.answer( text=text, - reply_markup=build_cancel_kb(), + reply_markup=build_admin_back_kb("servers"), ) await state.set_state(AdminServersEditor.waiting_for_subscription_url) @@ -188,6 +193,7 @@ async def handle_subscription_url_input( if not message.text or not message.text.strip().startswith("https://"): await message.answer( text="❌ subscription_url должен начинаться с https://. Попробуйте снова.", + reply_markup=build_admin_back_kb("servers") ) return @@ -203,7 +209,7 @@ async def handle_subscription_url_input( "Это номер подключения vless в вашей панели 3x-ui. Обычно это 1 при чистой настройке по гайду.\n\n" ) - await message.edit_text( + await message.answer( text=text, reply_markup=build_admin_back_kb("servers"), ) @@ -222,7 +228,8 @@ async def handle_inbound_id_input( if not inbound_id.isdigit(): await message.answer( - text="❌ inbound_id должен быть числовым значением. Попробуйте снова." + text="❌ inbound_id должен быть числовым значением. Попробуйте снова.", + reply_markup=build_admin_back_kb("servers") ) return @@ -246,7 +253,7 @@ async def handle_inbound_id_input( ) await conn.close() - await message.edit_text( + await message.answer( text=f"✅ Кластер {cluster_name} и сервер {server_name} успешно добавлены!", reply_markup=build_admin_back_kb("servers"), ) diff --git a/keyboards/admin/servers_kb.py b/keyboards/admin/servers_kb.py index e9e45140..e8f1b694 100644 --- a/keyboards/admin/servers_kb.py +++ b/keyboards/admin/servers_kb.py @@ -111,15 +111,3 @@ def build_delete_server_kb(server_name: str) -> InlineKeyboardMarkup: ) builder.adjust(1) return builder.as_markup() - - -def build_cancel_kb() -> InlineKeyboardMarkup: - builder = InlineKeyboardBuilder() - builder.row( - InlineKeyboardButton( - text="❌ Отменить", - callback_data="servers" - ) - ) - builder.adjust(1) - return builder.as_markup()