@Andriy426

Как сделать форматирование текста пересланого поста в бота тг?

import asyncio
from aiogram import F
from aiogram.types import Message
from aiogram.filters import Command
from aiogram.enums import ParseMode
from aiogram import Bot, Dispatcher, types

CHANNEL_ID = '@channel'
admin = 'user_id'

bot = Bot(token="5556rhyfuedkollBygE")
dp = Dispatcher()

@dp.message(F.text)
async def posts(message: types.Message):
    if str(message.from_user.id) == admin:
        
        if message.text:
            modified_text = '\n'.join(message.text.split('\n')[:-2])
            auto = '\n\nТоп канал'
            modified_text += auto 

            buttons = types.InlineKeyboardButton(text="Пост", callback_data="post_to_channel")
            markup = types.InlineKeyboardMarkup(inline_keyboard=[[buttons]])

            await bot.send_message(admin, modified_text, disable_web_page_preview=True, reply_markup=markup)
        else:
            await bot.send_message(admin, "Error")
    else:
        await bot.send_message(message.chat.id, "Error")


Я боту пересилаю пост с разним текстом: жирним, курсивом и тд. Он мне присилает тот же текст только нет форматирования. parse_mode='html' писал, не работает.
  • Вопрос задан
  • 100 просмотров
Пригласить эксперта
Ответы на вопрос 1
@twistfire92
Python backend developer
В объекте message текст сообщения и правила форматирования разделены по разным полям - text и entities

aiogram, к счастью, позволяет получить текст сообщения с уже примененным форматированием в форматах markdown или html

Поэтому вам стоит работать не с message.text, а с message.html_text, или message.md_text

Не забудьте потом указать нужный ParseMode при отправке измененного сообщения
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы