Fix server validation and add key renewal hooks
This commit is contained in:
@@ -136,10 +136,19 @@ async def process_callback_delete_server(
|
||||
if all_servers:
|
||||
builder = InlineKeyboardBuilder()
|
||||
for s_name, key_count in all_servers:
|
||||
callback_data = f"transfer_to_server|{s_name}|{server_name}"
|
||||
if len(callback_data.encode('utf-8')) > 64:
|
||||
await callback_query.message.edit_text(
|
||||
text=f"❌ Ошибка: название сервера '{s_name}' слишком длинное.\n\n"
|
||||
f"Пожалуйста, переименуйте сервер в более короткое название и попробуйте снова.",
|
||||
reply_markup=build_admin_back_kb("clusters"),
|
||||
)
|
||||
return
|
||||
|
||||
builder.row(
|
||||
InlineKeyboardButton(
|
||||
text=f"{s_name} ({key_count})",
|
||||
callback_data=f"transfer_to_server|{s_name}|{server_name}",
|
||||
callback_data=callback_data,
|
||||
)
|
||||
)
|
||||
builder.row(
|
||||
@@ -189,10 +198,19 @@ async def process_callback_delete_server(
|
||||
|
||||
builder = InlineKeyboardBuilder()
|
||||
for cl_name, key_count in all_clusters:
|
||||
callback_data = f"transfer_to_cluster|{cl_name}|{cluster_name}|{server_name}"
|
||||
if len(callback_data.encode('utf-8')) > 64:
|
||||
await callback_query.message.edit_text(
|
||||
text=f"❌ Ошибка: название сервера '{server_name}' или кластера '{cl_name}' слишком длинное.\n\n"
|
||||
f"Пожалуйста, переименуйте сервер в более короткое название и попробуйте снова.",
|
||||
reply_markup=build_admin_back_kb("clusters"),
|
||||
)
|
||||
return
|
||||
|
||||
builder.row(
|
||||
InlineKeyboardButton(
|
||||
text=f"{cl_name} ({key_count})",
|
||||
callback_data=f"transfer_to_cluster|{cl_name}|{cluster_name}|{server_name}",
|
||||
callback_data=callback_data,
|
||||
)
|
||||
)
|
||||
builder.row(
|
||||
@@ -424,6 +442,13 @@ async def apply_field_edit(message: types.Message, state: FSMContext, session: A
|
||||
value = message.text.strip()
|
||||
|
||||
if field == "server_name":
|
||||
if len(value) > 12:
|
||||
await message.answer(
|
||||
text="❌ Имя сервера не должно превышать 12 символов. Попробуйте снова.",
|
||||
reply_markup=build_admin_back_kb("clusters"),
|
||||
)
|
||||
return
|
||||
|
||||
success = await update_server_name_with_keys(session, server_name, value)
|
||||
if success:
|
||||
server_name = value
|
||||
|
||||
@@ -74,6 +74,19 @@ async def process_callback_renew_key(callback_query: CallbackQuery, state: FSMCo
|
||||
dt_msk = available_from_utc.astimezone(moscow_tz).strftime("%d.%m.%Y %H:%M")
|
||||
kb = InlineKeyboardBuilder()
|
||||
kb.row(InlineKeyboardButton(text=BACK, callback_data=f"view_key|{key_name}"))
|
||||
|
||||
try:
|
||||
hook_commands = await run_hooks(
|
||||
"process_callback_renew_key",
|
||||
callback_query=callback_query,
|
||||
state=state,
|
||||
session=session
|
||||
)
|
||||
if hook_commands:
|
||||
kb = insert_hook_buttons(kb, hook_commands)
|
||||
except Exception as e:
|
||||
logger.warning(f"[RENEW] Ошибка при применении хуков: {e}")
|
||||
|
||||
await edit_or_send_message(
|
||||
target_message=callback_query.message,
|
||||
text=f"Продление доступно с {dt_msk}",
|
||||
|
||||
Reference in New Issue
Block a user