Skip to content

Latest commit

 

History

History
85 lines (73 loc) · 6.24 KB

File metadata and controls

85 lines (73 loc) · 6.24 KB

Описание работы телеграм бота

Бот быстро и тихо позволяет банить спамеров.

Бот помогает модерировать сообщения и быстро банить спамеров в группах. Участники группы сами уведомляют администраторов о спам сообщении с помощью команды /spam. Команду следует отправить в ответ на спам сообщение.

Всем администраторам приходит копия сообщения с возможностью указания правильно ли участник указал на спам-сообщение. Если это действительно спам-сообщение, то рейтинг участника повышается. Бот может отправить уведомление о том, что админам нужно принять решение спамер ли это или уведомить админов, что спамер забанен с возможность отката или даже молча забанить, если вероятность бана достаточно высока на основе некоторых факторов. Также бот может превентивно банить спамеров. В случае неверного определения спам сообщения рейтинг участника понижается.

Для того, чтобы бот получил список администраторов в группе или в случае удаления или добавления нового, следует любому из действующих администраторов отправить команду /update Благодаря тому, что эти команды мгновенно удаляются самим ботом в группе - репорты и обновления происходит незаметно для пользователей

Как подключить бота @Moderator_Helper_Robot к группе

(или ваш собственный экземпляр бота)

  1. Добавьте бота в вашу группу.
  2. Дайте права администратора (с возможностью бана и добавления участников).
  3. Выполните команду /update (или /update@Moderator_Helper_Robot, если в группе есть другие боты с похожими командами).
  4. Готово! Бот начнёт работу. Администраторам нужно открыть чат с ботом, чтобы получать уведомления.

Установка .deb пакета (собственный экземпляр сервиса)

Если вы хотите использовать не публичного бота, а собственный экземпляр, установите Debian-пакет и запустите демон как системный сервис.

  1. Установите зависимости:
    sudo apt-get update
    sudo apt-get install -y mariadb-server jq openssl
  2. Установите пакет tgadmin:
    sudo dpkg -i ./tgadmin_<version>_amd64.deb
  3. Отредактируйте конфигурацию и укажите Telegram-данные:
    sudoedit /etc/tgadmin/tgadmin.json
    Заполните как минимум:
    • AdminHelperBot.Telegram.Token
    • AdminHelperBot.Telegram.UserName
    • ServiceAdmin (Telegram user id владельца/админа сервиса)
  4. (Необязательно) Запуск от другого Linux-пользователя:
    sudoedit /etc/default/tgadmin
    Поддерживаемые переменные:
    • TGADMIN_SERVICE_USER
    • TGADMIN_SERVICE_GROUP
  5. Включите и запустите сервис:
    sudo systemctl daemon-reload
    sudo systemctl enable --now tgadmin
    sudo systemctl status tgadmin --no-pager
  6. Если БД не инициализировалась во время установки, выполните:
    sudo dpkg-reconfigure tgadmin

Полезные пути:

  • Юнит сервиса: /lib/systemd/system/tgadmin.service
  • Основная конфигурация: /etc/tgadmin/tgadmin.json
  • Переопределение пользователя/группы сервиса: /etc/default/tgadmin
  • Каталог данных: /var/lib/tgadmin
  • Каталог логов: /var/log/tgadmin

Архитектура

Бот реализует свою работу на веб-сервер в режиме вебхука

Автоматический классификатор спама

В бот добавлен классификатор спама (в настройках можно выключить), который может обучаться и использоваться для автоматических уведомлений администраторов (и при высокой вероятности автоматического бана спамеров) о подозрительных сообщениях. Используется алгоритм Наивного Байесовского классификатора. Помимо этого, сообщения, в которых количество эмодзи превышает заданное количество, могут также автоматически помечаться как спам этим фильтром

Зависимости