add addon purchase hook

This commit is contained in:
Capybara-z
2026-03-04 21:48:17 +03:00
parent 10beddfc6b
commit 1acf239458
3 changed files with 43 additions and 4 deletions
+11 -2
View File
@@ -33,7 +33,7 @@ from handlers.texts import (
)
from handlers.utils import edit_or_send_message
from hooks.hook_buttons import insert_hook_buttons
from hooks.processors import process_addons_menu
from hooks.processors import process_addon_purchase_complete, process_addons_menu
from logger import logger
from ..buy.key_tariffs import calculate_config_price
@@ -890,7 +890,16 @@ async def handle_addons_confirm(callback: CallbackQuery, state: FSMContext, sess
)
await state.clear()
await render_key_info(callback.message, session, email, "img/pic_view.jpg")
intercepted = await process_addon_purchase_complete(
chat_id=callback.from_user.id,
session=session,
email=email,
message=callback.message,
)
if not intercepted:
await render_key_info(callback.message, session, email, "img/pic_view.jpg")
await callback.answer(ADDONS_APPLIED_TEXT, show_alert=True)
except Exception as error:
+11 -2
View File
@@ -33,7 +33,7 @@ from handlers.texts import (
)
from handlers.utils import edit_or_send_message
from hooks.hook_buttons import insert_hook_buttons
from hooks.processors import process_addons_menu
from hooks.processors import process_addon_purchase_complete, process_addons_menu
from logger import logger
from ..buy.key_tariffs import calculate_config_price
@@ -879,7 +879,16 @@ async def handle_addons_confirm(callback: CallbackQuery, state: FSMContext, sess
)
await state.clear()
await render_key_info(callback.message, session, email, "img/pic_view.jpg")
intercepted = await process_addon_purchase_complete(
chat_id=callback.from_user.id,
session=session,
email=email,
message=callback.message,
)
if not intercepted:
await render_key_info(callback.message, session, email, "img/pic_view.jpg")
await callback.answer(ADDONS_PACK_SUCCESS_TEXT, show_alert=True)
except Exception as error:
+21
View File
@@ -456,3 +456,24 @@ async def process_connect_device_menu(
**kwargs,
)
return results if results else []
async def process_addon_purchase_complete(
chat_id: int,
session: Any,
email: str,
message: Any,
admin: bool = False,
**kwargs,
) -> bool:
"""Обрабатывает хук addon_purchase_complete. True = caller пропускает render_key_info."""
results = await run_hooks(
"addon_purchase_complete",
chat_id=chat_id,
admin=admin,
session=session,
email=email,
message=message,
**kwargs,
)
return bool(results and results[0])