CactusUtils.Inline.
1. Создание клавиатуры
Клавиатура состоит из рядов, а ряды — из кнопок.CactusUtils.Inline.Button (Source)
Создает одну кнопку.
Иконки и Premium-эмодзи в тексте кнопки
Вы можете использовать иконки и Premium-эмодзи в тексте кнопки. Синтаксис:<emoji id=5427317234403930129/> и <icon id=msg_search/>. Например:
Пример кнопки с premium-эмодзи

Кнопка с премиум эмодзи
Пример кнопки с Drawable-иконкой
Кнопка с Drawable иконкой
CactusUtils.Inline.CallbackData (Source)
Создает данные для колбэка для кнопки.
CactusUtils.Inline.Markup (Source)
Собирает кнопки в полноценную клавиатуру.
Пример создания клавиатуры
2. Отправка сообщения с клавиатурой
Передайте созданный объектMarkup в метод CactusUtils.Command.answer или CactusUtils.send_message.
Создание и отправка кнопок
3. Обработка нажатий (callback)
Для обработки нажатий используется декоратор@CactusUtils.Inline.on_click.
@CactusUtils.Inline.on_click(method): Декорирует функцию, которая будет вызвана, когда пользователь нажмет на кнопку сcallback_data, гдеmethodсовпадает сmethodвCallbackData.
CactusUtils.Inline.CallbackParams.
Полный пример
counter.plugin
- Пользователь пишет
.menu. - Плагин отправляет сообщение “Счетчик: 0” с кнопкой.
- Пользователь нажимает на кнопку.
- CactusLib перехватывает колбэк и видит, что метод —
counter_click. - Вызывается функция
_on_counter_click. - Функция обновляет значение в БД и редактирует исходное сообщение, заменяя его на “Счетчик: 1”. Клавиатура остается на месте.
Отправка сообщения с клавиатурой в чат с метаданными внутри
Чтобы отправить сообщение с клавиатурой в чат с метаданными, нужно передатьis_global=True в конструктор CactusUtils.Inline.Markup.
clickme.plugin

.items1 - Показывает интерактивное меню всем пользователям обычным способом

.items2 - Показывает интерактивное меню всем пользователям альтернативным способом