Как убрать надпись "переслано от" при пересылке сообщений Aiogram?

Рейтинг: 0Ответов: 2Опубликовано: 08.02.2023

Нужно переслать сообщение из диалога с ботом одного пользователя в диалог с другим.

То есть пользователь 1 присылает боту видео, а бот присылает это видео пользователю 2.

Я не нашел, как убрать надпись, что сообщение было переслано.

Пользуюсь методом forward_message. Возможно в forward_message есть какой-то аргумент, позволяющий убрать надпись. Или вообще альтернативный метод.

Кусочек кода:

if video_flag == True:

        if message.content_type!='video':
            await bot.send_message(users_id, f"Не похоже на видео. Отправьте ещё раз", reply_markup = inline_topics_8)
        else:
            await bot.send_message(users_id, f"Видео отправлено на модерацию.", reply_markup = inline_topics)
            await bot.forward_message(chat_id=admin_id, from_chat_id=users_id, message_id=message.message_id)
            video_flag = False 

Ответы

▲ 1Принят

пересылка без автора называется копирование и это отдельный метод copy_message

await bot.copy_message(chat_id, from_chat_id, message_id)

 

chat_id = 0 # чат куда пересылать
from_chat_id = # чат откуда пересылать
message_id = 0 # айди сообщения

можно вот так в хендлере

async def handler(message: types.Message)
    await message.copy_to(chat_id)
▲ 0

Добавляем параметр disable_notification в функцию forward_message и со значением True. Это отключит уведомление получателя о том, что сообщение было переадресовано, и должно имя отправителя не отображаться.

await bot.forward_message(chat_id=admin_id, from_chat_id=users_id, message_id=message.message_id, disable_notification=True)