Spaces:
Paused
Paused
| from pyrogram.types import InlineKeyboardButton, InlineKeyboardMarkup | |
| def ikb(rows=None, back=False, todo="start_back"): | |
| """ | |
| rows = pass the rows | |
| back - if want to make back button | |
| todo - callback data of back button | |
| """ | |
| if rows is None: | |
| rows = [] | |
| lines = [] | |
| try: | |
| for row in rows: | |
| line = [] | |
| for button in row: | |
| btn_text = button.split(".")[1].upper() | |
| button = btn(btn_text, button) # InlineKeyboardButton | |
| line.append(button) | |
| lines.append(line) | |
| except AttributeError: | |
| for row in rows: | |
| line = [] | |
| for button in row: | |
| button = btn(*button) # Will make the kb which don't have "." in them | |
| line.append(button) | |
| lines.append(line) | |
| except TypeError: | |
| # make a code to handel that error | |
| line = [] | |
| for button in rows: | |
| button = btn(*button) # InlineKeyboardButton | |
| line.append(button) | |
| lines.append(line) | |
| if back: | |
| back_btn = [(btn("« Back", todo))] | |
| lines.append(back_btn) | |
| return InlineKeyboardMarkup(inline_keyboard=lines) | |
| def btn(text, value, type="callback_data"): | |
| return InlineKeyboardButton(text, **{type: value}) | |