Рассказать я хотел не о нём. Чтобы не держать постоянно запущенным клиента Rocket.Chat, решил поднять для него шлюз в Telegram, чтобы пересылал туда сообщения. Нашёл довольно популярный проект Matterbridge, который поддерживает очень много популярных чатов:
◽️Discord
◽️IRC
◽️Matrix
◽️Mattermost
◽️Microsoft Teams
◽️Nextcloud Talk
◽️Rocket.chat
◽️Slack
◽️Telegram
◽️Twitch
◽️VK
◽️XMPP
◽️Zulip
Оставил наиболее известные. Полный список ещё больше. Причём поддерживает он их, что называется, нативно. Там буквально надо указать адрес сервера, логин, пароль, либо токен, название чата или группы и всё должно работать.
Сразу скажу, что у меня не получилось настроить передачу из рокета в телегу. Я не знаю прочему. Бился пару часов, решить не смог, бросил. Получал постоянно ошибку, с которой справиться не смог. Но в целом, судя по описанию, вещь вполне рабочая и настраивается относительно легко. Покажу свой конфиг, который с точки зрения синтаксиса сделан правильно. Можно взять его за основу. Имя файла
matterbridge.toml:[rocketchat]
[rocketchat.myrocketchat]
Server="https://serveradmin.rocket.chat:443"
Login="rocketuser@gmail.com"
Password="topsecret"
PrefixMessagesWithNick=false
RemoteNickFormat="[{PROTOCOL}] <{NICK}> "
[telegram]
[telegram.mytelegram]
Token="13992116911:BBHtEAKqxUHYt45PoWwxKfvH5TR6-vdNw"
RemoteNickFormat="<{NICK}> "
MessageFormat=""
QuoteFormat="{MESSAGE} (re @{QUOTENICK}: {QUOTEMESSAGE})"
QuoteLengthLimit=46
IgnoreMessages="^/"
[[gateway]]
name="Serveradmin_gateway"
enable=true
[[gateway.inout]]
account="telegram.mytelegram"
channel="-1001331797787"
[[gateway.inout]]
account="rocketchat.myrocketchat"
channel="test-room"
Там логика такая, что сначала описывается доступ ко всем чатам-серверам, а потом указывается направление пересылки и конкретные чаты и группы, куда будут направляться сообщения.
Запускаем шлюз через простенький
docker-compose.yml:services:
matterbridge:
image: 42wim/matterbridge:stable
restart: unless-stopped
volumes:
- ./matterbridge.toml:/etc/matterbridge/matterbridge.toml:ro
# docker compose upЕсли в конфигурации будут ошибки, об этом будет информация и контейнер завершит работу.
Описание настроек для всех поддерживаемых чатов есть в wiki. Можно указывать разные направления пересылок, как в одну, так и в другую сторону, или двустороннюю пересылку. Также можно сообщения пересылать в несколько разных приёмников. Например, из группы Телеграм в несколько разных чатов. Если будете настраивать пересылку в или из Telegram, внимательно прочитайте последовательность действий в wiki. Обязательно отключить боту Privacy mode и после этого вывести его из группы и завести снова. Я пока последнее не сделал, не работало ничего в телеге.
Проект полуживой, развивается последнее время слабо. В Issues много мелких и средних багов, так как чаты постоянно обновляются и надо следить за их поддержкой. Но в целом, это работает. Ничего лучше я лично не видел с таким количеством поддерживаемых чатов. Особенно удивила поддержка ВК. Если кто-то знает что-то лучше, поделитесь информацией.
⇨ 🌐 Исходники
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#chat