Update README.md
This commit is contained in:
26
README.md
26
README.md
@@ -7,18 +7,24 @@
|
|||||||
|
|
||||||
## Что он может?
|
## Что он может?
|
||||||
|
|
||||||
Имеет возможность соединяться с сервером по протоколу xmpp как с шифрованием, так и без. (Пока что) Шифрование
|
Имеет возможность соединяться с сервером по протоколу xmpp как с шифрованием, так и без. (Пока что) Шифрование
|
||||||
работает по классическим механикам (шифрованный канал связи, без возможности коммуникации в незашифрованном виде),
|
работает по классическим механикам (шифрованный канал связи, без возможности коммуникации в незашифрованном виде),
|
||||||
без поддержки механизма start tls. Что-то в гошке или на стороне сервера при выборе StartTLS не работает.
|
без поддержки механизма start tls. Что-то в гошке или на стороне сервера при выборе StartTLS не работает.
|
||||||
|
|
||||||
Имеет возможность заносить пользователей в бан-лист, согласно заданным в чёрном списке правилам.
|
Имеет возможность заносить пользователей в бан-лист, согласно заданным в чёрном списке правилам: по совпадению с
|
||||||
|
регулярными выражениями в nick-е или jid-е злодея. Правила можно настроимть как глобально, для всех комнат, где
|
||||||
|
присутсвует бот, так и для каждой комнаты отдельно. При изменении списка правил бота надо перезапускать.
|
||||||
|
|
||||||
## Что он не может?
|
## Что он не может?
|
||||||
|
|
||||||
* Не может заходить в комнаты, защищённые паролем.
|
* Не может заходить в комнаты, защищённые паролем.
|
||||||
* Не умеет разгадывать капчу.
|
* Не умеет разгадывать капчу.
|
||||||
|
|
||||||
|
Предполагается, что если на комнату навешен пароль, то такой бот там не нужен, а капча защищает от злодеев на 100%,
|
||||||
|
иначе её навешивать бесполезно.
|
||||||
|
|
||||||
## Как заставить его работать?
|
## Как заставить его работать?
|
||||||
|
|
||||||
Технически, бот собирается гошкой 1.20 под платформу linux. Работоспособность на других платформах не тестировалась.
|
Технически, бот собирается гошкой 1.20 под платформу linux. Работоспособность на других платформах не тестировалась.
|
||||||
|
|
||||||
Чтобы получить готовые бинарники, достаточно выполнить команду:
|
Чтобы получить готовые бинарники, достаточно выполнить команду:
|
||||||
@@ -27,16 +33,20 @@
|
|||||||
make
|
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. В анонимной комнате бот не сможет увидеть реальный jid.
|
||||||
|
А автокик - это конечно хорошо, но есть нюанс: можно, например, гадить ником.
|
||||||
|
|
||||||
## Как работает бан?
|
## Как работает бан?
|
||||||
|
|
||||||
Никакой магии, всё по стандарту, согласно [xep-0045](https://xmpp.org/extensions/xep-0045.html#ban).
|
Никакой магии, всё по стандарту, согласно [xep-0045](https://xmpp.org/extensions/xep-0045.html#ban).
|
||||||
@@ -53,7 +63,7 @@ make
|
|||||||
affiliation сменится на none, бот заметит presence и, если jid подпадает под правила чёрного списка, то отправит этот
|
affiliation сменится на none, бот заметит presence и, если jid подпадает под правила чёрного списка, то отправит этот
|
||||||
jid в бан.
|
jid в бан.
|
||||||
|
|
||||||
Но, простите, ведь "по правилам", при заходе клиента в комнату ему присылается presence всех участников, чтобы он мог
|
Но, простите, ведь "по правилам", при заходе клиента в комнату боту присылается presence всех участников, чтобы он мог
|
||||||
построить локальный ростер комнаты и начать отслеживать изменения состояния участников конференции. Почему бы в этот
|
построить локальный ростер комнаты и начать отслеживать изменения состояния участников конференции. Почему бы в этот
|
||||||
момент не банить злодеев?
|
момент не банить злодеев?
|
||||||
|
|
||||||
@@ -66,7 +76,7 @@ presence-ов тех, кто находится в комнате на моме
|
|||||||
|
|
||||||
## Как работает белый список?
|
## Как работает белый список?
|
||||||
|
|
||||||
Белый список - это список jid-ов, которых банить нельзя ни при каких обстоятельствах. В нём всегда неявно присутсвует
|
Белый список - это список jid-ов, которых банить нельзя ни при каких обстоятельствах. В нём всегда неявно присутствует
|
||||||
сам бот.
|
сам бот.
|
||||||
|
|
||||||
### Можно ли почистить ban-list?
|
### Можно ли почистить ban-list?
|
||||||
|
|||||||
Reference in New Issue
Block a user