Приложение, позволяющее объединять чаты в различных мессенджерах через использование ботов. При подключении ботов к чатам и запуске для них приложения все сообщения отправленные в одном чате будут получены в других от бота с префиксом о том, откуда данное сообщение родом (мессенджер, пользователь). В данный момент поддерживаются мессенджеры Discord, Telegram, Vk, и отправка в них текстовых сообщений, аудио, видео и фото.
- Пользователь создает по боту для каждой из беседах в мессенджерах (Вк, Телеграм, Дискорд), добавляет их в эти беседы
- Пишет конфигурационный файл, в котором задает токены и идентификаторы бесед ботов.
- Запускает приложение, передавая на вход конфигурационный файл.
- При запуске приложения для каждого бота создается объект IMNode, содержащий объект с конкретным ботом, входящую и исходящую очередь, а также ссылки на другие Node.
- Для каждой Node асинхронно запускается несколько задач: ожидание ботом сообщений(1), проверка входящей очереди (2), проверка исходящей очереди (3).
- (1): когда бот получает сообщение, он преобразовывает его в универсальный вид и кладет в исходящую очередь своей Node.
- (2): когда Node видит наличие сообщений в исходящей очереди, она добавляет это сообщение во все входящие очереди Node.
- (3): когда Node видит наличие сообщений во входящей очереди, она указывает боту внутри себя на необходимость отправки сообщения.