# modbot.py Питоновый бот для помощи с модерацией [Peertube Livechat](https://github.com/JohnXLivingston/peertube-plugin-livechat) ## А что может? - Мьютить(mute) юзера - Анмьютить юзера - Таймаутить юзера (мьют, который снимется сам через заданное время) - Отслеживать, чтобы юзер не обходил мьют сменой ника (да, по дефолту может) - Удалять все сообщения юзера - Банить юзера (сразу вместе с удалением сообщений) - Несколько режимов работы чата - Анмьютнуть всех - Мьютить свежеприбывших неавторизованных юзеров - Замьютить ВСЕХ неавторизованных юзеров - Замьютить вообще всех, кроме модераторов - Рейтлимиты (юзер, отправивший больше Х сообщений за Y секунд будет таймаутнут на Z секунд) - Списки запрещенных слов в сообщениях и никах. ## Требования - Python 3 - Requests (python3 -m pip install requests) Если вы на винде и у вас лапки, то питон [можно достать тут](https://www.python.org/downloads/), бота архивом [скачать здесь](https://inex.dev/lnkr/modbot.py/archive/master.zip), а в папке с ботом есть файл [start_modbot.bat](./start_modbot.bat), по даблклику на который установятся остальные зависимости и запустится бот. ## Настройка Отредактируйте [settings.py](./settings.py) (как текстовый файл). - **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 и не ник пользователя, это выданный ему ботом числовой порядковый номер. Подробнее - дальше. `!help` - вывод короткой справки по командам. `!users` - вывести список пользователей Список пользователей выводится в следующем формате: **USERID**) [**name**] (**jid**, **role**, **affiliation**) Например: `13) [lnkr] (lnkr@xxivproduction.video, moderator, owner)` Здесь: - USERID: 13 - Ник: lnkr - jid: lnkr@xxivproduction.video - роль: moderator - принадлежность: owner