Скрипт на питоне - безусловно субоптимальное решение проблемы модерации. Хотелось бы развить это до бота, которого можно было бы держать как сервис на сервере, который автоматически заходил бы во все чаты и помогал поддерживать порядок, имел свои persistent-настройки на каждый чат, и, возможно, имел бы веб-интерфейс.
Проблема в том, что при таком масштабе **ГОРАЗДО** более вменяемым решением было бы уже написание своего плагина чата на Peertube, в котором всё было бы *как надо*с самого начала. На что лично у меня пока совершенно нет ни времени, ни сил, ни скилла, ни энтузиазма.
Посему бота не планируется развивать как-то капитально - правка багов, существующих и вызванных апдейтами, какой-то функциональный допил по мелочи, по заказу телезрителей, не более.
Если вы на винде и у вас лапки, то питон [можно достать тут](https://www.python.org/downloads/), бота архивом [скачать здесь](https://inex.dev/lnkr/modbot.py/archive/master.zip), а в папке с ботом есть файл [start_modbot.bat](./modbot/start_modbot.bat), по даблклику на который установятся остальные зависимости и запустится бот.
- **instance** - сюда вписать домен инстанса Peerture. Без https и слэшей.
- **username** и **password** - имя пользователя и пароль от аккаунта на данном инстансе, который послужит ботом.
- **room** - здесь UUID комнаты чата [(Где взять UUID комнаты чата???)](./where_to_get_room_uuid.png).
Вы можете использовать аккаунт, владеющий правами модератора в выбранной комнате. Это значит, что если вы рядовой юзер, вы можете использовать свой аккаунт в качестве бота в комнате собственного стрима, а если вы модератор инстанса Peertube - в любой комнате.
#### Необязательные настройки там же:
- **timeout_default** - на сколько секунд будет затаймаучен юзер, если была введена команда **!timeout** без указания времени.
- **ratelimit_timewindow** - временное окно для измерения рейтлимитов
- **ratelimit_maxmessages** - сколько сообщений может отправить юзер в пределах временного окна
- **ratelimit_timeout** - на сколько секунд будет замьючен юзер, отправивший больше.
Впишите слова, заблокированные в никнеймах, в файле **bannedusernames.txt**, и заблокированные в чате - в файле **bannedwords.txt**. По одному слову на строку. Эти файлы можно изменять в процессе работы бота - обновления подтянутся и применятся автоматически.
## Запуск
```
cd modbot
python3 modbot.py
```
Или даблклик по `start_modbot.bat`, если вы почётный пользователь виндовсов.
Если всё введено правильно, то в чате стрима вы увидите "*[ModBot]: Online!*" - на этом этапе бот успешно подключен к комнате.
Вводить команды можно в чате стрима, если у вас есть права модератора в комнате, а так же в терминале с запущеным ботом. Ответ вернётся туда, где была введена команда.
**Внимание** - USERID в командах - не jid и не ник пользователя, это выданный ему ботом числовой порядковый номер. Подробнее об USERID - в описании команд и вывода в окне терминала.
Глядя на такие логи, можно быстро прикинуть, что одному абоненту можно прописать `!ban 2` за оскорбления (что заодно вычистит его сообщения), а второму - `!timeout 3 30` просто так, чтоб не расслаблялся.