async def generate_rate_markup(): markup = InlineKeyboardMarkup() markup.row(*[ InlineKeyboardButton(text=num, callback_data=f"rate_{num}") for num in range(MIN_RATE, MAX_RATE + 1) ]) return markup
def create_inline_keyboard(day): inline_keyboard = InlineKeyboardMarkup() btns = [] days_ukr = ['пн', 'вт', 'ср', 'чт', 'пт'] days_query = ['monday', 'tuesday', 'wednesday', 'thursday', 'friday'] for i in range(5): if i == day: this_button = InlineKeyboardButton('➡️ ' + days_ukr[i], callback_data=days_query[i]) else: this_button = InlineKeyboardButton(days_ukr[i], callback_data=days_query[i]) btns.append(this_button) inline_keyboard.row(*btns) inline_keyboard.add(InlineKeyboardButton('♻️ Змінити тиждень', callback_data='refresh')) return inline_keyboard
async def subcategories_keyboard(category): CURRENT_LEVEL = 1 markup = InlineKeyboardMarkup(row_width=2) subcategories = await get_subcategories(category=category) for subcategory in subcategories: button_text = f"{subcategory.subcategory_name}" callback_data = make_callback_data( level=CURRENT_LEVEL + 1, category=category, subcategory=subcategory.subcategory_code, ) markup.insert( InlineKeyboardButton(text=button_text, callback_data=callback_data) ) markup.row( InlineKeyboardButton( text="Back", callback_data=make_callback_data(level=CURRENT_LEVEL - 1) ) ) return markup
async def send_access_request(user): keyboard = InlineKeyboardMarkup() accept_access_btn = InlineKeyboardButton(text='Принять', callback_data=json.dumps({ 'action': 'set_access', 'user_id': user.user_id, 'mode': True })) cancel_access_btn = InlineKeyboardButton(text='Отказать', callback_data=json.dumps({ 'action': 'set_access', 'user_id': user.user_id, 'mode': False })) keyboard.row(accept_access_btn, cancel_access_btn) access_request_msg = f''' ***User ID:*** {user.user_id} ***First name:*** {user.first_name} ***Last name:*** {user.last_name if user.last_name else '—'} ***Username:*** {'@'+user.username if user.username else '—'} ''' msg_info = await bot.send_message(ACCESS_CONTROL_CHANNEL_ID, access_request_msg, reply_markup=keyboard, parse_mode='Markdown') if user.access_msg_id is not None: await bot.delete_message(ACCESS_CONTROL_CHANNEL_ID, user.access_msg_id) user.access_msg_id = msg_info['message_id'] user.save()