Ресты участников
Команда -рест - выдать, продлить, сократить или снять рест, разобрать заявки участников и правила реста в чате.
Рест это официальная отметка «участник отдыхает». Пока она стоит, человек не попадает в проверку нормы, ИИ-компаньон не пишет ему первым, а в инфо-канале он числится в списке отдыхающих. Как рест выглядит с его стороны, описано в разделе для участников.
Чаще всего рест начинается с заявки: участник просит его командой -мрест, вы одобряете кнопкой. Но выдать, поправить или снять рест можно и вручную, одной командой с указанием действия.
-рестРесты участников: выдача, продление, сокращение, снятие и просмотр
-ресты/rest/rests<параметр> — обязательный[параметр] — необязательныйБез действия бот покажет, кто сейчас в ресте, и подскажет список действий. Участник без права смотреть чужие профили увидит по этой команде свой собственный рест, а не список чата.
[скриншот: список активных рестов с блоком доступных действий]
| Действие | Что делает |
|---|---|
| <период> | Оформляет участнику рест на указанный период. |
| <период> | Отодвигает конец активного реста или задаёт новый период. |
| <период> | Придвигает конец активного реста ближе. |
| Закрывает рест досрочно. | |
| Показывает рест одного участника или список всех активных. |
Свой рест этой командой не трогают: на попытку выдать рест самому себе бот ответит подсказкой про -мрест. Зато личные подкоманды после -рест работают как обычно, так что -рест запрос 7д, -рест история и -рест завершить ведут к вашему собственному ресту.
Участника в любом действии можно указать ответом на его сообщение, юзернеймом или цифровым ид, как и в остальных командах бота.
Выдать рест
-рест датьОформляет участнику рест на указанный период
-рест добавить-рест выдать-рест give<параметр> — обязательный[параметр] — необязательный<параметр> — обязательный[параметр] — необязательныйСлово дать можно опустить, -рест @юзер 7д бот поймёт так же.

Период пишется либо сроком, либо диапазоном дат. Срок вроде 7д, 2н, 1мес, 1д12ч отсчитывается от момента команды. Диапазон 13.04-20.04 занимает целые дни, с начала первого до конца последнего, и его можно писать через новый год: 25.12-10.01 бот разложит правильно. Дни он считает по часовому поясу чата из настроек.
Пробел внутри срока ставить нельзя, иначе вторая половина уедет в причину: пишите 1д12ч, а не 1д 12ч.
Причина необязательная и пишется со второй строки. Она видна в карточке реста и в записи, которая уходит в админ-чат.
Подтверждение бот присылает ответом в чат, отдельного уведомления участнику не уходит.
Не получится выдать рест себе, боту, тому, кого нет в чате, и участнику с равной или более высокой ролью. Если рест у человека уже есть, бот не перепишет его, а покажет текущий период и напомнит про продление.
Продлить рест
-рест продлитьОтодвигает конец активного реста
-рест продление-рест extend<параметр> — обязательныйСрок прибавляется к концу реста: 3д у реста до 20.04 дадут 23.04. Диапазон дат работает иначе, он заменяет период целиком, вместе с датой начала. В ответе бот покажет, что было, что стало и на сколько сдвинулся конец.
Продлить можно только активный рест. Если срок уже вышел, бот закроет запись и скажет, что активного реста нет. Итоговая длительность так же не может выйти за максимум чата.
Сократить рест
-рест сократитьПридвигает конец активного реста ближе
-рест уменьшить-рест shorten<параметр> — обязательныйЗдесь срок вычитается из конца: 3д у реста до 20.04 оставят 17.04. Диапазон дат снова заменяет период целиком. Сократить рест так, чтобы он закончился раньше своего начала, бот не даст, для этого есть снятие.
Снять рест
-рест снятьЗакрывает рест досрочно
-рест убрать-рест удалить-рест remove<параметр> — обязательныйРест закрывается сразу, ждать конца срока не нужно. В ответе останется период, который был, и сколько времени не догорело.
Продление, сокращение и снятие не требуют, чтобы человек всё ещё был в чате: старый рест можно поправить и после его ухода. Правда, если бот заметил уход, рест закрывается сам.
Посмотреть, кто в ресте
-рест статусРест одного участника или список всех активных
-рест список-рест status-рест list[параметр] — необязательныйС участником бот покажет одну карточку, без него список всех активных рестов чата. В карточке есть имя и роль участника, период, сколько времени осталось, причина и тот, кто рест выдал.

Заявки участников
Когда участник просит рест сам, заявка приходит в админ-чат карточкой с периодом, причиной и двумя кнопками, подтвердить или отклонить. Если админ-чат к группе не подключён, карточка останется в самом чате.
Кнопки слушают право на управление рестами, и проверяется оно в основном чате, а не в админ-чате. Свою заявку не одобрить даже с правами.
При подтверждении бот ещё раз сверяет заявку с реальностью. Заявка с уже прошедшей датой начала и заявка от человека, у которого рест успел появиться, отклоняются автоматически, с пометкой прямо на карточке. Срок больше максимума бот просто не пропустит: покажет предупреждение, а заявка останется висеть. После одобрения участник получает сообщение в чате, а на карточке остаётся, кто и когда её решил.
[скриншот: карточка заявки на рест с кнопками]
Заявки на продление приходят отдельной карточкой с кнопкой «Продлить рест». Авто-принятие на них не действует, продление всегда смотрит модерация. Такая заявка тоже отклонится сама, если реста уже нет или он истёк.
Правила реста в чате
Условия у каждого чата свои, задаются они в настройках: ⚙️ /настройки → 🧩 Модули → 🌴 Ресты.
| Настройка | Что делает | По умолчанию |
|---|---|---|
| Максимальный срок | Предел длительности реста. Заявку длиннее бот не примет, и выдать такой рест вручную тоже не выйдет. | 30 дней |
| Срок с обязательной причиной | С какой длительности участник обязан объяснить, зачем ему рест. Такая заявка помечается для модерации отдельной строкой. Ноль отключает проверку. | 14 дней |
| Запретный день | День недели, с которого рест начать нельзя. Пригодится, когда в чате есть день чистки или обязательной активности. | выключен |
| Авто-принятие | Заявки уходят в ресты сразу, без модерации. Лимиты при этом всё равно проверяются. | выключено |
Обязательная причина касается только заявок участников: рест, выданный вручную, бот примет и без неё. А вот максимальный срок и запретный день он проверит и у вас.
Эти же правила бот пишет в блок правил реста в инфо-канале, так что участникам не приходится ничего спрашивать: там уже сказано, на сколько можно уйти и кто решает по заявкам.
Что бот делает сам
Ресты снимаются по расписанию. Когда срок вышел, бот закрывает запись, пишет участнику в чат, что рест закончился, отправляет строчку в админ-чат и обновляет список в инфо-канале. Снимать вручную ничего не нужно.
Ваши действия тоже уходят в админ-чат: выдача, продление, сокращение и снятие, каждое с участником, периодом, причиной и тем, кто это сделал.
Если несколько чатов привязаны к одному инфо-каналу, список рестов у них общий, и рест, выданный в одном, будет виден в другом.