def get_geobutton(with_back: bool = False) -> ReplyKeyboardMarkup: kb = ReplyKeyboardMarkup(resize_keyboard=True) geobutton = KeyboardButton(text=buttons.geobutton.value, request_location=True) kb.row(geobutton) if not with_back else kb.row(buttons.back.value, geobutton) return kb
def events_reply_keyboard(events_list, admin_mode=False, archived=False) -> Union[ReplyKeyboardMarkup, None]: max_buttons_in_row = 1 keyboard = None row_list = [] if len(events_list) > 0: i = 0 for event in events_list: button = KeyboardButton(event.title) if len(row_list) == i: row_list.append([]) row_list[i].append(button) if len(row_list[i]) == max_buttons_in_row: i += 1 if admin_mode: if archived: row_list.append([button_back_to_events]) else: row_list.append([button_create_new]) row_list.append([button_view_archive]) if len(row_list) > 0: keyboard = ReplyKeyboardMarkup() for row in row_list: keyboard.row(*row) return keyboard
def PROFILE_Kb(): pfl_kb = ReplyKeyboardMarkup(resize_keyboard=True, row_width=2) pfl_kb.row(KeyboardButton(text='🥋 Экипировка'), KeyboardButton(text='⚖️ Повышение характеристик')) pfl_kb.row(KeyboardButton(text='📯 Повышение ранга'), KeyboardButton(text='🔙 Назад')) return pfl_kb
def create_keyboard(headings): keyboard = ReplyKeyboardMarkup(resize_keyboard=True) for header in headings: button = KeyboardButton(header.get_name()) keyboard.add(button) keyboard.row(back, home) return keyboard
async def step_one(message: types.Message): #This handler will be called when user sends `/start` command await message.answer("""Hello, My name is CryptoWatch You can get the latest cryptocurrency exchange rate, just type /start to begin. You can also subscribe to a particular crypto price (get a trade signal), for example: “23000 < BTC” (number > or < Ticker). I will remind you when the price reaches the set value. Subscribe to as much as you want, but do it wisely /unsubscribe to stop the reminder """) rub = KeyboardButton('RUB') usd = KeyboardButton('USD') eur = KeyboardButton('EUR') cny = KeyboardButton('CNY') keyboard_fiat = ReplyKeyboardMarkup( resize_keyboard=True, one_time_keyboard=True) keyboard_fiat.row(rub, usd).row(eur, cny) await message.answer('Choose fiat currency for comparison', reply_markup=keyboard_fiat)
def get_settings_menu() -> ReplyKeyboardMarkup: kb = ReplyKeyboardMarkup(resize_keyboard=True) kb.row(buttons.sm_zmanim.value, buttons.sm_candle.value, buttons.sm_havdala.value) kb.row(buttons.sm_lang.value, buttons.sm_location.value, buttons.back.value) return kb
def get_navigation_keyboard(): keyboard = ReplyKeyboardMarkup(resize_keyboard=True) options = ["/previous", "/next"] keyboard.add(*options) keyboard.row("/cancel") return keyboard
async def second_send_welcome(message: types.Message, state: FSMContext): """"Read photo from telegram server and choose operations to do on photo. Args: message: Message from telegram update. state: State from Finite State Machine. """ photo = get_max_sized_photo(message.photo) photo_id = photo.file_id file = await bot.get_file(photo_id) file_path = file.file_path photo_path = settings.project_static_path / f'{message.from_user.id}_2_lab_base_photo.jpg' await state.update_data(base_image=photo_path) await bot.download_file(file_path, photo_path) paths = create_histogram(str(photo_path), settings, message.from_user.id) media = create_media(paths) await message.answer_media_group(media=media) key_board = ReplyKeyboardMarkup(resize_keyboard=True) first_button = KeyboardButton('darker') second_button = KeyboardButton('negative') third_button = KeyboardButton('sigmoid') four_button = KeyboardButton('lighter') key_board.row(first_button, second_button, third_button, four_button) await message.answer('Choose on of the operations:', reply_markup=key_board) await Second.gradation_transformations_two.set()
def buttons(self): keyboard_markup = ReplyKeyboardMarkup(row_width=self.row_width, resize_keyboard=True) row_btns = (KeyboardButton(text) for callback_data_str, text in self.data) keyboard_markup.row(*row_btns) return keyboard_markup
def menu(): keyboard = ReplyKeyboardMarkup(resize_keyboard=True, one_time_keyboard=True) keyboard.row(KeyboardButton('🔥 Номера'), KeyboardButton("🆘 Правила"), KeyboardButton("💰 Баланс")) keyboard.row(KeyboardButton('💩 Помощь'), KeyboardButton("💼 Мой профиль")) return keyboard
def lessons_main(group: str) -> ReplyKeyboardMarkup: keyboard = ReplyKeyboardMarkup(resize_keyboard=True) for lesson_id in lessons_db.get_ids(group): res = lessons_db.get_record_by_id(group, lesson_id) keyboard.row(f'{res["id"]:3}: {res["theme"]}') keyboard.row('Отмена') return keyboard
async def ask_confirmation(message: Message, state: FSMContext): data = await state.get_data() answer_message = f"Do you want to add this expense?: \n" \ f"{data.get('amount')} \u20BD for '{data.get('category').name}' with {data.get('payment')}" reply_keyboard = ReplyKeyboardMarkup() reply_keyboard.row('Confirm', 'Cancel') await CreateExpense.waiting_for_confirm.set() await message.answer(answer_message, reply_markup=reply_keyboard)
async def tg_reply_keyboard(buttons: list): markup = ReplyKeyboardMarkup(resize_keyboard=True) for row in buttons: row_buttons = [] for button in row: row_buttons.append(KeyboardButton(button)) markup.row(*row_buttons) return markup
def adminsroom_user_chose() -> ReplyKeyboardMarkup: keyboard = ReplyKeyboardMarkup(resize_keyboard=True) for user_id in users_db.get_ids('users'): user = users_db.get_record_by_id('users', user_id) button = f'{user_id}: {user["user_name"]}' keyboard.row(button) keyboard.row('Отмена') return keyboard
async def complex_keyboard(message: types.Message): button_text = KeyboardButton('🌄') button_contact = KeyboardButton('📞', request_contact=True) button_location = KeyboardButton('🌍', request_location=True) kb = ReplyKeyboardMarkup(resize_keyboard=True) kb.add(button_text) kb.row(button_location, button_contact) await message.answer('Нажми кнопку', reply_markup=kb)
def create_reply_markup(): keyboard = ReplyKeyboardMarkup(resize_keyboard=True) keyboard.row( KeyboardButton('Новый вопрос'), KeyboardButton('Сдаться'), ) keyboard.add(KeyboardButton('Мой счет')) return 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 adminsroom_message_chose() -> ReplyKeyboardMarkup: keyboard = ReplyKeyboardMarkup(resize_keyboard=True) for question_id in questions_base.get_ids(): question = questions_base.get_message(question_id) button = f'{question_id}: {lessons_db.get_record_by_id(question["lesson_group"], question["lesson_id"])["theme"]}' \ f' {users_db.get_record_by_id("users", question["author_id"])["user_name"]}' keyboard.row(button) keyboard.row('Отмена') return keyboard
def get_main_kb(): keyboard = ReplyKeyboardMarkup( resize_keyboard=True, one_time_keyboard=True).add( KeyboardButton( emojize(':chequered_flag: Играть :chequered_flag:'))) keyboard.row(KeyboardButton(emojize(':trophy: Рейтинги :trophy:'))) keyboard.row(KeyboardButton(emojize(':bar_chart: Статистика')), KeyboardButton(emojize(':interrobang: FAQ')), KeyboardButton(emojize(':construction: Настройки'))) return keyboard
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 gateway_keyboard(currency: str, currency_type: str) -> ReplyKeyboardMarkup: """Get keyboard with gateways of ``currency`` from whitelist.""" keyboard = ReplyKeyboardMarkup(row_width=5, one_time_keyboard=currency_type == "sell") keyboard.add(*[KeyboardButton(g) for g in CRYPTOCURRENCY[currency]]) keyboard.row( KeyboardButton(emojize(":fast_reverse_button: ") + i18n("back")), KeyboardButton(emojize(":fast_forward: ") + i18n("without_gateway")), KeyboardButton(emojize(":x: ") + i18n("cancel")), ) return keyboard
def get_more_holidays_menu() -> ReplyKeyboardMarkup: kb = ReplyKeyboardMarkup(resize_keyboard=True) kb.row(buttons.hom_tu_bishvat.value, buttons.hom_lag_baomer.value, buttons.hom_israel.value) kb.row(buttons.mm_holidays.value, buttons.back.value) if i18n_.is_rtl(): for row in kb.keyboard: row.reverse() return kb
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 oneplus_keyboard(args: OnePlus) -> ReplyKeyboardMarkup: # означает что выводит ReplyKeyboardMarkup keyboard = ReplyKeyboardMarkup(resize_keyboard=True, one_time_keyboard=True) if not args.aling: for num, button in enumerate(args.text): keyboard.add(KeyboardButton(text=str(button))) else: count = 0 for row_size in args.aling: keyboard.row(*[KeyboardButton(text=str(text)) for text in args.text[count: count + row_size]]) count += row_size return keyboard
def get_settings_menu() -> ReplyKeyboardMarkup: kb = ReplyKeyboardMarkup(resize_keyboard=True) kb.row(buttons.sm_zmanim.value, buttons.sm_candle.value, buttons.sm_havdala.value) kb.row(buttons.sm_lang.value, buttons.sm_omer.value, buttons.sm_location.value, buttons.back.value) if i18n_.is_rtl(): for row in kb.keyboard: row.reverse() return kb
def head_buttons(document_id): hed, get_content = get_headers(document_id) headers = [x for x in hed.keys()] formatted_2d_list = [headers[x:x + 5] for x in range(0, len(headers), 5)] site_button = ReplyKeyboardMarkup( resize_keyboard=True, row_width=6, keyboard=[[KeyboardButton(text=x) for x in itm] for itm in formatted_2d_list]) site_button.row('Меню', "Назад") return hed, site_button, get_content
def generate_reply_keyboard(args: ListOfButtons) -> ReplyKeyboardMarkup: keyboard = ReplyKeyboardMarkup(resize_keyboard=True) if not args.align: for num, button in enumerate(args.text): keyboard.add(KeyboardButton(text=str(button))) else: count = 0 for row_size in args.align: keyboard.row(*[KeyboardButton(text=str(text)) for text in args.text[count:count + row_size]]) count += row_size return keyboard
async def echo(message: types.Message): b_fiz = KeyboardButton('математика 💣') b_math = KeyboardButton('физика 👋') greet_kb = ReplyKeyboardMarkup(resize_keyboard=True, one_time_keyboard=True) greet_kb.row(b_fiz,b_math) if str(message.from_user.id) not in users: users[str(message.from_user.id)]= {"status":0} with open("data.json", "w") as write_file: json.dump(users, write_file) await message.answer("тут можно посмотреть все билеты по геометрии и другии теоремы \n \n выбери режим:", reply_markup=greet_kb) else: await message.answer("выбери режим:", reply_markup=greet_kb) print(users)
async def maint(message : types.Message): global delay if delay != 0: datd.add_text(delay, message.text) delay = 0 await bot.send_message(message.from_user.id, 'Приnal') else: if message.text[0] == '/': num = message.text[1:] inf = datd.get(num) await bot.send_message(message.from_user.id, inf[1]) f = open(inf[0], "rb") await Bot.send_photo(self=bot, chat_id=message.from_user.id, photo=f) f.close() await bot.send_message(message.from_user.id, inf[2]) markdown = """ *bold text* _italic text_ [text](URL) """ await bot.send_message(message.from_user.id, "использованные материалы\n"+inf[5]) elif message.text == 'физика 👋': await message.answer("патом") elif message.text == 'математика 💣': b_bil = KeyboardButton('геометрия 😈') b_new = KeyboardButton('алгебра 🤗') greet_kb = ReplyKeyboardMarkup(resize_keyboard=True, one_time_keyboard=True) greet_kb.row(b_bil, b_new) await message.answer("ДАЛЬШЕ ", reply_markup=greet_kb) elif message.text == 'алгебра 🤗': await message.answer("позже") elif message.text == 'геометрия 😈': b_bil = KeyboardButton('билеты 🤩') b_new = KeyboardButton('новые теоремы 🤨') greet_kb = ReplyKeyboardMarkup(resize_keyboard=True, one_time_keyboard=True) greet_kb.row(b_bil, b_new) await message.answer("ДАЛЬШЕ ", reply_markup=greet_kb) elif message.text == 'новые теоремы 🤨': await message.answer("пЫтом") elif message.text == 'билеты 🤩': ib = InlineKeyboardMarkup() bi = [] for i in range(1, 18): but = (InlineKeyboardButton(str(i), callback_data='b'+str(i))) bi.append(but) ib.add(bi[0],bi[1],bi[2],bi[3],bi[4],bi[5],bi[6],bi[7],bi[8],bi[9],bi[10],bi[11],bi[12],bi[13],bi[14],bi[15],bi[16],) await message.answer("выбирай 🐸:", reply_markup=ib)
def getGroupKeyboardMarkup(universityId) -> ReplyKeyboardMarkup: """ @deprecated Currently deprecated. @param universityId Id for universities. @return Telegram keyboard markup. """ markup = ReplyKeyboardMarkup(resize_keyboard=True) groups = DbManager.getGroupsByUniversityId(universityId) for group in groups: markup.row(group[1]) return markup