• Как отправлять список частями в Телеграм-боте?

    @Boos55 Автор вопроса
    Вот полный код двух хэндлеров в которых должен этот процесс происходить:
    # Этот хэндлер будет срабатывать на нажатие кнопки Show
    @router.message(F.text == 'Show', StateFilter(FSMFindSale.price))
    async def process_show_command(message: Message, state: FSMContext):
        await message.answer(text='Произвожу поиск...')
    
        more_button = KeyboardButton(text='Показать ещё')
        # Создаем объект клавиатуры, добавляя в него кнопки
        keyboard = ReplyKeyboardMarkup(keyboard=[[more_button]], resize_keyboard=True)
    
        data = await state.get_data()
        all_request = request_URL(main_menu_json, data['categories'])
        pages = get_pages(all_request)
        response = get_category(pupuk)
        products = prepare_items(response, data['price'])
    
        await state.update_data(products=products)
    
        prew = []  #Это конечный список, с которым дальше идёт работа
        for i in products:
            for el in i:
                prew.append(i[el])
        c = 0
        count = 0
        while True:
            c += 5  #Здесь выводим по пять элементов списка
            d = c - 5
    
            for el in prew[d: c]:
                count += 1
                photo = el[1]
                # print(el)
                # print('')
                await bot.send_photo(message.chat.id, photo,
                                     caption=f'{count}) \nНаименование: {el[3]}\n\nЦена со скидкой: {el[6]}')
                await message.answer(text='some text', reply_markup=keyboard)
    
    
    # Этот хэндлер будет срабатывать на ответ "Показать ещё" 
    @router.message(F.text == 'Показать ещё')
    async def process_show_more(message: Message, state: FSMContext):
        await message.answer(text='некоторый текст')
        #await process_start_command(message: Message)

    Второй хэндлер как раз и должен срабатывать на кнопку и запускать процесс в предыдущем хэндлере, но уже с того места, на котором завершился предыдущий цикл. Возможно это как то иначе можно реализовать
  • Как отправить несколько сообщений через один хэндлер в Telegram боте?

    @Boos55 Автор вопроса
    lst = [{1: 'a'}, {1: 'b'}, {1: 'c'}] #список из трёх словарей с одинаковыми ключами, но разными значениями
        for i in lst: #проходим по списку
        text = i[1] #достаём значение из каждого словаря по одному ключу, т.к. он одинаковый во всех трёх словарях
        await callback.message.edit_text(text=text) #выводим сообщение в чат, и вот тут появляется описанная проблема
  • Как отправить несколько сообщений через один хэндлер в Telegram боте?

    @Boos55 Автор вопроса
    Возможно не совсем корректно описал. Вот упрощённый пример:

    lst = [{1: 'a'}, {1: 'b'}, {1: 'c'}] #список из трёх словарей с одинаковыми ключами, но разными значениями
    for i in lst: #проходим по списку
    text = i[1] #достаём значение из каждого словаря по одному ключу, т.к. он одинаковый во всех трёх словарях
    await callback.message.edit_text(text=text) #выводим сообщение в чат, и вот тут появляется описанная проблема

    Всё это происходит внутри хэндлера срабатывающего на нажатие инлайн-кнопки