Итоги года на Discourse

:discourse2: Краткое описание Плагин Discourse Yearly Review создает тему 1 января, в которой подводится итог активности форума за предыдущий год. (Смотрите наши примеры здесь на Meta - year-in-review)
:hammer_and_wrench: Ссылка на репозиторий https://github.com/discourse/discourse-yearly-review
:open_book: Руководство по установке Как установить плагины в Discourse

Первоначальная настройка

Перейдите на страницу /admin/plugins и нажмите кнопку настроек :gear: для плагина discourse-yearly-review:

Настройки годового обзора

  1. В настройке yearly review categories укажите категории, из которых нужно извлекать данные. Если оставить поле пустым, по умолчанию будут выбраны 5 лучших публичных категорий.

  2. В настройке yearly review publish category выберите целевую категорию для публикации обзора.

    :bulb: Настоятельно рекомендуется установить yearly review publish category в категорию для сотрудников или другую приватную категорию, чтобы вы могли просмотреть тему перед ее публикацией. Возможно, вы захотите сначала отредактировать её.

  3. Затем включите плагин с помощью настройки yearly review enabled.

Возможности

Как видно на 2022: The Year in Review, данные отображаются в двух разделах — пользователи и темы.

Раздел пользователей включает:

  • Больше всего времени чтения
  • Больше всего созданных тем
  • Больше всего созданных ответов
  • Больше всего ответов на темы
  • Больше всего отданных лайков
  • Больше всего полученных лайков
  • Больше всего посещений
  • Пользователи, получившие специальную значок (значок задается в настройке сайта yearly review featured badge)

Раздел тем включает:

  • Самые читаемые
  • Самые лайкнутые
  • Самые обсуждаемые
  • Самые популярные
  • Самые закладочные

Генерация годового обзора

Плагин устанавливает пороги для определения, какие темы отображать. Для отображения темы необходимо минимум 10 лайков или ответов, 5 закладок, счет 10 или один час времени чтения. Тема публикуется автоматически через фоновую задачу. Задача проверяет, включен ли плагин и находится ли текущая дата в первые 31 день первого месяца года. Затем она проверяет, была ли уже опубликована тема с заголовком yearly_review.topic_title системным пользователем. Если все проверки пройдены, тема публикуется в категорию, указанную в настройке yearly review publish category. Если эта настройка не конфигурирована, тема будет опубликована в категорию «Без категории».

Дополнительные опции

Категории годового обзора

Категории, используемые в этом разделе, задаются в настройке сайта yearly review categories. Если эта настройка не конфигурирована, будут выбраны 5 лучших публичных категорий форума. «Лучшие» определяются по количеству тем topics_year в категории.

Подкатегории любых категорий, указанных в настройке сайта yearly review categories, не будут включены в отчет годового обзора. Если вы хотите включить подкатегории в отчет, вам нужно явно указать их в настройке сайта yearly review categories.

Исключение сотрудников из годового обзора

Плагин имеет настройку yearly review exclude staff. Она включена по умолчанию, чтобы сотрудники были исключены из раздела пользователей, а темы, созданные сотрудниками, — из раздела тем.

Специальный значок годового обзора

Специальный значок можно задать через настройку yearly review featured badge. Отображается максимум 15 пользователей с этим значком. Если более 15 пользователей получили этот значок, отображается ссылка на страницу значка. Если настройка yearly review featured badge не конфигурирована, этот раздел не будет отображаться.

Запуск годового обзора вручную

Если вы не хотите ждать фоновой задачи, вы можете опубликовать тему из консоли Rails с помощью команды:

Jobs::YearlyReview.new.execute(force: true)

Если вы хотите сгенерировать отчет за конкретный год, просто добавьте review_year: 'год', например:

Jobs::YearlyReview.new.execute(force: true, review_year: '2021')

:discourse2: Хостинг у нас? Если вы хотите запустить годовой обзор вручную, свяжитесь с нами по адресу team@discourse.org, и мы с радостью организуем это для вас.

Настройки

Имя Описание
yearly review enabled Включить годовой обзор.
yearly review categories Публичные категории, из которых извлекать темы. Будут выбраны 5 лучших категорий из этой группы. Если оставить пустым, по умолчанию будут выбраны 5 лучших публичных категорий.
yearly review exclude staff Исключить сотрудников из статистики пользователей.
yearly review include user stats Добавить идентифицирующие пользователя статистические данные в первый пост темы обзора.
yearly review include private categories Включить активность пользователей из приватных или ограниченных для чтения категорий в обзор.
yearly review publish category Категория, в которой будет опубликован обзор.
yearly review featured badge Введите полное имя значка. Можно оставить пустым.

:discourse2: Хостинг у нас? Этот плагин доступен во всех наших тарифах хостинга Yearly Review | Discourse - Civilized Discussion


Известные проблемы

  • Данные отображаются в виде HTML-таблиц. Таблицы обернуты в теги div с атрибутами data-review-topic-users="true" и data-review-featured-topics="true". Это позволяет стилизовать таблицы при их отображении в Discourse. Стили не копируются при создании писем для тем. Письма, отправленные по теме, выглядят не очень хорошо.

  • Первый пост в сгенерированной теме содержит ≈ 40 000 символов из-за использования HTML. В результате его нельзя редактировать, если вы сначала не увеличите лимит символов тела выше этого значения (см. Body is limited to 32000 characters; you entered 43659)

  • Эмодзи в заголовках не отображаются в ссылках на рекомендуемые темы

90 лайков

Несколько приятных улучшений, которые можно было бы внести в этот плагин. Надеюсь, я размещаю это в правильном месте? Дайте знать, если нет.

  • Возможность исключать сотрудников из списка пользователей, но при этом включать созданные ими темы
  • Возможность исключать TL4 из списка пользователей (и, как и выше, включать созданные ими темы)
  • Возможность создавать несколько постов с отзывами, чтобы можно было иметь один для TL4 (мы используем это для сотрудников) и сотрудников, а затем — пост только для участников сообщества
5 лайков

Привет!
Я установил этот плагин в этом году, но, несмотря на то что он включён, я не знаю, когда будет опубликован отзыв, или нужно ли мне что-то ещё сделать для его публикации.

Не могли бы вы подсказать?
Большое спасибо!!

2 лайка

Приветствую, @Ayelen_Rives,

При просмотре административной консоли вы увидите следующее визуальное руководство:

Дальнейшее изучение плагина под названием ‘plugin:discourse-yearly-review’ показывает ещё один наглядный пример:

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

6 лайков

Огромное спасибо, Аарон!

Неожиданно я не вижу этих сообщений в административной консоли, ни в настройках:

Категория публикации — Staff, поэтому я узнаю, создана ли она, 1 января.

Ещё раз спасибо и счастливых праздников!

2 лайка

С Новым годом! :partying_face:

Плагин не сработал здесь в двух форумах. А теперь показывает сообщение для 1 января 2025 года. Странно.

Я запустил его вручную в консоли Rails на одном из форумов, и он вернулся на английском, а не на немецком, который является языком этого форума.

Здесь что-то не так или было не так.

2 лайка

Ещё не пришло и сюда в Meta. Я последовал совету и настроил публикацию сначала в #staff, что, думаю, является единственным отличием от прошлого года?

Я надеялся, что оно само появится с небольшой долей терпения, но, возможно, я слишком оптимистичен.

2 лайка

Я ничего не менял в конфигурации, даже не проверял форум сначала как сотрудник, а затем не перемещал его.

На моём втором форуме всё ещё ничего нет. А у меня уже 11:24.

Кажется, что что-то сломалось.

Нужен ли языковой флаг при ручном запуске? Я не хочу переводить всё во втором форуме тоже. :wink:

1 лайк

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

Возможно, нам потребуется помощь более опытного специалиста.

3 лайка

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

1 лайк

Сегодня утром Sidekiq сообщил мне, что ежегодный обзор будет запланирован через 50 минут, и на данный момент это будет около 11:00 по местному времени. Я не стал ждать, а сделал это вручную. Проблем не возникло, и язык тоже был правильным.

После этого мне пришлось понизить уровень моих модераторов и снова запустить Sidekiq, потому что они были очень недовольны — я исключил их из состава сотрудников. Я не мог оставить их сотрудниками, так как тогда я, как очень активный администратор, полностью доминировал бы в списках, поэтому выбрал самый быстрый путь.

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

2 лайка

Чёрт возьми… На другом форуме тема за 2023 год уже есть… 14:31 по местному времени. И на немецком. Так что всё ещё загадка…

1 лайк

В итоге я запустил наш из Sidekiq. :rocket:

2 лайка

На моих сайтах тема создавалась автоматически, без необходимости запускать её вручную через Sidekiq.

Отличные предложения. Спасибо! Интересно узнать о новых сценариях использования этого плагина. Мы более внимательно рассмотрим этот вопрос в ближайшее время, опираясь на опыт этого года, чтобы понять, что мы можем улучшить до следующего года!

Тем временем в этом цикле вы можете отредактировать пост после его публикации так, как считаете нужным.

Одно интересное поведение, которое я заметил: если вы удалите сгенерированную тему, на следующий день будет создана новая, при условии, что плагин включён. Таким образом, вы можете поэкспериментировать с настройками, сгенерировать несколько версий темы годового обзора, скопировать текст из них, а затем самостоятельно опубликовать новые темы, как вам удобно. Если у вас есть доступ к /sidekiq, вы можете найти там задачу и запустить её немедленно.

2 лайка

Именно поэтому совет сначала опубликовать отзыв в более приватной категории, например, «Сотрудники», а затем переместить её в публичную, на самом деле не такой уж и хороший :wink: Если только администратор не хочет сохранить две версии.

Впрочем, это не большая проблема.

1 лайк

Привет! К счастью, плагин сработал 1 января без каких-либо проблем! :raised_hands:

Теперь у меня есть несколько вопросов о том, как он работает, поскольку некоторые отчёты (например, «Самые популярные темы» и «Больше всего полученных лайков») показывают иные результаты, чем страница «Пользователи» за тот же период.

Например, в разделе Самые популярные темы на странице «Пользователи» первым указан пользователь «S»:

А в годовом обзоре первым указан пользователь «C», и пользователь «S» вообще не отображается в таблице:

(Извините, мне пришлось размыть изображения из-за коммерческой тайны, но, думаю, так будет понятнее. Также таблица сломана, её можно игнорировать :upside_down_face:)

Не знает ли кто-нибудь, почему это может происходить? Остальные отчёты показывают абсолютно одинаковую информацию, а вот «Самые популярные темы» и «Больше всего полученных лайков» указывают разных пользователей.

Огромное спасибо за вашу помощь! :100:

1 лайк

Ого, я не знал, что происходит именно так. Я только что протестировал это, и вы правы! Это баг. Не должно создаваться второй темы ежегодного обзора, если она уже существует.

Шаги для воспроизведения:

  1. После создания темы ежегодного обзора переместите её в другую категорию.
  2. Запустите создание темы ежегодного обзора через /sidekiq.
  3. Будет создана вторая тема ежегодного обзора.

Если вы столкнулись с этой проблемой, рекомендую отключить плагин. Мы скоро займемся этим плагином, чтобы исправить баги и улучшить его до следующего года.

1 лайк

:thinking: насколько это устойчиво? Если я буду постоянно удалять её, будем ли мы всё ещё танцевать этот танец в июне? :joy:

И означает ли это, что мне не нужно обращаться в поддержку, чтобы ретроспективно создать пост для моего сайта? Он просто появится завтра в какое-то время?

1 лайк

Действительно. Это работает через Sidekiq каждый день.

1 лайк

Надеюсь, это прекратится в конце января.

2 лайка