Доброго времени суток. Сделал телеграм-бота на Python на библиотеке Aiogram, одной из функций которого является
редактировать посты канала , добавляя к ним подпись со ссылками на канал и чат. Позже, этого показалось мало и я дописал в эту же функцию добавление кнопок
InlineKeyboardButton под постами.
Казалось, код успешно работает, но позже увидел, что при добавлении
нескольких элементов контента (>1), кнопки под постами не появляются. При этом текстовая подпись добавляется успешно.
Это особенность Телеграма или я чего-то не учёл? Части кода ниже:
# Создаю переменные со ссылками через подключенную hlink
mychannel = hlink('Название канала', 'https://t.me/ссылка')
mychat = hlink('Название чата', 'https://t.me/ссылка')
# Создаю инлайн кнопки (две в ряд)
buttons = [
types.InlineKeyboardButton(text="Канал", url="https://t.me/ссылка"),
types.InlineKeyboardButton(text="Чат", url="https://t.me/ссылка")
]
keyboard = types.InlineKeyboardMarkup(row_width=2)
keyboard.add(*buttons)
# Хендлер постов канала
@dp.channel_post_handler(content_types=['text','photo','video','document'])
async def auto_redactor(message: types.Message):
# Присваиваю переменным полученный из поста текст либо описание под фото/видео
text = message.text
caption = message.caption
# Перед редактированием поста проверяю, что принят правильный тип переменной текста либо описания
if (isinstance(text, str)):
await message.edit_text(f'{text}\n\n{mychannel} | {mychat}',parse_mode="HTML",reply_markup=keyboard)
elif (isinstance(caption, str)):
await message.edit_caption(f'{caption}\n\n{mychannel} | {mychat}',parse_mode="HTML",reply_markup=keyboard)
Ссылки всегда вставляются корректно. А вот кнопки не отображаются, если в посте больше одного элемента контента.