Фикс keyboards: убрал дубли, добавил account/popup/payment_methods

This commit is contained in:
unknown
2025-11-25 22:40:42 +03:00
parent cbf113f7bb
commit d1417653c3

View File

@@ -1,18 +1,10 @@
from aiogram.types import InlineKeyboardButton
from aiogram.utils.keyboard import InlineKeyboardBuilder
from aiogram.utils.keyboard import InlineKeyboardBuilder, ReplyKeyboardBuilder from aiogram.utils.keyboard import InlineKeyboardBuilder, ReplyKeyboardBuilder
from aiogram.types import InlineKeyboardButton, KeyboardButton from aiogram.types import InlineKeyboardButton, KeyboardButton
from aiogram.utils.keyboard import InlineKeyboardBuilder, ReplyKeyboardBuilder
from aiogram.types import InlineKeyboardButton, KeyboardButton
# ... остальной код выше не трогаем ...
def main_keyboard(): def main_keyboard():
""" """
Главное меню (только визуал перетянут под твой стиль) Главное меню
""" """
builder = InlineKeyboardBuilder() builder = InlineKeyboardBuilder()
builder.row( builder.row(
@@ -33,7 +25,6 @@ def main_keyboard():
callback_data="faq", callback_data="faq",
) )
) )
# Оставляем URL как у Вовы, меняем только текст
builder.row( builder.row(
InlineKeyboardButton( InlineKeyboardButton(
text=" О нас", text=" О нас",
@@ -43,7 +34,31 @@ def main_keyboard():
return builder.as_markup() return builder.as_markup()
def account_keyboard():
"""
Клавиатура профиля:
только пополнить баланс и история транзакций.
"""
builder = InlineKeyboardBuilder()
builder.row(
InlineKeyboardButton(
text="🪙 Пополнить баланс",
callback_data="balance",
)
)
builder.row(
InlineKeyboardButton(
text="🧾 История транзакций",
callback_data="tranhist",
)
)
return builder.as_markup()
def balance_keyboard(): def balance_keyboard():
"""
Экран баланса
"""
builder = InlineKeyboardBuilder() builder = InlineKeyboardBuilder()
builder.row( builder.row(
InlineKeyboardButton( InlineKeyboardButton(
@@ -66,6 +81,64 @@ def balance_keyboard():
return builder.as_markup() return builder.as_markup()
def popup_keyboard():
"""
Суммы пополнения.
"""
builder = InlineKeyboardBuilder()
builder.row(
InlineKeyboardButton(text="200 ₽", callback_data="popup:200"),
InlineKeyboardButton(text="500 ₽", callback_data="popup:500"),
)
builder.row(
InlineKeyboardButton(text="1000 ₽", callback_data="popup:1000"),
InlineKeyboardButton(text="2000 ₽", callback_data="popup:2000"),
)
builder.row(
InlineKeyboardButton(text="3000 ₽", callback_data="popup:3000"),
InlineKeyboardButton(text="5000 ₽", callback_data="popup:5000"),
)
builder.row(
InlineKeyboardButton(
text="🔙 Назад",
callback_data="balance",
)
)
return builder.as_markup()
def payment_methods_keyboard(amount: int):
"""
Способы оплаты для выбранной суммы.
"""
builder = InlineKeyboardBuilder()
builder.row(
InlineKeyboardButton(
text="⭐ Telegram Stars",
callback_data=f"method_stars_{amount}",
)
)
builder.row(
InlineKeyboardButton(
text="💵 YooKassa",
callback_data=f"method_ykassa_{amount}",
)
)
builder.row(
InlineKeyboardButton(
text="🪙 CryptoBot",
callback_data=f"method_crypto_{amount}",
)
)
builder.row(
InlineKeyboardButton(
text="🔙 Назад",
callback_data="popup",
)
)
return builder.as_markup()
def ticket_list_keyboard(tickets): def ticket_list_keyboard(tickets):
builder = InlineKeyboardBuilder() builder = InlineKeyboardBuilder()
for ticket in tickets: for ticket in tickets:
@@ -145,164 +218,8 @@ def buy_keyboard():
def tarif_Lark_keyboard(): def tarif_Lark_keyboard():
builder = InlineKeyboardBuilder()
builder.row(
InlineKeyboardButton(
text="🐣 Lark 1 месяц",
callback_data="Lark:Standart:1",
)
)
builder.row(
InlineKeyboardButton(
text="🐣 Lark 6 месяцев",
callback_data="Lark:Standart:6",
)
)
builder.row(
InlineKeyboardButton(
text="🐣 Lark 12 месяцев",
callback_data="Lark:Standart:12",
)
)
builder.row(
InlineKeyboardButton(
text="🔙 Назад",
callback_data="buy_subscription",
)
)
return builder.as_markup()
def tarif_Lark_pro_keyboard():
builder = InlineKeyboardBuilder()
builder.row(
InlineKeyboardButton(
text="🦅 Lark Pro 1 месяц",
callback_data="Lark:Pro:1",
)
)
builder.row(
InlineKeyboardButton(
text="🦅 Lark Pro 6 месяцев",
callback_data="Lark:Pro:6",
)
)
builder.row(
InlineKeyboardButton(
text="🦅 Lark Pro 12 месяцев",
callback_data="Lark:Pro:12",
)
)
builder.row(
InlineKeyboardButton(
text="🔙 Назад",
callback_data="buy_subscription",
)
)
return builder.as_markup()
def tarif_Lark_family_keyboard():
builder = InlineKeyboardBuilder()
builder.row(
InlineKeyboardButton(
text="👨‍👩‍👧 Lark Family 1 месяц",
callback_data="Lark:Family:1",
)
)
builder.row(
InlineKeyboardButton(
text="👨‍👩‍👧 Lark Family 6 месяцев",
callback_data="Lark:Family:6",
)
)
builder.row(
InlineKeyboardButton(
text="👨‍👩‍👧 Lark Family 12 месяцев",
callback_data="Lark:Family:12",
)
)
builder.row(
InlineKeyboardButton(
text="🔙 Назад",
callback_data="buy_subscription",
)
)
return builder.as_markup()
def subscriptions_card_keyboard(sub_id: str, index: int, total: int):
""" """
Карточка подписки: Тариф Lark Basic (Standart)
- навигация ⬅️/➡️
- 'Конфиг' / 'Продлить'
- 'Новая' / 'Назад'
"""
builder = InlineKeyboardBuilder()
nav = []
if index > 0:
nav.append(
InlineKeyboardButton(
text="⬅️",
callback_data=f"sub_prev:{index-1}",
)
)
if index < total - 1:
nav.append(
InlineKeyboardButton(
text="➡️",
callback_data=f"sub_next:{index+1}",
)
)
if nav:
builder.row(*nav)
builder.row(
InlineKeyboardButton(
text="🔑 Конфиг",
callback_data=f"sub_cfg:{sub_id}",
),
InlineKeyboardButton(
text="🔁 Продлить",
callback_data=f"sub_renew:{sub_id}",
),
)
builder.row(
InlineKeyboardButton(
text=" Новая",
callback_data="buy_subscription",
)
)
builder.row(
InlineKeyboardButton(
text="🔙 Назад",
callback_data="profile",
)
)
return builder.as_markup()
def tarif_confirm_keyboard(name: str, amount: int, classif: str):
builder = InlineKeyboardBuilder()
builder.row(
InlineKeyboardButton(
text="✅ Подтвердить",
callback_data=f"confirm:{name}_{classif}_{amount}",
)
)
builder.row(
InlineKeyboardButton(
text="🔙 Отменить",
callback_data="buy_subscription",
)
)
return builder.as_markup()
def tarif_Lark_keyboard():
"""
Тариф Lark (Standart) — только подписи меняем.
""" """
builder = InlineKeyboardBuilder() builder = InlineKeyboardBuilder()
builder.row( builder.row(
@@ -396,6 +313,56 @@ def tarif_Lark_family_keyboard():
return builder.as_markup() return builder.as_markup()
def subscriptions_card_keyboard(sub_id: str, index: int, total: int):
"""
Карточка подписки:
навигация, конфиг, продление, новая, назад.
"""
builder = InlineKeyboardBuilder()
nav = []
if index > 0:
nav.append(
InlineKeyboardButton(
text="⬅️",
callback_data=f"sub_prev:{index-1}",
)
)
if index < total - 1:
nav.append(
InlineKeyboardButton(
text="➡️",
callback_data=f"sub_next:{index+1}",
)
)
if nav:
builder.row(*nav)
builder.row(
InlineKeyboardButton(
text="🔑 Конфиг",
callback_data=f"sub_cfg:{sub_id}",
),
InlineKeyboardButton(
text="🔁 Продлить",
callback_data=f"sub_renew:{sub_id}",
),
)
builder.row(
InlineKeyboardButton(
text=" Новая",
callback_data="buy_subscription",
)
)
builder.row(
InlineKeyboardButton(
text="🔙 Назад",
callback_data="profile",
)
)
return builder.as_markup()
def guide_keyboard(): def guide_keyboard():
""" """
Руководство по подключению Руководство по подключению
@@ -450,7 +417,7 @@ def tranhist_keyboard():
return builder.as_markup() return builder.as_markup()
def tarif_confirm_keyboard(name, amount, classif): def tarif_confirm_keyboard(name: str, amount: int, classif: str):
""" """
Подтверждение покупки тарифа Подтверждение покупки тарифа
""" """
@@ -471,9 +438,8 @@ def tarif_confirm_keyboard(name, amount, classif):
def confirm_popup_keyboard(): def confirm_popup_keyboard():
""" """
аааааааааааааааааааааа Подтверждение пополнения.
""" """
builder = InlineKeyboardBuilder() builder = InlineKeyboardBuilder()
builder.row( builder.row(