Задать вопрос
yummy1gay
@yummy1gay

Почему не работает спойлер в сообщении при использовании telethon?

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

Вот код:
@client.on(events.NewMessage(pattern='/kok'))
async def kok(event):
    text = f"<b>жирный текст</b> <tg-spoiler>спойлер</tg-spoiler>"

    await event.respond(text, parse_mode='html')


Какое сообщение в итоге я получаю:

66999a38678ce071937353.jpeg

Хотя должен получить такое (в этом примере я использовал aiogram):

66999b19b33c4252420904.jpeg

В aiogram всё отлично работает, а вот в telethon нет.
Если что – использую самую последнюю версию telethon (1.36.0)

Как это фиксить?
  • Вопрос задан
  • 154 просмотра
Подписаться 2 Простой 2 комментария
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
В telethon нет поддержки спойлеров. Можете сами посмотреть исходный код:
https://github.com/LonamiWebs/Telethon/blob/a5c98a...
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
@nozzy
Symfony, Laravel, SQL, Python, Telegram
<span class="tg-spoiler">spoiler text</span>
Ответ написан
moonz
@moonz
web developer | seo | design
parse_mode= вместо HTML пропиши мардаун
Ответ написан
Комментировать
@WalterxoD
Надо использовать MessageEntitySpoiler. Вот пример кода:
@client.on(events.NewMessage(pattern='/start'))
async def start(event):
    message_text = "Привет, человек!"
    spoiler_start = message_text.find('человек')
    spoiler_end = spoiler_start + len('человек')
    await event.respond(
        message_text, 
        formatting_entities=[MessageEntitySpoiler(offset=spoiler_start, length=spoiler_end - spoiler_start)]
    )


А для цитат и кастомных эмоджи: MessageEntityBlockquote, MessageEntityCustomEmoji

Но работает только с одиночными сообщениями, с альбомами не работает
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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