Перейти к содержимому

Канальная абстракция

Все каналы реализуют единый контракт из модуля channel/api. Это позволяет добавлять новые платформы без изменения ядра системы.

  • ChannelConnector — интерфейс запуска, остановки и отправки сообщений
  • IncomingMessage / OutgoingMessage — модели входящих и исходящих сообщений
  • Attachment — модель вложения с типом и данными
  • ChannelIdentity — уникальный идентификатор контакта в рамках канала

Вложения передаются через in-memory буфер (RAM relay): отдающий канал выгружает файл в буфер, принимающий забирает. Транзитные файлы на диск не записываются.

МодульПлатформа
channel/telegramTelegram Bot API (tgbotapi)
channel/emailIMAP + SMTP (Jakarta Mail)
channel/vkontakteVK API (Ktorfit)

Для добавления нового канала достаточно реализовать ChannelConnector и зарегистрировать его в Koin.