Раздел навигации

builder - Класс для работы с Aiogram Builder.

Добро пожаловать!

Зарегистрировавшись у нас, вы сможете обсуждать, делиться и отправлять личные сообщения другим участникам нашего сообщества.

Зарегистрироваться!
  • Если Вы желаете помогать развитию проекта, готовы заполнять раздел(-ы) и подсказывать другим пользователям на портале, есть возможность попасть в команду редакторов. Для этого следует обратиться в техническую поддержку
lua / python developer
Редактор
Регистрация
13 Июн 2022
Сообщения
48
Данный класс упрощает создание только текстовых клавиатур.

Python:
from aiogram.types import KeyboardButton, InlineKeyboardButton
from aiogram.utils.keyboard import (
    ReplyKeyboardBuilder, InlineKeyboardBuilder
)

class builder:
    def reply(buttons: list[str], adjust: int = 1, pResize_keyboard: bool = False, pOne_time: bool = False) -> str:
        pbuilder = ReplyKeyboardBuilder()
        [
            pbuilder.add(KeyboardButton(text=str(item)))
            for item in buttons
        ]
        pbuilder.adjust(adjust)
        return pbuilder.as_markup(resize_keyboard = pResize_keyboard, one_time= pOne_time)

    def inline(buttons: dict, adjust: int = 1, pResize_keyboard: bool = False, pOne_time: bool = False) -> str:
        pbuilder = InlineKeyboardBuilder()
        [
            pbuilder.add(InlineKeyboardButton(text=str(item), callback_data=buttons[item]))
            for item in buttons
        ]
        pbuilder.adjust(adjust)
        return pbuilder.as_markup(resize_keyboard = pResize_keyboard, one_time= pOne_time)

builder.reply(buttons: list[str], adjust: int = 1, pResize_keyboard: bool = False, pOne_time: bool = False)
  • buttons: list[str] - Список кнопок. Пример: kb = ["Привет", "Как дела?"]
  • adjust: int - Количество кнопок в одной строке
  • pResize_keyboard: bool - Адаптация размера клавиатуры
  • pOne_time: bool - Закрывать ли при нажатии кнопки клавиатуру
    В нашем случае кнопки 1234 находятся на разных строках, значит значение adjust = 2
    1705356073599.png
    1705356062289.png
builder.inline(buttons: dict, adjust: int = 1, pResize_keyboard: bool = False, pOne_time: bool = False)
  • buttons: dict - Словарь кнопок. Пример: kb = {"Привет": "hello"}
  • adjust: int - Количество кнопок в одной строке
  • pResize_keyboard: bool - Адаптация размера клавиатуры
  • pOne_time: bool - Закрывать ли при нажатии кнопки клавиатуру

    Словарь кнопок состоит из названия кнопки и callback_data.
    Пример: kb = {"Привет": "hello"} - Где "Привет" - кнопка, "hello" - callback_data

    1705356193046.png
    1705356212201.png

    При нажатии кнопки считываем callback_data и видим:
    1705356246920.png
 

Вложения

  • builder.py
    1.1 KB · Просмотры: 0
Сверху