This commit is contained in:
Vladless
2025-08-25 02:10:03 +03:00
7 changed files with 32 additions and 6 deletions
+2 -2
View File
@@ -82,7 +82,7 @@ async def process_connect_pc(callback_query: CallbackQuery, session: Any):
builder = InlineKeyboardBuilder()
builder.row(InlineKeyboardButton(text=PC_PC, callback_data=f"windows_menu|{key_name}"))
builder.row(InlineKeyboardButton(text=PC_MACOS, callback_data=f"macos_menu|{key_name}"))
builder.row(InlineKeyboardButton(text=BACK, callback_data=f"connect_device|{key_name}"))
builder.row(InlineKeyboardButton(text=BACK, callback_data=f"view_key|{key_name}"))
await edit_or_send_message(
target_message=callback_query.message,
@@ -142,7 +142,7 @@ async def process_connect_tv(callback_query: CallbackQuery, session: Any):
builder = InlineKeyboardBuilder()
builder.row(InlineKeyboardButton(text=TV_CONTINUE, callback_data=f"continue_tv|{key_name}"))
builder.row(InlineKeyboardButton(text=BACK, callback_data=f"connect_device|{key_name}"))
builder.row(InlineKeyboardButton(text=BACK, callback_data=f"view_key|{key_name}"))
builder.row(InlineKeyboardButton(text=MAIN_MENU, callback_data="profile"))
await edit_or_send_message(
@@ -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)
@@ -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
+7
View File
@@ -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(
+3 -2
View File
@@ -314,8 +314,6 @@ async def render_key_info(message: Message, session: Any, key_name: str, image_p
)
else:
builder.row(InlineKeyboardButton(text=CONNECT_DEVICE, callback_data=f"connect_device|{key_name}"))
module_buttons = await run_hooks("view_key_menu", key_name=key_name, session=session)
builder = insert_hook_buttons(builder, module_buttons)
if HWID_RESET_BUTTON and hwid_count > 0:
builder.row(
InlineKeyboardButton(
@@ -341,6 +339,9 @@ async def render_key_info(message: Message, session: Any, key_name: str, image_p
builder.row(InlineKeyboardButton(text=BACK, callback_data="view_keys"))
builder.row(InlineKeyboardButton(text=MAIN_MENU, callback_data="profile"))
module_buttons = await run_hooks("view_key_menu", key_name=key_name, session=session)
builder = insert_hook_buttons(builder, module_buttons)
await edit_or_send_message(
target_message=message,
+1 -1
View File
@@ -63,8 +63,8 @@ async def kassai_payment_webhook(request: web.Request):
async with async_session_maker() as session:
await update_balance(session, tg_id, amount_float)
await send_payment_success_notification(tg_id, amount_float, session)
await add_payment(session, tg_id, amount_float, "kassai")
await send_payment_success_notification(tg_id, amount_float, session)
processed_payments.add(intid)
if merchant_order_id:
+1 -1
View File
@@ -59,8 +59,8 @@ async def wata_payment_webhook(request: web.Request):
return web.Response(status=400)
async with async_session_maker() as session:
await update_balance(session, int(tg_id), float(amount))
await send_payment_success_notification(tg_id, float(amount), session)
await add_payment(session, int(tg_id), float(amount), "wata")
await send_payment_success_notification(tg_id, float(amount), session)
logger.info(f"✅ WATA: баланс пополнен для пользователя {tg_id} на {amount}")
elif data.get("transactionStatus") == "Declined":
logger.warning(f"WATA: транзакция отклонена: {data}")