Как отключить превью ссылки при копировании сообщения?

Рейтинг: 0Ответов: 1Опубликовано: 22.07.2023
await bot.send_message()

имеет аргумент disable_web_page_preview, который задаёт отключение превью веб страницы, на которую ведёт ссылка.

await bot.copy_message()

такого аргумента не имеет. как тогда отключать превью страницы при копировании сообщения?

Ответы

▲ 0Принят

Могу предложить такой вариант

import re # Не забудьте импортировать библиотеку

@dp.message_handler()
async def copy_mess(message: types.Message):
    regex = r"(?P<domain>\w+\.\w{2,3})"
    url = re.search(regex, message.text)
    if url:
        await bot.send_message('<ID куда пересылать>', message.text, parse_mode='HTML', disable_web_page_preview=True)
    else:
        await bot.copy_message('<ID куда пересылать>', message.chat.id, message.message_id)

Суть такая - если сообщение содержит ссылку, то получаем текст сообщение и отправляем с помощью обычной отправки await bot.send_message() с указанием disable_web_page_preview=True. А если сообщение не содержит ссылку, то просто пересылаем его с помощью await bot.copy_message()