diff --git a/handlers/admin/sender/sender_handler.py b/handlers/admin/sender/sender_handler.py index 04e27320..e90e2780 100644 --- a/handlers/admin/sender/sender_handler.py +++ b/handlers/admin/sender/sender_handler.py @@ -1,4 +1,5 @@ import json +import re from datetime import datetime from aiogram import F, Router @@ -39,7 +40,9 @@ def parse_message_buttons(text: str) -> tuple[str, InlineKeyboardMarkup | None]: for line in button_lines: try: - button_data = json.loads(line) + cleaned_line = re.sub(r'([^<]*)', r'\1', line) + + button_data = json.loads(cleaned_line) if not isinstance(button_data, dict) or "text" not in button_data: logger.warning(f"Неверный формат кнопки: {line}") @@ -107,6 +110,7 @@ async def handle_sender_callback_text( "Ваше сообщение\n\n" "BUTTONS:\n" '{"text": "👤 Личный кабинет", "callback": "profile"}\n' + '{"text": "➕ Купить подписку", "callback": "buy"}\n' '{"text": "🎁 Забрать купон", "url": "https://t.me/cupons"}\n' '{"text": "📢 Канал", "url": "https://t.me/channel"}' ), diff --git a/handlers/keys/key_mode/key_create.py b/handlers/keys/key_mode/key_create.py index 400196e3..ec058791 100644 --- a/handlers/keys/key_mode/key_create.py +++ b/handlers/keys/key_mode/key_create.py @@ -56,6 +56,7 @@ class Form(FSMContext): @router.callback_query(F.data == "create_key") +@router.callback_query(F.data == "buy") @router.message(F.text == "/buy") async def confirm_create_new_key( callback_query_or_message: CallbackQuery | Message, state: FSMContext, session: Any diff --git a/handlers/keys/key_view.py b/handlers/keys/key_view.py index f69f2142..00ba27d1 100644 --- a/handlers/keys/key_view.py +++ b/handlers/keys/key_view.py @@ -442,6 +442,7 @@ async def handle_reset_hwid(callback_query: CallbackQuery, session: Any): @router.callback_query(F.data == "renew_menu") +@router.callback_query(F.data == "extend") @router.message(F.text == "/extend") async def process_renew_menu(callback_query_or_message: CallbackQuery | Message, session: Any): try: