ТЗ для node.js

- Реализовать Telegram бота, используя стек технологий Node.js + Telegraf.js
- Бот должен по командам блокировок модерировать пользователей в чате

Скрипт для функционала - Команды блокировок

1. /mute - дать режим РО (только чтение) пользователю

2. /ban - заблокировать пользователя (с запретом вернутся к чату)

3. /kick - удалить пользователя из чата

4. /warn - предупреждение за нарушение правил чата

5. /unwarn - снять нарушение

6. /unban - разблокировать пользователя

7. /unmute - снять режим РО (только чтение)

Эти команды применяются с помощью функции Telegram “ответить” в тексте на любое сообщение/пост пользователя в чате, а команды unban и unmute можно использовать вместе с username пользователя, если вам сложно/долго искать его/ее посты/сообщения.Для всех этих команд можно использовать как формат со слешем (“/”), так и без него.

Все перечисленные команды удаляются ботом после их выполнения. Кроме того, выводится уведомление о действии, причем уведомление можно Вкл/Выкл и даже изменить на свой текст. Найти и подкорректировать уведомления можно в разделе:

Мои чаты > Модерация > Команды блокировок

❕ Две первые команды имеют параметр time, определяющий время действия блокировки. Если для параметра time не задан период, то действует срок по умолчанию - 180 дней, который можно изменить в меню настроек. Задавать период блокировки можно в днях, часах и минутах.

Примеры использования команд блокировки:

• mute 40d - запрет пользователю писать в чате на 40 дней

• ban 60h - исключение пользователя из чата на 60 часов

• unban либо

• unban username - снятие ограничений с пользователя на участие в чате

Для новой команды /warn по умолчанию настроена опция применения к пользователю команды /mute (режим РО- только чтение) после 3-х предупреждений. Срок действия режима /mute для этого пользователя определяется настройками команды /mute. Также можно изменить опцию /warn и выбрать другой вид блокировки.

Данные команды выполняются ботов в чатах Телеграма.

Описание новых таблиц и структуры меню мы расскажем исполнителю.