После настройки единого рабочего окна для переписки с учениками в Chatwoot, о котором я рассказывал в предыдущих статьях, встал вопрос ведения каналов. Писать анонсы, полезные материалы по математике или новости проекта приходится регулярно, и делать это сразу в трёх местах (Telegram, сообщество ВКонтакте и MAX) вручную — слишком утомительно.
Готовые сервисы автопостинга либо стоят неоправданно дорого для небольшого проекта, либо не поддерживают MAX. Поэтому я написал свой кросспостер на Python (на базе httpx и SQLite), который слушает мой Telegram-канал через long polling и автоматически публикует посты в VK и MAX.
В этой статье разберу реализацию: как правильно переносить форматирование Telegram (и почему обычные индексы строк сломают вам HTML), как публиковать фото на стену VK от имени сообщества в обход ограничений API, и как гарантировать, что один пост не улетит в каналы дважды.
Что именно я хотел получить