async def testing_easy_difficult(call: types.CallbackQuery, state: FSMContext): await state.update_data(current_difficult='easy') import random data = await state.get_data() i = 0 answers = {} kbAnswersChoose = ReplyKeyboardMarkup(resize_keyboard=True, one_time_keyboard=True, row_width=2) category = data.get("category") words = await db.async_testing_easy_difficult(category=category) for word in words: answers[i] = word[0][1] i += 1 for button_name, word in answers.items(): button_name = KeyboardButton(word) kbAnswersChoose.insert(button_name) btnGoBack = KeyboardButton("Вернуться в главное меню") kbAnswersChoose.insert(btnGoBack) word_and_translate = random.choice(words[random.randint(0, 3)]) word_originally = word_and_translate[0] word_translate = word_and_translate[1] await state.update_data(word_translate=word_translate) await call.message.answer( f"Дано слово: {word_originally}\n\nКаков его перевод?", reply_markup=kbAnswersChoose) await Testing.waiting_for_choose_right_answer.set()
async def edit_name(message: Message): markup = ReplyKeyboardMarkup(resize_keyboard=True) markup.insert(KeyboardButton(text=_("🔙 Back"))) await message.answer(_("Enter your new name"), reply_markup=markup) await Settings.InputtingName.set()
def select_groups_to_show(study_year): groups_markup = ReplyKeyboardMarkup(one_time_keyboard=True) for group in rasp[0].keys(): if group[group.index("-") + 1] == str(study_year): button = KeyboardButton(text=group) groups_markup.insert(button) return groups_markup
def position_keyboard(pos_cnt: int): markup = ReplyKeyboardMarkup(row_width=3, resize_keyboard=True) for i in range(pos_cnt): button = KeyboardButton(text=f'{i + 1}') markup.insert(button) return markup
def keyboard_categories(user_id): categories = database.get_all_categories() markup = ReplyKeyboardMarkup(resize_keyboard=True, row_width=3) for i in categories: markup.insert(KeyboardButton(i[1])) if user_id in admins: markup.add(KeyboardButton("Сгенерировать инвайт ссылку")) return markup
async def send_message(message: types.Message): keyboard = ReplyKeyboardMarkup(row_width=1, resize_keyboard=True) for books in read_file[message.text]: buttons = KeyboardButton(text=books) keyboard.insert(buttons) cancel_button = KeyboardButton(text='Артқа') keyboard.insert(cancel_button) await message.answer(text='Кітапты таңдаңыз', reply_markup=keyboard)
async def generate_markup_partner() -> ReplyKeyboardMarkup: services = await manager.partner.select_services() markup = ReplyKeyboardMarkup(row_width=3, resize_keyboard=True) for partner in services: markup.insert( KeyboardButton(text=partner.get('partner_service')) ) markup.row(KeyboardButton(text='Вернуться назад')) return markup
def create_reply_keyboard(): lenght = adm_collection.find().count() if lenght >= 4: board_4 = ReplyKeyboardMarkup(resize_keyboard=True, one_time_keyboard=True, row_width=4).insert(KeyboardButton('1')) else: board_4 = ReplyKeyboardMarkup(resize_keyboard=True, one_time_keyboard=True).insert(KeyboardButton('1')) for i in range(2, lenght+1): board_4.insert(KeyboardButton(f'{i}')) return board_4
async def generate_keyboard_by_partners( message: types.Message) -> ReplyKeyboardMarkup: markup = ReplyKeyboardMarkup(resize_keyboard=True, row_width=1) partner_service = message.text partners = await manager.partner.select_entry( partner_service=partner_service, fetch_all=True) for partner in partners: markup.insert(KeyboardButton(text=partner.get('company_name'))) markup.insert(KeyboardButton(text='Вернуться назад')) return markup
async def generate_markup_folders( master_type: str ) -> Tuple[ReplyKeyboardMarkup, Optional[List[Record]]]: masters = await manager.employee.get_by_type(master_type) markup = ReplyKeyboardMarkup(resize_keyboard=True, row_width=2) folders = (len(masters) // 10) + 1 for f_number in range(folders): markup.insert(KeyboardButton(text=f'Папка{f_number + 1}')) markup.row(KeyboardButton(text='Назад')) return markup, masters
def showCardMarkup(card: Card): markup = ReplyKeyboardMarkup(resize_keyboard=True, row_width=4) markup.add(KeyboardButton('Назад ⬅')) markup.add(KeyboardButton(f"Сумма: {card.totalPrice} грн")) markup.insert(f"Блюд: {card.number}") for item in card.items: markup.add( f"{card.items[item].name.title()} | Кол-во: {card.items[item].quantity}" ) return markup
def generate_start_keyboard( query: Union[types.Message, types.CallbackQuery]) -> ReplyKeyboardMarkup: markup = ReplyKeyboardMarkup(keyboard=[[ KeyboardButton(text='Мастера'), KeyboardButton(text='Партнеры') ], [KeyboardButton(text='Поиск мастера')]], resize_keyboard=True) if query.from_user.id in ADMINS: markup.insert(KeyboardButton(text='Админка')) return markup
def faq_keyboard(): k = ReplyKeyboardMarkup(resize_keyboard=True, row_width=2) k.insert(KeyboardButton('1️⃣')) k.insert(KeyboardButton('2️⃣')) k.insert(KeyboardButton('3️⃣')) k.insert(KeyboardButton('4️⃣')) k.insert(KeyboardButton('5️⃣')) k.insert(KeyboardButton('6️⃣')) k.insert(KeyboardButton('7️⃣')) k.insert(KeyboardButton('Відміна❌')) return k
def create_choices(choices_count, required): choices = ReplyKeyboardMarkup(resize_keyboard=True, row_width=2) for i in range(choices_count): choices_btn = KeyboardButton(text=f'{i + 1}') choices.insert(choices_btn) if not (required): skip_btn = KeyboardButton(text=command_texts[1]) choices.insert(skip_btn) return choices
def getDefaultReplyKeyboard(): markup = ReplyKeyboardMarkup(resize_keyboard=True, selective=True, row_width=3) markup.add("Демотиватор") markup.insert("Пρопустить подзаголовок") markup.insert("Случɑйная подпись") markup.add("Распознать QR") markup.insert("Настρойки") markup.insert("ʘтмена") return markup
def mainCurrencyMarkup(user: User): markup = ReplyKeyboardMarkup(resize_keyboard=True) if user.userCurrency is None: currencyList = ['USD', 'EUR'] else: currencyList = user.userCurrency data = db.getCurrencyList() for curr in currencyList: markup.insert(KeyboardButton(f"{curr} {data[curr]['Emoji']}")) if markup.keyboard[0].__len__() == 3: markup.add() markup.insert(KeyboardButton('Другие валюты $ € ¥ ₤ £')) markup.add(KeyboardButton('Конвертер валют')) markup.add(KeyboardButton('Назад ⬅')) return markup
async def master_types_keyboard() -> ReplyKeyboardMarkup: master_types = await get_master_types() markup = ReplyKeyboardMarkup(resize_keyboard=True, row_width=2) [ markup.insert( t.get('type') + "ы" if t.get('type') == 'Маляр' else t.get('type') + "и") for t in master_types ] markup.row(KeyboardButton(text='Вернуться назад')) return markup
def get_main_keyboard(user_search: bool, lang: str = 'ru'): keyboard = ReplyKeyboardMarkup(resize_keyboard=True, ) if user_search is True: keyboard.insert( KeyboardButton(text=format_text('btn finding job true', lang))) else: keyboard.insert( KeyboardButton(text=format_text('btn finding job false', lang))) keyboard.insert(KeyboardButton(text=format_text('btn settings', lang))) return keyboard
def allItemsMenu(itemsList: list, quantity: str): markup = ReplyKeyboardMarkup(resize_keyboard=True, row_width=4) markup.add(KeyboardButton('Назад ⬅')) markup.add(KeyboardButton('Сортировать по')) markup.add(KeyboardButton('🔤')) markup.insert(KeyboardButton('💲')) markup.insert(KeyboardButton('⚖️')) if quantity != '': markup.insert(KeyboardButton('🍣🔢')) for item in itemsList: if quantity != '': text = f"{(item[0].title())} | {item[1]} | {item[4]} шт. | {item[2]} грн." else: text = f"{item[0].title()} | {item[1]} | {item[2]} грн." markup.add(KeyboardButton(text=text)) return markup
async def start_handler(message: types.Message): with session_scope() as session: db_user = await get_or_create_user(session, message) reply_keyboard = ReplyKeyboardMarkup(resize_keyboard=True) # TODO добавить меню для настроек, куда оно блин делось... if db_user.status == "moderator": reply_keyboard.add(KeyboardButton('Начать модерацию 📝')) reply_keyboard.add(KeyboardButton('Профиль 👤')) elif db_user.status == "specialist": reply_keyboard.add(KeyboardButton('Список доступных задач 📝')) reply_keyboard.add(KeyboardButton('Текущие задачи 📋')) reply_keyboard.insert(KeyboardButton('История задач 📜')) reply_keyboard.add(KeyboardButton('Профиль 👤')) elif db_user.status == "representative": reply_keyboard.add(KeyboardButton('Добавить задачу 📝')) reply_keyboard.add(KeyboardButton('Текущие задачи 📋')) reply_keyboard.insert(KeyboardButton('История задач 📜')) reply_keyboard.add(KeyboardButton('Профиль 👤')) else: reply_keyboard.add(KeyboardButton('Зарегистрироваться 📝')) reply_keyboard.insert(KeyboardButton('Помощь 🙋')) await message.answer(res_dict["start"], parse_mode="html", reply_markup=reply_keyboard)
""" from aiogram.types import ( ReplyKeyboardRemove, ReplyKeyboardMarkup, InlineKeyboardMarkup, InlineKeyboardButton, # KeyboardButton, ) from bot.app.ticket import URGENCY no_keyboard = ReplyKeyboardRemove() select_urgent_keyboard = ReplyKeyboardMarkup(resize_keyboard=True, one_time_keyboard=True) for value in URGENCY: select_urgent_keyboard.insert(URGENCY[value]) select_cancel_create = ReplyKeyboardMarkup(resize_keyboard=True, one_time_keyboard=True) select_cancel_create.insert("/Отмена") select_command = ReplyKeyboardMarkup(resize_keyboard=True, one_time_keyboard=True) select_command.insert("/Мои заявки") select_command.insert("/Создать заявку") def select_approve_refuse(ticket_id: int) -> InlineKeyboardMarkup: """ Keyboard to approve or refuse ticket with ticket_id label """ approve_solution = InlineKeyboardButton( "Подтвердить решение", callback_data=f"approve_solution:{ticket_id}")
markup3 = ReplyKeyboardMarkup().add( button1).add(button2).add(button3) markup4 = ReplyKeyboardMarkup().row( button1, button2, button3 ) markup5 = ReplyKeyboardMarkup().row( button1, button2, button3 ).add(KeyboardButton('Средний ряд')) button4 = KeyboardButton('4️⃣') button5 = KeyboardButton('5️⃣') button6 = KeyboardButton('6️⃣') markup5.row(button4, button5) markup5.insert(button6) markup_request = ReplyKeyboardMarkup(resize_keyboard=True).add( KeyboardButton('Отправить свой контакт ☎️', request_contact=True) ).add( KeyboardButton('Отправить свою локацию 🗺️', request_location=True) ) markup_big = ReplyKeyboardMarkup() markup_big.add( button1, button2, button3, button4, button5, button6 ) markup_big.row( button1, button2, button3, button4, button5, button6 )
from aiogram.types import ReplyKeyboardMarkup, KeyboardButton menu = ReplyKeyboardMarkup(row_width=2, resize_keyboard=True) game_kb = ReplyKeyboardMarkup(row_width=2, resize_keyboard=True) for_what_btn = KeyboardButton(text='Зачем ты нужен?') what_know_btn = KeyboardButton(text='Что ты обо мне знаешь?') play_btn = KeyboardButton(text='Сыграть в игру.') paper = KeyboardButton(text='stone') stone = KeyboardButton(text='paper') scissors = KeyboardButton(text='scissors') menu.insert(for_what_btn) menu.insert(what_know_btn) menu.insert(play_btn) game_kb.insert(paper) game_kb.insert(stone) game_kb.insert(scissors)
def create_kb_coustom_main_menu(user_id): from loader import db from data.config import super_admins if not user_id in super_admins: user_status = db.get_user_status(id=user_id) else: user_status = 'admin' keyboard = ReplyKeyboardMarkup() if user_status == 'admin': keyboard.add(KeyboardButton(text='права пользователей')) # keyboard.insert(KeyboardButton(text='информация о смс')) keyboard.add(KeyboardButton(text='создать заявку')) keyboard.insert(KeyboardButton(text='в работе')) keyboard.add(KeyboardButton(text='пропуска')) keyboard.insert(KeyboardButton(text='создать пропуск')) keyboard.add(KeyboardButton(text='балансы')) keyboard.insert(KeyboardButton(text='отчетность')) elif user_status == 'changer': keyboard.add(KeyboardButton(text='создать заявку')) keyboard.insert(KeyboardButton(text='в работе')) keyboard.add(KeyboardButton(text='пропуска')) keyboard.insert(KeyboardButton(text='создать пропуск')) keyboard.add(KeyboardButton(text='балансы')) keyboard.insert(KeyboardButton(text='отчетность')) elif user_status == 'executor': keyboard.add(KeyboardButton(text='в работе')) keyboard.add(KeyboardButton(text='балансы')) keyboard.add(KeyboardButton(text='отчетность')) elif user_status == 'secretary': # keyboard.add(KeyboardButton(text='информация о смс')) keyboard.add(KeyboardButton(text='пропуска')) keyboard.add(KeyboardButton(text='создать пропуск')) elif user_status == 'permit': keyboard.add(KeyboardButton(text='создать пропуск')) else: pass keyboard.resize_keyboard = True keyboard.one_time_keyboard = True return keyboard # main_menu = ReplyKeyboardMarkup ( # keyboard = [ # [ # KeyboardButton(text='права пользователей'), # KeyboardButton(text='информация о смс') # ], # [ # KeyboardButton(text='создать заявку'), # KeyboardButton(text='в работе') # ], # [ # KeyboardButton(text='пропуска'), # ] # ], # resize_keyboard=True, # one_time_keyboard=True # )
from aiogram.types import ReplyKeyboardMarkup, \ KeyboardButton # Одна кнопка btnHello = KeyboardButton("Привет 👋") greet_kb = ReplyKeyboardMarkup(resize_keyboard=True, one_time_keyboard=True).add(btnHello) # Много кнопок button1 = KeyboardButton("🔔") button2 = KeyboardButton("2") button3 = KeyboardButton("3") markup1 = ReplyKeyboardMarkup().add(button1).add(button2).add(button3) markup2 = ReplyKeyboardMarkup(resize_keyboard=True).row( button1, button2, button3) markup3 = ReplyKeyboardMarkup(resize_keyboard=True).row(button1, button2, button3) \ .add(KeyboardButton("Средняя кнопка! 👋")) markup3.row(KeyboardButton("4"), KeyboardButton("5")) markup3.insert(KeyboardButton("6")) markup3.add(KeyboardButton("Новая строка")) # Кнопки отправки контакта и геолокации markup_requests = ReplyKeyboardMarkup(resize_keyboard=True) \ .add(KeyboardButton('Отправить свой контакт', request_contact=True)).add(KeyboardButton('Отправить свою геолокацию', request_location=True))
from aiogram.types import ReplyKeyboardMarkup, KeyboardButton from_time = ReplyKeyboardMarkup(row_width=2, resize_keyboard=True) nearest = KeyboardButton(text='Ближайшее') later = KeyboardButton(text='Позже') from_time.insert(nearest) from_time.insert(later) address = ReplyKeyboardMarkup(row_width=2, resize_keyboard=True) fits = KeyboardButton(text='Подходит') express = KeyboardButton(text='Срочная') for_time = KeyboardButton(text='Ко времени') address.insert(fits) address.insert(express) address.insert(for_time)
from aiogram.types import ReplyKeyboardRemove, \ ReplyKeyboardMarkup, KeyboardButton, \ InlineKeyboardMarkup, InlineKeyboardButton, ContentType btn_day_custom_schedule = KeyboardButton("🔀") btn_day_schedule = KeyboardButton("1️⃣") btn_week_schedule = KeyboardButton("7️⃣") btn_month_schedule = KeyboardButton("🔢") btn_home = KeyboardButton("🏠") btn_settings = KeyboardButton("⚙️") btn_info = KeyboardButton("🔍") kb_start = ReplyKeyboardMarkup(resize_keyboard=True, one_time_keyboard=True) kb_start.row(btn_day_custom_schedule, btn_day_schedule, btn_week_schedule, btn_month_schedule) kb_start.row(btn_home, btn_settings) btn_gr = KeyboardButton("/gr") btn_tn = KeyboardButton("/tn") btn_sn = KeyboardButton("/sn") kb_settings = ReplyKeyboardMarkup(resize_keyboard=True, one_time_keyboard=True) kb_settings.insert(btn_gr) kb_settings.insert(btn_tn) kb_settings.insert(btn_sn) kb_settings.insert(btn_home) kb_settings.insert(btn_settings) kb_settings.insert(btn_info) kb_additional = ReplyKeyboardMarkup(resize_keyboard=True, one_time_keyboard=False) kb_additional.insert(btn_home) kb_additional.insert(btn_settings)
vk_login_no = InlineKeyboardButton('Нет', callback_data='no') inline_vk_yes_no_kb = InlineKeyboardMarkup().add(vk_login_yes, vk_login_no) inline_vk_github_kb = InlineKeyboardMarkup().add(vk_btn, git_btn) inline_vk_urfu_kb = InlineKeyboardMarkup().add(vk_btn, urfu_btn) inline_github_urfu = InlineKeyboardMarkup().add(urfu_btn, git_btn) inline_github_kb = InlineKeyboardMarkup().add(git_btn) inline_vk_kb = InlineKeyboardMarkup().add(vk_btn) inline_urfu_kb = InlineKeyboardMarkup().add(urfu_btn) time_kb = ReplyKeyboardMarkup(resize_keyboard=True, one_time_keyboard=True) for i in range(0, 24): hour = f'0{i}' if i < 10 else i time_kb.insert(f'{hour}:00') for j in range(15, 46, 15): time_kb.insert(f'{hour}:{j}') async def get_choosed_keyboard(state: FSMContext): log = await state.get_data() vk, github, urfu = log.get('vk_selected'), log.get( 'github_selected'), log.get('urfu_selected') if vk == False and github == False and urfu == True: return inline_vk_github_kb if vk == False and github == True and urfu == False: return inline_vk_urfu_kb if vk == True and github == False and urfu == False: return inline_github_urfu if vk == True and github == False and urfu == True:
#https://api.telegram.org/bot1276910299:AAHzjDM1Z02_eSYBhR5uiB2m2LHtgZnYxrI/setWebhook?url=https://dd50f1ea6479.ngrok.io/ button1 = KeyboardButton('Анекдоты') button2 = KeyboardButton('Рассказы') button3 = KeyboardButton('Афоризмы') button4 = KeyboardButton('Цитаты') button5 = KeyboardButton('Тосты') button6 = KeyboardButton('Статусы') button7 = KeyboardButton('Анекдоты (18+)') button8 = KeyboardButton('Рассказы (18+)') button9 = KeyboardButton('Афоризмы (18+)') button10 = KeyboardButton('Цитаты (18+)') button11 = KeyboardButton('Тосты (18+)') button12 = KeyboardButton('Статусы (18+)') menu = ReplyKeyboardMarkup(resize_keyboard=True) menu.insert(button1) menu.insert(button2) menu.insert(button3) menu.insert(button4) menu.insert(button5) menu.insert(button6) menu.insert(button7) menu.insert(button8) menu.insert(button9) menu.insert(button10) menu.insert(button11) menu.insert(button12) # start @dp.message_handler(commands=['start', 'help'])
from aiogram.types import ReplyKeyboardRemove, \ ReplyKeyboardMarkup, KeyboardButton, \ InlineKeyboardMarkup, InlineKeyboardButton button1 = KeyboardButton('Понедельник') button2 = KeyboardButton('Вторник') button3 = KeyboardButton('Среда') markup3 = ReplyKeyboardMarkup().add( button1).add(button2).add(button3) markup4 = ReplyKeyboardMarkup().row( button1, button2, button3 ) markup5 = ReplyKeyboardMarkup().row( button1, button2, button3 ).add(KeyboardButton('Воскресенье')) button4 = KeyboardButton('Четверг') button5 = KeyboardButton('Пятница') button6 = KeyboardButton('Суббота') markup5.row(button4, button5) markup5.insert(button6)