Path: blob/master/bot/helper/telegram_helper/button_build.py
1640 views
from pyrogram.types import InlineKeyboardMarkup, InlineKeyboardButton123class ButtonMaker:4def __init__(self):5self._button = []6self._header_button = []7self._footer_button = []89def url_button(self, key, link, position=None):10if not position:11self._button.append(InlineKeyboardButton(text=key, url=link))12elif position == "header":13self._header_button.append(InlineKeyboardButton(text=key, url=link))14elif position == "footer":15self._footer_button.append(InlineKeyboardButton(text=key, url=link))1617def data_button(self, key, data, position=None):18if not position:19self._button.append(InlineKeyboardButton(text=key, callback_data=data))20elif position == "header":21self._header_button.append(22InlineKeyboardButton(text=key, callback_data=data)23)24elif position == "footer":25self._footer_button.append(26InlineKeyboardButton(text=key, callback_data=data)27)2829def build_menu(self, b_cols=1, h_cols=8, f_cols=8):30menu = [31self._button[i : i + b_cols] for i in range(0, len(self._button), b_cols)32]33if self._header_button:34h_cnt = len(self._header_button)35if h_cnt > h_cols:36header_buttons = [37self._header_button[i : i + h_cols]38for i in range(0, len(self._header_button), h_cols)39]40menu = header_buttons + menu41else:42menu.insert(0, self._header_button)43if self._footer_button:44if len(self._footer_button) > f_cols:45[46menu.append(self._footer_button[i : i + f_cols])47for i in range(0, len(self._footer_button), f_cols)48]49else:50menu.append(self._footer_button)51return InlineKeyboardMarkup(menu)5253def reset(self):54self._button = []55self._header_button = []56self._footer_button = []575859