diff --git a/handlers/keys/key_mode/key_cluster_mode.py b/handlers/keys/key_mode/key_cluster_mode.py index 60aebc26..f5f2942a 100644 --- a/handlers/keys/key_mode/key_cluster_mode.py +++ b/handlers/keys/key_mode/key_cluster_mode.py @@ -40,6 +40,8 @@ from handlers.utils import ( get_least_loaded_cluster, is_full_remnawave_cluster, ) +from hooks.hooks import run_hooks +from hooks.hook_buttons import insert_hook_buttons from logger import logger @@ -170,6 +172,13 @@ async def key_cluster_mode( builder.row(InlineKeyboardButton(text=SUPPORT, url=SUPPORT_CHAT_URL)) builder.row(InlineKeyboardButton(text=MAIN_MENU, callback_data="profile")) + try: + hook_commands = await run_hooks("key_creation_complete", chat_id=tg_id, admin=False, session=session, email=email, key_name=key_name) + if hook_commands: + builder = insert_hook_buttons(builder, hook_commands) + except Exception as e: + logger.warning(f"[KEY_CREATION_COMPLETE] Ошибка при применении хуков: {e}") + expiry_time_local = expiry_time.astimezone(moscow_tz) expiry_time_local - datetime.now(moscow_tz) diff --git a/handlers/keys/key_mode/key_country_mode.py b/handlers/keys/key_mode/key_country_mode.py index 47ac4ea4..0be75f32 100644 --- a/handlers/keys/key_mode/key_country_mode.py +++ b/handlers/keys/key_mode/key_country_mode.py @@ -44,6 +44,8 @@ from handlers.utils import ( get_least_loaded_cluster, is_full_remnawave_cluster, ) +from hooks.hooks import run_hooks +from hooks.hook_buttons import insert_hook_buttons from logger import logger from panels.remnawave import RemnawaveAPI from panels.three_xui import delete_client, get_xui_instance @@ -498,6 +500,13 @@ async def finalize_key_creation( builder.row(InlineKeyboardButton(text=SUPPORT, url=SUPPORT_CHAT_URL)) builder.row(InlineKeyboardButton(text=MAIN_MENU, callback_data="profile")) + try: + hook_commands = await run_hooks("key_creation_complete", chat_id=tg_id, admin=False, session=session, email=email, key_name=key_name) + if hook_commands: + builder = insert_hook_buttons(builder, hook_commands) + except Exception as e: + logger.warning(f"[KEY_CREATION_COMPLETE] Ошибка при применении хуков: {e}") + link_to_show = public_link or remnawave_link or "Ссылка не найдена" tariff_info = None diff --git a/handlers/keys/key_renew.py b/handlers/keys/key_renew.py index 10d42ee4..3c288c92 100644 --- a/handlers/keys/key_renew.py +++ b/handlers/keys/key_renew.py @@ -405,6 +405,13 @@ async def complete_key_renewal( builder = InlineKeyboardBuilder() builder.row(InlineKeyboardButton(text=MY_SUB, callback_data=f"view_key|{email}")) + try: + hook_commands = await run_hooks("renewal_complete", chat_id=tg_id, admin=False, session=session, email=email, client_id=client_id) + if hook_commands: + builder = insert_hook_buttons(builder, hook_commands) + except Exception as e: + logger.warning(f"[RENEWAL_COMPLETE] Ошибка при применении хуков: {e}") + formatted_expiry_date = datetime.fromtimestamp(new_expiry_time / 1000, tz=moscow_tz).strftime("%d %B %Y, %H:%M") formatted_expiry_date = formatted_expiry_date.replace(