Skip to content

Достижения ​

Достижения — награды пользователей за активность на платформе.

Обзор ​

Достижения выдаются автоматически по правилам — за стаж, публикации, комментарии, реакции, места в месячных топах, серии активных дней и оплату подписки — или вручную администратором. Повторяемое достижение пользователь получает несколько раз, и у него растёт число получений.

Все активные достижения платформы собраны на странице /collectibles, полученные пользователем — на странице /{slug}/collectibles. О каждом получении пользователь узнаёт из уведомления.

Достижения получают только пользователи: темы и удалённые аккаунты их не получают. Администраторы платформы управляют достижениями в Админ-панель → Контент → Достижения.

Параметры ​

У достижения есть поля:

  • Активна: неактивное достижение не выдаётся и не показывается в коллекциях
  • Название: обязательно, до 255 символов
  • Условие получения: текст в общей коллекции /collectibles, до 1000 символов
  • Описание после получения: текст в коллекции пользователя, до 1000 символов; если не заполнено, выводится условие получения
  • Иконка: обязательна, изображение до 2 МБ
  • Правило выдачи и порог: необязательно; без правила достижение выдаётся только вручную, порог — целое число от 1
  • Можно получать повторно: достижение становится повторяемым
  • Порядок отображения: порядок в общей коллекции, меньшее значение выводится выше

Если снять флаг «Можно получать повторно», у всех владельцев число получений сбрасывается до одного. Удалённое достижение пропадает у всех владельцев.

Правила выдачи ​

Правило задаёт показатель, который сравнивается с порогом:

  • Стаж на сайте, лет: полные годы с регистрации
  • Место в топе авторов месяца, не ниже: итоговое место в топе авторов любого завершённого месяца
  • Место в топе комментаторов месяца, не ниже: итоговое место в топе комментаторов любого завершённого месяца
  • Опубликованных постов: опубликованные и не заблокированные посты
  • Написанных комментариев: комментарии, кроме удалённых и заблокированных
  • Полученных реакций: реакции на опубликованные посты и на комментарии пользователя, кроме заблокированных и удалённых
  • Дней активности подряд: дни подряд, в каждый из которых пользователь опубликовал пост, написал комментарий или поставил реакцию
  • Оплаченных месяцев подписки: успешные платежи за подписку; месячный тариф даёт 1 месяц, годовой — 12

Для топов порог — худшее подходящее место: при пороге 10 подходят места с 1 по 10. Автоматически выданное достижение не отзывается, даже если показатель потом уменьшился.

Месячные топы ​

1-го числа каждого месяца платформа сохраняет итоговые места прошлого месяца:

  • Топ авторов: 50 авторов с наибольшим положительным рейтингом за месяц; забаненные авторы и места, скрытые в Админ-панель → Пользователи → Топ, пропускаются
  • Топ комментаторов: 50 пользователей с наибольшей положительной суммой реакций, поставленных за месяц на их комментарии; удалённые и заблокированные комментарии не учитываются

Места за более ранние месяцы сохраняются вручную командой rating:save-monthly-places — по одному месяцу за запуск, см. Консольные команды.

Проверка правил ​

Достижения за дни активности подряд выдаются сразу, за посты, комментарии, реакции и подписку — в течение часа, за остальные правила — в течение суток. Новое достижение получают и те, кто выполнил условие до его создания. Достижение за дни активности подряд выдаётся только в тот день, когда серия достигает значения, кратного порогу.

Повторяемые достижения ​

Число получений повторяемого достижения зависит от правила:

  • Стаж, посты, комментарии, реакции, подписка: показатель, делённый на порог, с округлением вниз; при пороге 100 и 250 комментариях — 2 получения
  • Топ авторов и топ комментаторов: число месяцев, в которых место было не ниже порога
  • Дней активности подряд: плюс одно получение каждый раз, когда серия достигает значения, кратного порогу; при пороге 5 — на 5-й, 10-й, 15-й день

О каждом увеличении числа получений пользователь получает уведомление.

Ручная выдача ​

Администратор платформы выдаёт достижение выбранному пользователю в Админ-панель → Контент → Достижения. Вручную выдаются:

  • достижения без правила
  • неповторяемые достижения
  • достижения за дни активности подряд

Повторяемые достижения с остальными правилами выдаются только автоматически. Повторная ручная выдача повторяемого достижения добавляет одно получение. Неповторяемое достижение, которое у пользователя уже есть, выдать повторно нельзя.

Достижения в профиле ​

В профиле выводятся до трёх достижений: сначала закреплённые, затем последние полученные. Владелец закрепляет в своей коллекции не больше трёх достижений.

Пользователь выбирает одно из своих достижений для показа рядом с именем — в постах, комментариях и профиле. Показ можно отключить.

Released under the MIT License.