Брат-близнец deltachat_publish, только в обратную сторону: тот публикует посты в блог, а этот доставляет их читателям по mesh-сети Reticulum. Работает в паре с зеркалом блога на узле NomadNet.
LXMF-адрес бота: 777777779e7beceb13399c0ab0c63613
Команды
Писать боту можно из Sideband, Columba, MeshChat или NomadNet (регистр не важен, / в начале тоже можно):
подписаться(sub,start) — присылать новые посты;отписаться(unsub,stop) — перестать присылать;последние(last) — свежие посты без подписки.
Стек
- Язык: Python 3.13
- Сеть: RNS + LXMF
- База данных: SQLite (подписчики и уже разосланные посты)
- Деплой: Docker + Docker Compose, обновление по тегам
vX.Y.Zчерезupdate.sh
Как это устроено
- Новые посты бот берёт из RSS-ленты. При первом запуске он только запоминает уже существующие посты, чтобы не засыпать подписчиков всем архивом.
- Сообщение содержит ссылки на пост в зеркале NomadNet и на сайте.
- Доставка сначала напрямую, а если подписчик не в сети — через propagation node: клиент заберёт сообщение при следующей синхронизации.
- Не ретранслятор: Reticulum у бота запущен с
enable_transport = No, чужой трафик через сервер не ходит. - Адрес подобран с префиксом
77777777, ключ лежит только на сервере.
Исходный код
Репозиторий открыт на GitHub: mrgluek/lxmf_publish, зеркало на моём сервере: git.gluek.info/gluek/lxmf_publish. Лицензия MIT.