Норма активности
Команда -норма - недельная норма сообщений, проверка чата и отдельных участников, порог критичности, напоминания и исключения.
Норма активности - это минимум сообщений в неделю, который в чате считается нормальным. Бот никого не наказывает сам: он складывает сообщения каждого участника и показывает, кто отстаёт и насколько. Что делать с этим списком, решает администрация.
Штука это нишевая. Норма нужна там, где за активностью действительно следят и от участников ждут хотя бы пары сообщений в неделю: ролевые чаты, флудилки, небольшие закрытые сообщества со своими правилами участия. В крупном чате на сотни человек она смысла не имеет: люди приходят и уходят, большинство просто читает, и отчёт превратится в бесконечный список отстающих, с которым всё равно никто ничего не сделает.
Пока норма не задана, проверка выключена. Команды раздела при этом работают и отвечают, что считать нечего.
-нормаНорма активности: проверка, настройка, напоминания и исключения
-нормы/norm<параметр> — обязательный[параметр] — необязательныйБез действия бот пришлёт памятку с тем, что умеет команда.

| Действие | Что делает |
|---|---|
| Показывает, кто не добрал норму. Без участника - по всему чату. | |
| <число> | Задаёт недельную норму сообщений. |
| <1-99> | Порог, ниже которого отставание считается критическим. |
| Настраивает напоминание о норме в середине недели. | |
| <@юзер> | Освобождает участника от проверки. |
| <@юзер> | Возвращает участника в проверку. |
Слова действий можно писать по-разному, замены собраны в подсказке рядом с названием. Участника указывают ответом, через @юзер или цифровой ид.
Задать норму
-норма установитьЗадаёт недельную норму сообщений для чата
-норма задать-норма set<параметр> — обязательныйЧисло - это сколько сообщений участник должен написать за неделю. Принимается от 1 до 10 000, ноль и отрицательные значения бот отклонит. Без числа команда покажет текущую норму и подскажет, как её изменить.

Вместо подойдёт любое из привычных слов. Проверка после этого отключается, а список исключений и настройки напоминаний остаются на месте и снова заработают, когда норму зададут заново.
Порог критичности
-норма критичностьГраница между лёгким отставанием и критическим
-норма порог-норма critical[параметр] — необязательныйОтставание от нормы бывает разным: кто-то не добрал пары сообщений, а кто-то не заходил всю неделю. Порог задаётся в процентах от нормы и делит отстающих на две группы. По умолчанию это 67%.
При норме 100 сообщений и пороге 67% критическим считается всё, что меньше 67 сообщений за неделю. От 67 до 99 - это зона риска, 100 и больше - норма выполнена.
Без числа команда покажет текущий порог. Если норма ещё не задана, бот сохранит значение и предупредит, что пока оно ни на что не влияет.
Как считаются сообщения
Неделя идёт с понедельника по воскресенье, счётчик обнуляется с началом новой. В зачёт идёт любое сообщение в этом чате: текст, картинка, стикер, голосовое. Сообщения в других чатах на норму здесь не влияют, счёт у каждого чата свой. Свою активность за неделю каждый участник может посмотреть в профиле.
Проверять норму имеет смысл к концу недели: в понедельник у всех будет по нулям, и отчёт покажет весь чат в нарушителях. Ближе к воскресенью картина уже настоящая.
Проверить чат
-проверитьнормуОтчёт по недельной активности участников
-проверканормы/checknorm-норма проверить[параметр] — необязательныйБез участника команда собирает отчёт по всему чату. Сверху идёт сводка: цель на неделю, критический порог, сколько участников на ресте, сколько исключено из проверки и сколько человек норму выполнили.
[скриншот: отчёт проверки нормы активности с кнопками]
Дальше список отстающих, разбитый на две части: сначала нарушители, у которых меньше критического порога, потом зона риска. В строке видно имя, юзернейм, сколько сообщений написано и сколько не хватает до нормы. Если норму выполнили все, вместо списка придёт короткое поздравление.
Со второй недели работы в сводке появляется сравнение с прошлой неделей: сколько отстающих было и сколько стало. Данные для сравнения бот снимает в воскресенье вечером, по времени чата, поэтому первый отчёт идёт без этой строки.
Проверить одного участника
<параметр> — обязательныйТот же вызов, но с участником, вернёт короткую карточку: цель на неделю, сколько написано и сколько процентов от нормы это составляет, сколько сообщений не хватает и итоговый статус.

Статусов пять: норма выполнена, не хватает столько-то сообщений, критически мало сообщений, на ресте или исключён из проверки. Последние два означают, что человек в отчёт по чату не попадает вообще.
Статистика по чату
-статистиканормыСводные цифры по недельной активности чата
/normstatsОтчёт показывает отстающих поимённо, а статистика - общую картину чата: текущая норма и порог критичности, медиана сообщений за неделю, сколько человек норму не выполнили и сколько сообщений им в среднем не хватает. В конце топ-5 самых активных за неделю.

Медиана здесь полезнее среднего: она показывает, сколько пишет обычный участник, и по ней удобно подбирать норму, чтобы половина чата не оказалась в нарушителях. Если хочется посмотреть активность подробнее, есть -топ.
Напоминания
-норма напоминаниеНапоминание о норме в середине недели
-норма напоминания-норма reminder[параметр] — необязательныйРаз в неделю бот сам присылает сводку по норме, чтобы отстающие успели дописать до воскресенья. Приходит она в служебный чат администрации, а не в общий чат, поэтому напоминания работают только когда админ-чат подключён в настройках.
| Действие | Что делает |
|---|---|
| Включает напоминания. | |
| Выключает их. | |
| <1-7 или название> | День недели для рассылки. |
| <время> | Время рассылки по часовому поясу чата. |
По умолчанию напоминания выключены, а рассылка настроена на четверг, 12:00. День указывают числом от 1 до 7, где 1 это понедельник, либо названием: пн, понедельник, четверг. Время понимает форматы 14, 14:30, 9am и 2:30pm. Без действия команда покажет текущие настройки и статус.
Часовой пояс берётся из настроек чата, сменить его можно командой -часовой пояс. Приходит напоминание один раз в неделю и не раньше указанного времени: если бот в этот момент был недоступен, сводка придёт позже в тот же день.
Исключения из проверки
-норма исключитьОсвобождает участника от проверки нормы
-норма исключение-норма exclude<параметр> — обязательный<параметр> — обязательныйИсключение снимает с участника норму навсегда, без срока: он не появится в отчёте, даже если не напишет ни слова. Так удобно отмечать тех, от кого активности не ждут, например технические аккаунты или почётных участников чата.

Если участник уже в списке или его там нет, бот просто скажет об этом. Отдельной команды посмотреть список нет, но количество исключённых видно в сводке отчёта.
Это не список допуска: исключение из нормы никак не влияет на вход в чат и на модерацию. Если человек уходит на время, лучше оформить ему рест, а не исключение.
Кто не попадает в проверку
Из отчёта выпадают боты и те, кто уже вышел из чата. Кроме них проверку не проходят участники в активном ресте и все, кого внесли в исключения: и те, и другие не считаются ни в нарушителях, ни в выполнивших норму.
Администраторы и модераторы от нормы не освобождены. Если проверять их не нужно, добавьте их в исключения.