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()