Я знаю, что у телеги такая особенность, что медиа от юзера идут в виде отдельного сообщения, но внешне они слитны для красоты, но я не могу понять эту систему, вследствие чего у меня дублируются все медиа из сообщения. Я не знаю, как это контрить. Подскажите, пожалуйста, как мне лучше всего собирать все аттачменты из сообщения и рассылать списку пользователей? Чтобы всё было в едином сообщении, как получили, так и отправили. Я бы сделал пересылку, но там скрыть отправителя нельзя, увы.
Код
@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, "Рассылка завершена!")