add support for composite callbacks

This commit is contained in:
Vladless
2026-02-12 20:58:36 +03:00
parent b58dc6ab82
commit 6324426b27
2 changed files with 7 additions and 3 deletions
+7 -2
View File
@@ -26,8 +26,13 @@ def apply_button_icons_patch(config: dict[str, dict[str, str]] | None = None) ->
class _PatchedInlineKeyboardButton(_OriginalInlineKeyboardButton):
def __init__(self, **kwargs: object):
key = kwargs.get("callback_data") or kwargs.get("url")
if key is not None and isinstance(key, str) and key in _button_icon_config:
kwargs = {**kwargs, **_button_icon_config[key]}
if key is not None and isinstance(key, str):
config = _button_icon_config.get(key)
if config is None and "|" in key:
prefix = key.split("|", 1)[0]
config = _button_icon_config.get(prefix)
if config is not None:
kwargs = {**kwargs, **config}
super().__init__(**kwargs)
aiogram.types.InlineKeyboardButton = _PatchedInlineKeyboardButton
-1
View File
@@ -6,7 +6,6 @@ from io import StringIO
from aiogram.types import BufferedInputFile
from sqlalchemy import exists, func, join, not_, select
from sqlalchemy.ext.asyncio import AsyncSession
import json
from core.constants import PAYMENT_SYSTEMS_EXCLUDED
from database.models import Key, Payment, Referral, Tariff, User