Решил проблему под свои нужды изменением кода в библиотеке. Оказалось, если передаётся список медиа, то он обрабатывается
в этом блоке через цикл, с помощью вызова метода
_send_album(), который даже не принимает переданные ранее
formatting_entities .
Поэтому, я дописал в аргументы метода
_send_album() аргумент formatting_entities:
async def _send_album(self: 'TelegramClient', entity, files, caption='',
formatting_entities=None,
progress_callback=None, reply_to=None,
parse_mode=(), silent=None, schedule=None,
supports_streaming=None, clear_draft=None,
force_document=False, background=None, ttl=None):
И в сам
вызов _send_album() тоже дописал передачу наших
formatted_entities
result = []
while file:
result += await self._send_album(
entity, file[:10], caption=captions[:10], formatting_entities=formatting_entities,
progress_callback=used_callback, reply_to=reply_to,
parse_mode=parse_mode, silent=silent, schedule=schedule,
supports_streaming=supports_streaming, clear_draft=clear_draft,
force_document=force_document, background=background,
)
file = file[10:]
captions = captions[10:]
sent_count += 10
return result
Затем,
внутри метода _send_album() после обработки подписей вставил код, чтобы
formatted_entities
к первому сообщению, если оно содержит текст:
if captions and captions[0]:
captions[0] = (captions[0][0], formatting_entities)
Ну и всё заработало. Теперь группа отправляется с форматированием. Но эти изменения тоже необходимо немного подкорректировать чтобы они универсально работали в разных случаях.