modbot.py/README_RU.md
2022-04-18 04:20:01 +03:00

5.2 KiB
Raw Blame History

modbot.py

Питоновый бот для помощи с модерацией Peertube Livechat

А что может?

  • Мьютить(mute) юзера
  • Анмьютить юзера
  • Таймаутить юзера (мьют, который снимется сам через заданное время)
  • Отслеживать, чтобы юзер не обходил мьют сменой ника (да, по дефолту может)
  • Удалять все сообщения юзера
  • Банить юзера (сразу вместе с удалением сообщений)
  • Несколько режимов работы чата
    • Анмьютнуть всех
    • Мьютить свежеприбывших неавторизованных юзеров
    • Замьютить ВСЕХ неавторизованных юзеров
    • Замьютить вообще всех, кроме модераторов
  • Рейтлимиты (юзер, отправивший больше Х сообщений за Y секунд будет таймаутнут на Z секунд)
  • Списки запрещенных слов в сообщениях и никах.

Требования

  • Python 3
  • Requests (python3 -m pip install requests)

Если вы на винде и у вас лапки, то питон можно достать тут, бота архивом скачать здесь, а в папке с ботом есть файл start_modbot.bat, по даблклику на который установятся остальные зависимости и запустится бот.

Настройка

Отредактируйте settings.py (как текстовый файл).

  • instance - сюда вписать домен инстанса Peerture. Без https и слэшей.
  • username и password - имя пользователя и пароль от аккаунта на данном инстансе, который послужит ботом.
  • room - здесь UUID комнаты чата (Где взять UUID комнаты чата???).

Вы можете использовать аккаунт, владеющий правами модератора в выбранной комнате. Это значит, что если вы рядовой юзер, вы можете использовать свой аккаунт в качестве бота в комнате собственного стрима, а если вы модератор инстанса 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)

Здесь: