Задать вопрос
NickITDir
@NickITDir
Начинающий разработчик

Как отправить несколько фото через телеграм-бот?

у меня бот в котором менеджер должен передавать фото при выполнении задачи админу на проверку. Но почему то отправляется только 1 фото 4 раза при том... где накосячил, чего не вижу?
помогите разобраться...

def process_photo(message, task_id, manager_chat_id):
    """
    Обрабатывает полученную медиагруппу (фото) и пересылает их администраторам.
    """
    try:
        # Логируем объект message
        logger.debug(f"Полученное сообщение: {message}")

        # Получаем список администраторов
        admins = CustomUser.objects.filter(status='admin')

        # Если это медиагруппа
        if hasattr(message, 'media_group') and message.media_group:
            media = []

            # Собираем фото из медиагруппы
            for idx, media_item in enumerate(message.media_group):
                if media_item.media_type == 'photo':
                    media_item_data = {
                        'type': 'photo',
                        'media': media_item.file_id,
                    }
                    # Если это первое фото, добавляем caption
                    if idx == 0:
                        media_item_data['caption'] = 'Ваш текст здесь'
                    media.append(media_item_data)

            # Логируем медиагруппу
            logger.debug(f"Медиагруппа для отправки: {media}")

            # Отправляем медиагруппу администраторам
            for admin in admins:
                if media:
                    bot.send_media_group(admin.telegram_id, media)
                    sleep(1)

            bot.send_message(manager_chat_id, "Медиагруппа отправлена админам.")

        # Если это одиночное фото
        elif message.photo:
            for photo in message.photo:
                for admin in admins:
                    bot.send_photo(admin.telegram_id, photo.file_id)
                    sleep(1)

            bot.send_message(manager_chat_id, "Фото отправлены админам.")

        else:
            bot.send_message(manager_chat_id, "Фото или медиагруппа не были найдены.")

    except Exception as e:
        logger.error(f"Ошибка при обработке фотографии или медиагруппы для задачи {task_id}: {e}")
        bot.send_message(manager_chat_id, "Произошла ошибка при обработке фото или медиагруппы.")
  • Вопрос задан
  • 120 просмотров
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 2
phaggi
@phaggi Куратор тега Python
лужу, паяю, ЭВМы починяю
Накосячил в том, что не читал документацию API телеграма, не разбирался, а притащил сюда бред от чатжпт и хочешь, чтобы за тебя разбирались.
Ответ написан
Комментировать
@WilliamAdamsAUR
Добавь побольше информации к вопросу, какую либу используешь, какие выводы в логах и т.д. и убери эти sleep(1), толку от них нет
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы