Исходный код aiogram.types.inline_keyboard

from .base import Serializable


[документация]class InlineKeyboardMarkup(Serializable): """ This object represents an inline keyboard that appears right next to the message it belongs to. https://core.telegram.org/bots/api#inlinekeyboardmarkup """ def __init__(self, row_width=3): self.row_width = row_width self.keyboard = [] def add(self, *args): i = 1 row = [] for button in args: row.append(button.to_json()) if i % self.row_width == 0: self.keyboard.append(row) row = [] i += 1 if len(row) > 0: self.keyboard.append(row) def row(self, *args): btn_array = [] for button in args: btn_array.append(button.to_json()) self.keyboard.append(btn_array) return self def to_json(self): return {'inline_keyboard': self.keyboard}
[документация]class InlineKeyboardButton(Serializable): """ This object represents one button of an inline keyboard. You must use exactly one of the optional fields. https://core.telegram.org/bots/api#inlinekeyboardbutton """ def __init__(self, text, url=None, callback_data=None, switch_inline_query=None, switch_inline_query_current_chat=None, callback_game=None, pay=None): self.text = text self.url = url self.callback_data = callback_data self.switch_inline_query = switch_inline_query self.switch_inline_query_current_chat = switch_inline_query_current_chat self.callback_game = callback_game self.pay = pay def to_json(self): return {key: value for key, value in self.__dict__.items() if value}