этого у меня зарегистрирован message_handler
dp.register_message_handler(im_handler, content_types = types.ContentType.PHOTO)
Проблема в том, что функция im_handler, если я правильно понял - вызывается на каждую фотографию в отдельности. То есть отправлено мне например 4 фото в одном сообщении - она вызовется 4 раза.
Мне же нужно сразу знать, сколько фотографий отправлено. Как это можно сделать? Или еще лучше - как получить функцию, принимающую сразу массив из всех фотографий, а не 4 раза по одной
Извини, что отвечаю на довольно старое сообщение Пытаюсь воссоздать твой пример с получением медиа группы с помощью arq MRE: https://paste.aiogram.dev/visivozevo.py Мне кажется, я как-то неправильно воркер запускаю, ибо если зарегистрировать в dp.startup.register() запуск, ругается, что event loop is currently running
Ты не должен запускать воркер в том же процессе что и бот Запускай отдельно от бота
https://gist.github.com/prostmich/b449eaa6392f85e072d8e0aabdfe3c76 BOT_TOKEN конечно же лучше вынести в отдельный файл, и потом импортировать
кхем пахнет мидлварью на сбор альбома, arq тут чё даёт?
https://t.me/aiogram_ru/1089480
photos = await redis.zrangebyscore( f"media_group:{media_group_id}", float("-inf"), float("+inf"), ) ?
Получает отсортированную zrange по скору
А как арк понимает что фотографии в альбоме закончились
Арк не понимает этого, просто таска последняя отработала и новая уже не создалась
Просто как себя поведет твой мидлварь, если вдруг сеть отвалится или бот упадет? А тут консистентность данных соблюдается, всё в редиске хранится
можно сделать чтобы мидлварь пихала данные в редис))) ну а если серьёзно, то если сеть отвалится, ты всё равно альбом нормально не обработаешь и скорее всего придётся попросить юзера отослать его по-новой
Разработчики редиса именно этот смысл в это и вкладывали
Обсуждают сегодня