Запланированные объявления и ночной режим
Введение
Две типичные задачи администратора — регулярно публиковать одно и то же сообщение по расписанию и отключать активность в группе на ночь. Запланированные объявления позволяют боту отправлять сообщение за вас — один раз или с заданной периодичностью, — чтобы вам не приходилось помнить о повторной публикации правил или напоминания. Ночной режим отключает возможность писать в группе на ежедневный промежуток времени и снова открывает её после его окончания, чтобы чат в одном часовом поясе не будил участников разговорами из другого.
Обе функции по умолчанию выключены и ничего не делают, пока администратор их не настроит. Простое включение бота никогда не запускает публикацию объявлений или отключение сообщений в группе само по себе.
Запланированные объявления
Администратор добавляет объявление с помощью команды /announce. Первое слово после команды — это расписание, а всё остальное — текст для публикации. Все команды объявлений доступны только администраторам.
Чтобы запланировать сообщение, укажите периодичность или слово once, а затем текст:
/announce 6h Read the /rules— публиковать это сообщение каждые 6 часов./announce once Welcome, the AMA starts at noon.— опубликовать это сообщение один раз, затем остановиться.
Повторяющиеся расписания задаются как длительности. Поддерживаются минуты, часы, дни и недели, например 30m, 6h, 1d и 2w. Для повторяющихся объявлений действует минимум 5 минут, поэтому расписание с интервалом меньше пяти минут будет отклонено. Разовые объявления (once) не подпадают под это ограничение, потому что срабатывают только один раз.
Ещё две подкоманды управляют существующими объявлениями:
/announce list— показать текущие объявления группы, каждое со своим id./announce del <id>— удалить одно объявление по его id, например/announce del 42. Удаление ограничено вашей группой, поэтому id из другой группы нельзя случайно удалить.
В каждой группе есть ограничение на количество объявлений, которые могут храниться одновременно (20). Если вы достигли лимита, удалите одно объявление перед добавлением нового. После сохранения объявления планировщик публикует его, когда наступает нужное время: повторяющиеся объявления после каждой публикации переносятся на следующий запуск, а разовые отключаются после срабатывания. Если бот не может опубликовать сообщение в группе в момент, когда оно должно выйти (например, бота удалили), расписание всё равно продвигается дальше, чтобы группа не проверялась бесконечно.
Ночной режим
Ночной режим запрещает писать всем участникам на ежедневный промежуток времени и восстанавливает отправку сообщений после его окончания. Он управляется набором настроек на панели группы, главная из них — set_night_mode_enabled, по умолчанию выключенная. Окно задаётся временем начала, временем окончания и смещением UTC, которое сопоставляет эти значения с локальным временем группы.
Настроить ночной режим можно в двух местах:
- На панели управления. Откройте группу в панели администратора и задайте окно в разделе Автомодерация.
- В чате, с помощью доступной только администраторам команды
/nightmode.
Команда /nightmode принимает временное окно и несколько переключателей:
/nightmode 22:00-07:00 +1— запретить участникам писать с 22:00 до 07:00 в группе, локальное время которой на один час опережает UTC. Окно может пересекать полночь, как в этом примере./nightmode on— включить ночной режим с сохранённым окном./nightmode off— выключить ночной режим. Если группа сейчас заглушена ночным режимом, это также снова откроет её./nightmode status— показать текущее окно, смещение и то, заглушена ли группа прямо сейчас.
Время указывается по локальному времени группы, а смещение в конце (например, +1 или -5) — это целочасовое смещение UTC, которое сообщает боту, как локальные часы группы соотносятся с UTC. Планировщик проверяет окно и блокирует или разблокирует группу на границах периода, поэтому переход происходит автоматически каждый день.
Ночной режим не затрагивает администраторов. Ограничение применяется к обычным участникам, поэтому модераторы и администраторы всё ещё могут писать, пока группа находится в тихом режиме. Это значит, что администратор может опубликовать позднее ночное объявление даже во время окна тишины.
Как ночной режим и блокировка при рейде работают вместе
Ночной режим и защита от рейдов работают через блокировку прав на отправку сообщений в группе, поэтому используют один и тот же базовый механизм блокировки и согласуют между собой момент её снятия. Если окно ночного режима заканчивается, пока блокировка из-за рейда всё ещё активна, группа остаётся заблокированной из-за рейда; если блокировка из-за рейда заканчивается, пока окно ночного режима всё ещё активно, группа остаётся заблокированной из-за ночного режима. Группа снова открывается только тогда, когда ни одной из функций больше не нужно держать её закрытой, поэтому одна функция никогда не снимает блокировку, которая всё ещё нужна другой.
Рекомендации
- Используйте повторяющееся объявление для постоянных напоминаний, например правил группы, а
once— для ограниченных по времени уведомлений, например о начале события. - Держите количество объявлений ниже лимита для группы, удаляя устаревшие записи с помощью
/announce listи/announce del <id>. - Внимательно задавайте смещение для ночного режима, чтобы окно совпадало с локальным временем ваших участников; затем проверьте его через
/nightmode status. - Помните, что администраторы всё равно могут писать во время ночного режима, поэтому используйте аккаунт без прав администратора, если хотите убедиться, что ограничение работает.
Итоги
Запланированные объявления и ночной режим автоматизируют две повторяющиеся администраторские задачи. /announce публикует сообщение один раз или с заданной периодичностью, с минимальным интервалом 5 минут для повторяющихся расписаний, лимитом на группу и подкомандами list/del для управления запланированным. Ночной режим запрещает участникам писать в ежедневное окно, заданное по локальному времени через целочасовое смещение UTC, не мешает администраторам публиковать сообщения и согласуется с блокировкой при рейде, чтобы эти две функции не конфликтовали из-за блокировки группы. Обе функции остаются выключенными, пока администратор не включит их.