Skip to content

XMPP protocol component

License

Notifications You must be signed in to change notification settings

aleesa-bot/aleesa-jabber-go

Repository files navigation

Aleesa-jabber-go

Что это?

Сервис для aleesa-bot, работающий с протоколом XMPP/Jabber. С основными сервисами бота работает по протоколу Redis pubsub.

Как заставить его работать?

Технически, бот собирается гошкой 1.21. Приложение тестировалось на alpine linux x86_64 3.16, но должно работать на любом (более свежем) linux-е. Работоспособность на других платформах не тестировалась.

Чтобы получить готовые бинарники, достаточно выполнить команду:

make

в итоге получится бинарник aleesa-jabber-go. После создания data/config.json из data/config_sample.json, можно запускать приложение.

Предполагается, что конфиг написан в формате human json, который допускает коментарии и некоторые другие вольности в форматировании json-а. Конфиг ищется последовательно по следующим путям по принципу "кто первый того и тапки":

~/.aleesa-jabber-go.json
~/aleesa-jabber-go.json
/etc/aleesa-jabber-go.json
data/config.json

В каталоге contrib находится скрипт для alpine linux, системы инициализации openrc. Этот скрипт достаточно положить в /etc/init.d/aleesa-jabber-go. После чего скопировать бинарник в каталог /var/lib/aleesa-jabber-go, положить конфиг в одну из дефолтных локаций (тестировалась /var/lib/aleesa-jabber-go/data/config.json) и после этого сервис запускается командой:

service aleesa-jabber-go start

В автозагрузку его можно прописать через команду:

rc-update add aleesa-jabber-go default

Замечание

Для бота важно, чтобы комната была неанонимной, или была полуанонимной, то тогда бот должен быть админом, чтобы видеть real jid-ы участников. По механике работы, ему надо знать real jid-ы участников.

Дисклеймер

Весь дисклеймер в файле LICENSE.txt :)

Благодарности

Во-первых, сообществу, без него не было бы чятиков.

Во-вторых, batman46(new) из конференций на jabber.ru, за наблюдения и за некоторые идеи, воплощённые в прототипе бота, с которого был списан этот фронт-энд.

В-третьих, U2 из конференции radio@conference.jabber.ru за мысли, идеи для прототипа бота, с которого опять же был списан этот фронт-энд, и за позитивный настрой.

Languages