Здравствуйте!
Я разрабатываю Telegram-бота для автоматического добавления водяного знака (текста) в конце каждого нового поста на канале. Основной функционал уже готов, но я хотел бы дополнить его возможностью добавлять в водяной знак кастомные эмодзи.
К сожалению, я не понимаю, как реализовать этот функционал. Подскажите, пожалуйста, как это лучше сделать? Буду благодарен за любую помощь и советы.
Спасибо!
Вот основной   реализация основного функционала, если кому интересно - 
import logging
from telegram import Update, MessageEntity
from telegram.ext import (
    ApplicationBuilder,
    CommandHandler,
    MessageHandler,
    filters,
    ContextTypes,
)
# Токен бота
TOKEN = "ваш_токен"
# Логирование
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
# Корректировка смещения для entities
def adjust_entities_offset(entities, offset):
    """Корректирует смещение entities."""
    if not entities:
        return []
    return [
        MessageEntity(
            type=entity.type,
            offset=entity.offset + offset,
            length=entity.length,
        )
        for entity in entities
    ]
# Обработчик новых сообщений в канале
async def handle_channel_post(update: Update, context: ContextTypes.DEFAULT_TYPE):
    """Добавляет водяной знак к новым сообщениям в канале."""
    post = update.channel_post
    if not post:
        return
    watermark = "© Ваш водяной знак"
    separator = "\n\n"
    try:
        if post.text:
            original_entities = list(post.entities or [])
            updated_text = f"{post.text}{separator}{watermark}"
            watermark_offset = len(post.text) + len(separator)
            adjusted_entities = adjust_entities_offset(original_entities, 0) + adjust_entities_offset(
                [MessageEntity(type="bold", offset=watermark_offset, length=len(watermark))], 
                watermark_offset
            )
            await context.bot.edit_message_text(
                chat_id=post.chat_id,
                message_id=post.message_id,
                text=updated_text,
                entities=adjusted_entities,
            )
        elif post.caption:
            original_entities = list(post.caption_entities or [])
            updated_caption = f"{post.caption}{separator}{watermark}"
            watermark_offset = len(post.caption) + len(separator)
            adjusted_entities = adjust_entities_offset(original_entities, 0) + adjust_entities_offset(
                [MessageEntity(type="italic", offset=watermark_offset, length=len(watermark))], 
                watermark_offset
            )
            await context.bot.edit_message_caption(
                chat_id=post.chat_id,
                message_id=post.message_id,
                caption=updated_caption,
                caption_entities=adjusted_entities,
            )
        logger.info(f"Водяной знак добавлен к сообщению {post.message_id}")
    except Exception as e:
        logger.error(f"Ошибка при обработке сообщения: {e}")
# Команда /start
async def start(update: Update, context: ContextTypes.DEFAULT_TYPE):
    """Отправляет приветственное сообщение."""
    await update.message.reply_text("Привет! Я добавляю водяные знаки к сообщениям в канале.")
# Основной метод запуска бота
def main():
    app = ApplicationBuilder().token(TOKEN).build()
    # Обработчики
    app.add_handler(CommandHandler("start", start))
    app.add_handler(MessageHandler(filters.UpdateType.CHANNEL_POST, handle_channel_post))
    logger.info("Бот запущен.")
    app.run_polling()
if __name__ == "__main__":
    main()
Тут только скелет проекта, весь не поместился:)