Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @dp.callback_query_handler(text='menu')
- async def process_menu_callback(callback_query: types.CallbackQuery):
- # Удаляем кнопки
- await bot.answer_callback_query(callback_query.id)
- await bot.delete_message(callback_query.message.chat.id, callback_query.message.message_id)
- # Получаем список товаров из базы данных
- conn = sqlite3.connect('menu.db')
- cursor = conn.cursor()
- # Вычисляем значения offset и limit на основе номера страницы и размера страницы
- page_size = 3
- page_number = 0
- if 'page_number' in callback_query.data:
- page_number = int(callback_query.data.split('_')[2])
- elif 'prev' in callback_query.data:
- page_number = int(callback_query.data.split('_')[2]) - 1
- elif 'next' in callback_query.data:
- page_number = int(callback_query.data.split('_')[2]) + 1
- offset = page_size * page_number
- limit = page_size
- cursor.execute(f'SELECT * FROM menu LIMIT {limit} OFFSET {offset}')
- item = cursor.fetchone()
- conn.close()
- # Создаем сообщение с товаром и кнопками
- message_text = f'<b>{item[1]}</b>\n{item[2]}\n{item[3]} руб.\n\n'
- keyboard_markup = InlineKeyboardMarkup()
- add_to_cart_button = InlineKeyboardButton('В корзину', callback_data=f'add_to_cart_{item[0]}')
- prev_button = InlineKeyboardButton('<< Назад', callback_data=f'menu_prev_{page_number}')
- next_button = InlineKeyboardButton('Вперед >>', callback_data=f'menu_next_{page_number}')
- keyboard_markup.row(prev_button, add_to_cart_button, next_button)
- await bot.send_photo(callback_query.message.chat.id, photo=InputFile(item[4]), caption=message_text,
- reply_markup=keyboard_markup)
- # Создаем кнопки "назад" и "вперед"
- keyboard_markup = InlineKeyboardMarkup()
- if page_number > 0:
- prev_button = InlineKeyboardButton('<< Назад', callback_data=f'menu_prev_{page_number}')
- keyboard_markup.add(prev_button)
- if cursor.fetchone() is not None:
- next_button = InlineKeyboardButton('Вперед >>', callback_data=f'menu_next_{page_number}')
- keyboard_markup.add(next_button)
- await bot.send_message(callback_query.message.chat.id, 'Выберите товар', reply_markup=keyboard_markup)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement