Update README.md

This commit is contained in:
eleksir
2023-08-20 11:37:22 -07:00
parent ae7d0365e1
commit a0a403b272

View File

@@ -11,14 +11,20 @@
работает по классическим механикам (шифрованный канал связи, без возможности коммуникации в незашифрованном виде),
без поддержки механизма start tls. Что-то в гошке или на стороне сервера при выборе StartTLS не работает.
Имеет возможность заносить пользователей в бан-лист, согласно заданным в чёрном списке правилам.
Имеет возможность заносить пользователей в бан-лист, согласно заданным в чёрном списке правилам: по совпадению с
регулярными выражениями в nick-е или jid-е злодея. Правила можно настроимть как глобально, для всех комнат, где
присутсвует бот, так и для каждой комнаты отдельно. При изменении списка правил бота надо перезапускать.
## Что он не может?
* Не может заходить в комнаты, защищённые паролем.
* Не умеет разгадывать капчу.
Предполагается, что если на комнату навешен пароль, то такой бот там не нужен, а капча защищает от злодеев на 100%,
иначе её навешивать бесполезно.
## Как заставить его работать?
Технически, бот собирается гошкой 1.20 под платформу linux. Работоспособность на других платформах не тестировалась.
Чтобы получить готовые бинарники, достаточно выполнить команду:
@@ -27,16 +33,20 @@
make
```
в итоге получится бинарник **buny-jabber-bot**, которому нужен конфиг data/config.json для работы.
в итоге получится бинарник **buny-jabber-bot**, которому нужен конфиг data/config.json, whitelist.json и blacklist.json
для работы.
А также понадобятся **data/blacklist.json** и **data/whitelist.json**, в которых находятся списки правил, злодеев и
списки проверенных пользователей.
В файлах **data/blacklist.json** и **data/whitelist.json** находятся списки злодеев и списки проверенных пользователей.
### Замечание
Очевидным образом в комнате банить может только админ. Поэтому боту придётся выдать админские права. А комнату сделать
не анонимной (то есть, чтобы как минимум админы могли видеть реальный jid, потому что в бан отправляется именно он).
Почему нельзя оставить комнату анонимной? А тут всё просто, в банлист заносится реальный jid пользователя, а не его ник.
Соответственно, бот должен видеть этот самый реальный jid. В анонимной комнате бот не сможет увидеть реальный jid.
А автокик - это конечно хорошо, но есть нюанс: можно, например, гадить ником.
## Как работает бан?
Никакой магии, всё по стандарту, согласно [xep-0045](https://xmpp.org/extensions/xep-0045.html#ban).
@@ -53,7 +63,7 @@ make
affiliation сменится на none, бот заметит presence и, если jid подпадает под правила чёрного списка, то отправит этот
jid в бан.
Но, простите, ведь "по правилам", при заходе клиента в комнату ему присылается presence всех участников, чтобы он мог
Но, простите, ведь "по правилам", при заходе клиента в комнату боту присылается presence всех участников, чтобы он мог
построить локальный ростер комнаты и начать отслеживать изменения состояния участников конференции. Почему бы в этот
момент не банить злодеев?
@@ -66,7 +76,7 @@ presence-ов тех, кто находится в комнате на моме
## Как работает белый список?
Белый список - это список jid-ов, которых банить нельзя ни при каких обстоятельствах. В нём всегда неявно присутсвует
Белый список - это список jid-ов, которых банить нельзя ни при каких обстоятельствах. В нём всегда неявно присутствует
сам бот.
### Можно ли почистить ban-list?