Задать вопрос
Hackerman1
@Hackerman1
17 лет, плохое зрение.

Как мне перестать собирать x2 медиа из сообщений пользователя в телеграм?

Я знаю, что у телеги такая особенность, что медиа от юзера идут в виде отдельного сообщения, но внешне они слитны для красоты, но я не могу понять эту систему, вследствие чего у меня дублируются все медиа из сообщения. Я не знаю, как это контрить. Подскажите, пожалуйста, как мне лучше всего собирать все аттачменты из сообщения и рассылать списку пользователей? Чтобы всё было в едином сообщении, как получили, так и отправили. Я бы сделал пересылку, но там скрыть отправителя нельзя, увы.

Код

@bot.message_handler(state=UserState.ADMIN_MAILING, content_types=['text', 'photo', 'video', 'document'])
def send_mailing(message):
    user_id = message.from_user.id
    mailing_text = message.text

    users = Referrer.select().where(Referrer.can_be_contacted == True)

    for user in users:
        media = []

        if message.photo:
            mailing_text = message.caption
            for photo in message.photo:
                media.append(InputMediaPhoto(photo.file_id))
        print(media)

        if message.video:
            mailing_text = message.caption
            media.append(InputMediaVideo(message.video.file_id))

        if message.document:
            mailing_text = message.caption
            media.append(InputMediaDocument(message.document.file_id))

        try:

            if mailing_text:
                bot.send_message(user.user_id, mailing_text)

            if media:
                bot.send_media_group(user.user_id, media)

        except Exception:
            user.cannot_contact_with_user()

    bot.delete_state(user_id, user_id)
    bot.reply_to(message, "Рассылка завершена!")
  • Вопрос задан
  • 22 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
Lord_of_Rings
@Lord_of_Rings
Дунадан - северный странник. Злой, но очень добрый
Вам надо поразбираться с media_group_id. Вот это может поможет
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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