Files
Solo_bot/handlers/admin/servers/keyboard.py
T
2025-03-25 16:28:08 +03:00

82 lines
3.0 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
from aiogram.filters.callback_data import CallbackData
from aiogram.types import InlineKeyboardButton, InlineKeyboardMarkup
from aiogram.utils.keyboard import InlineKeyboardBuilder
from ..panel.keyboard import AdminPanelCallback, build_admin_back_btn
class AdminServerEditorCallback(CallbackData, prefix="admin_servers"):
action: str
data: str
def build_clusters_editor_kb(servers: dict) -> InlineKeyboardMarkup:
builder = InlineKeyboardBuilder()
for cluster_name in servers:
builder.button(
text=f"⚙️ {cluster_name}",
callback_data=AdminServerEditorCallback(action="clusters_manage", data=cluster_name).pack(),
)
builder.button(text=" Добавить кластер", callback_data=AdminPanelCallback(action="clusters_add").pack())
builder.row(build_admin_back_btn())
builder.adjust(1)
return builder.as_markup()
def build_manage_cluster_kb(cluster_servers, cluster_name) -> InlineKeyboardMarkup:
builder = InlineKeyboardBuilder()
for server in cluster_servers:
builder.button(
text=f"🌍 {server['server_name']}",
callback_data=AdminServerEditorCallback(action="servers_manage", data=server["server_name"]).pack(),
)
builder.button(
text=" Добавить сервер",
callback_data=AdminServerEditorCallback(action="servers_add", data=cluster_name).pack(),
)
builder.row(
InlineKeyboardButton(
text="🌐 Доступность",
callback_data=AdminServerEditorCallback(action="servers_availability", data=cluster_name).pack(),
),
InlineKeyboardButton(
text="🔄 Синхронизация",
callback_data=AdminServerEditorCallback(action="clusters_sync", data=cluster_name).pack(),
),
)
builder.button(
text="💾 Создать бэкап кластера",
callback_data=AdminServerEditorCallback(action="clusters_backup", data=cluster_name).pack(),
)
builder.row(build_admin_back_btn("servers"))
builder.adjust(1, 1, 1, 1, 1, 2, 1)
return builder.as_markup()
def build_manage_server_kb(server_name: str, cluster_name: str) -> InlineKeyboardMarkup:
builder = InlineKeyboardBuilder()
builder.button(
text="🗑️ Удалить", callback_data=AdminServerEditorCallback(action="servers_delete", data=server_name).pack()
)
builder.button(
text="🔙 Назад", callback_data=AdminServerEditorCallback(action="clusters_manage", data=cluster_name).pack()
)
builder.adjust(1)
return builder.as_markup()
def build_delete_server_kb(server_name: str) -> InlineKeyboardMarkup:
builder = InlineKeyboardBuilder()
builder.button(
text="✅ Да", callback_data=AdminServerEditorCallback(action="servers_delete_confirm", data=server_name).pack()
)
builder.button(
text="🔙 Назад", callback_data=AdminServerEditorCallback(action="servers_manage", data=server_name).pack()
)
builder.adjust(1)
return builder.as_markup()