заполненность серверов в процентах

This commit is contained in:
Vlad
2024-10-03 06:42:40 +03:00
parent 4d2f40d36c
commit d9522db74c
2 changed files with 26 additions and 11 deletions
+13 -6
View File
@@ -36,12 +36,19 @@ class Form(StatesGroup):
async def process_callback_create_key(callback_query: CallbackQuery, state: FSMContext):
tg_id = callback_query.from_user.id
# Запрос выбора сервера
server_buttons = [
[InlineKeyboardButton(text=server['name'], callback_data=f'select_server|{server_id}')]
for server_id, server in SERVERS.items()
]
# Получаем количество подключений для каждого сервера
server_buttons = []
conn = await asyncpg.connect(DATABASE_URL)
try:
for server_id, server in SERVERS.items():
# Получаем количество ключей на сервере
count = await conn.fetchval('SELECT COUNT(*) FROM keys WHERE server_id = $1', server_id)
percent_full = (count / 100) * 100 # Заполнение в процентах
server_name = f"{server['name']} ({percent_full:.1f}%)"
server_buttons.append([InlineKeyboardButton(text=server_name, callback_data=f'select_server|{server_id}')])
finally:
await conn.close()
await callback_query.message.edit_text(
"<b>⚙️ Выберите сервер для создания ключа:</b>",
parse_mode="HTML",
+13 -5
View File
@@ -300,11 +300,19 @@ async def process_callback_change_location(callback_query: types.CallbackQuery):
tg_id = callback_query.from_user.id
client_id = callback_query.data.split('|')[1] # Используем разделитель вертикальная черта
# Запрос выбора сервера
server_buttons = [
[types.InlineKeyboardButton(text=server['name'], callback_data=f'select_server&{server_id}&{client_id}')]
for server_id, server in SERVERS.items()
]
# Получаем количество подключений для каждого сервера
server_buttons = []
conn = await asyncpg.connect(DATABASE_URL)
try:
for server_id, server in SERVERS.items():
# Получаем количество ключей на сервере
count = await conn.fetchval('SELECT COUNT(*) FROM keys WHERE server_id = $1', server_id)
percent_full = (count / 100) * 100 # Заполнение в процентах
server_name = f"{server['name']} ({percent_full:.1f}%)"
server_buttons.append([types.InlineKeyboardButton(text=server_name, callback_data=f'select_server&{server_id}&{client_id}')])
finally:
await conn.close()
keyboard = types.InlineKeyboardMarkup(inline_keyboard=server_buttons)
response_message = "<b>Выберите новый сервер для вашего ключа:</b>"