Discourse Yearly Review

:discourse2: Summary Discourse Yearly Review creates a topic on January 1st that summarizes the previous year’s forum activity. (See our examples here on Meta - year-in-review)
:hammer_and_wrench: Repository Link https://github.com/discourse/discourse-yearly-review
:open_book: Install Guide How to install plugins in Discourse

Initial Setup

Head to your /admin/plugins page to click the discourse-yearly-review :gear: Settings button:

Yearly Review settings

  1. Enter categories to pull data from into the yearly review categories setting. If left blank, it will default to the top 5 public categories.

  2. Using the yearly review publish category setting, choose a destination category for the review to be posted.

    :bulb: It is highly recommended to set the yearly review publish category to the staff or other private category so that you can view the topic before making it public. You might also like to edit it first.

  3. Then, enable the plugin using the yearly review enabled setting.

Features

As you can see at 2022: The Year in Review, data is displayed in two sections - users and topics.

The users section includes:

  • Most Time Reading
  • Most Topics Created
  • Most Replies Created
  • Most Replied to
  • Most Likes Given
  • Most Likes Received
  • Most Visits
  • Users who have been granted a featured badge (the badge is set by the yearly review featured badge Site Setting

The topics section includes:

  • Most Read
  • Most Liked
  • Most Replied to
  • Most Popular
  • Most Bookmarked

Generating the Yearly Review

The plugin sets thresholds for deciding which topics to display. There need to be a minimum of 10 likes or replies, 5 bookmarks, a score of 10, or one hour’s read time before a topic will be displayed. The topic is published automatically through a background job. The job checks that the plugin is enabled and that it is within the first 31 days of the first month of the year. It then checks to see if a topic with the title yearly_review.topic_title has already been published by the system user. If all checks pass, the topic is published to the category set in the yearly review publish category setting. If this is not configured, the topic will be published to the Uncategorized category.

Extra Options

Yearly review categories

Categories used in this section are those set in the yearly review categories Site Setting. If this setting is not configured, the 5 best public categories from the forum will be chosen. “Best” is determined by the category topics_year count.

Sub-categories of any categories specified in the yearly review categories Site Setting will not be included in the yearly review report. If you want sub-categories to be included in the yearly review report, you will need to explicitly specify them in the yearly review categories Site Setting.

Yearly review exclude staff

The plugin has a yearly review exclude staff setting. It is enabled by default so that staff members are excluded from the users section and topics created by staff are excluded from the topics section.

Yearly review featured badge

A featured badge can be set via the yearly review featured badge setting. A maximum of 15 badge users are displayed. If more than 15 users have been granted this badge, a link to the badge’s page is displayed. If the yearly review featured badge is not configured, this section will not be displayed.

Running the Yearly Review manually

If you don’t want to wait for the background job, you can publish the topic from the rails console with:

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

If you want to generate a report for a specific year just add review_year: 'year', e.g.:

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

:discourse2: Hosted by us? If you would like to run the Yearly Review manually you can contact us at team@discourse.org and we’ll be happy to arrange that for you.

Settings

Name Description
yearly review enabled Enable the yearly review.
yearly review categories Public categories to pull topics from. The top 5 categories from this group will be selected. If left blank will default to the top 5 public categories.
yearly review exclude staff Exclude Staff from user stats.
yearly review include user stats Add user-identifying stats to the first post of the review topic.
yearly review include private categories Include user activity from private or read-restricted categories in the review.
yearly review publish category The category the review will be published in.
yearly review featured badge Enter the full badge name. Can be left blank.

:discourse2: Hosted by us? This plugin is available on all of our hosting tiers Yearly Review | Discourse - Civilized Discussion


Known Issues

  • The data is displayed in HTML tables. Tables are wrapped in div tags that have data-review-topic-users="true' and data-review-featured-topics="true" attributes. This allows the tables to be styled when they are displayed on Discourse. The styles are not copied when emails for the topics are created. Emails sent out for the topic don’t look great.

  • The first post in the generated topic is ≈ 40,000 characters due to using HTML. As a result, it cannot be edited unless you first increase the body character limit above this (see Body is limited to 32000 characters; you entered 43659)

  • emojis in titles are not rendered in the featured topic links

Last edited by @nathank 2025-01-06T21:23:15Z

Check documentPerform check on document:
90개의 좋아요

이 플러그인에 추가할 수 있는 몇 가지 좋은 개선 사항들을 공유합니다. 제가 올바른 곳에 이 내용을 올린 건지 모르겠네요. 그렇지 않다면 알려주세요.

  • 스태프를 사용자 목록에서 제외하되, 그들이 생성한 토픽은 포함하는 기능
  • TL4를 사용자 목록에서 제외하는 기능 (위와 마찬가지로, 그들이 생성한 토픽은 포함)
  • 여러 개의 리뷰 게시물을 생성할 수 있는 기능. 이를 통해 TL4(우리는 직원에게 이 기능을 사용함)와 스태프 멤버를 위한 게시물 하나, 그리고 커뮤니티 멤버 전용 게시물을 따로 둘 수 있습니다.
5개의 좋아요

안녕하세요!
올해 플러그인을 설치했는데, 활성화되어 있음에도 리뷰가 게시되는 시점이 언제인지, 게시를 위해 추가로 해야 할 일이 있는지 모르겠습니다.

알고 계신 분 알려주시면 감사하겠습니다.
감사합니다!!

2개의 좋아요

@Ayelen_Rives 님, 안녕하세요.

관리 콘솔을 확인하면 다음과 같은 시각적 안내가 표시됩니다:

'plugin:discourse-yearly-review’이라는 제목의 플러그인 내부를 더 자세히 살펴보면 또 다른 예시를 볼 수 있습니다:

설정을 구성할 때 연간 리뷰의 게시 카테고리를 스태프용 또는 다른 제한된 카테고리로 지정하는 것이 필수적입니다. 이를 통해 더 넓은 범위의 가시성을 허용하기 전에 예비 검토가 이루어지도록 보장할 수 있습니다.

6개의 좋아요

아론, 정말 감사합니다!

예상치 못게도, 관리 콘솔이나 설정에서 해당 메시지를 찾을 수 없습니다:

게시 카테고리가 'Staff’이므로, 1월 1일에 생성되는지 확인해 보겠습니다.

다시 한번 감사드리며, 즐거운 연말연시를 보내세요!

2개의 좋아요

새해 복 많이 받으세요! :partying_face:

이 플러그인은 여기 두 포럼에서 실행되지 않았습니다. 그리고 지금은 2025년 1월 1일에 대한 메시지가 표시됩니다. 이상하네요.

한 포럼에서 rails 콘솔로 수동으로 실행해 봤더니, 포럼의 언어인 독일어가 아니라 영어로 반환되었습니다.

여기 뭔가 문제가 있거나 있었습니다.

2개의 좋아요

여기 메타에도 아직 도착하지 않았습니다. 조언을 따라 먼저 #staff 채널에 게시하도록 설정했는데, 이게 작년과 다른 유일한 점인 것 같습니다.

조금만 인내하면 마법처럼 나타날 거라고 기대했지만, 아마도 내가 너무 낙관적인 것 같습니다.

2개의 좋아요

설정에서는 아무것도 변경하지 않았습니다. 스태프로서 먼저 확인한 뒤 이동하는 것조차도요.

제 두 번째 포럼에는 여전히 아무것도 없습니다. 그리고 여기서는 지금 오전 11시 24분입니다.

무언가 깨진 것 같습니다.

수동으로 실행할 때 언어 플래그가 필요한가요? 두 번째 포럼에서도 모든 것을 번역하고 싶지는 않습니다. :wink:

1개의 좋아요

백그라운드 작업에 지연이 있는지 확인하기 위해 조금 더 기다려보고 싶은 마음이 들긴 하지만, 수동으로 트리거를 걸면 백그라운드 작업이 자동으로 실행되는 경우와 결과가 왜 달라지는지 나도 잘 모르겠어요.

더 잘 아는 분이 의견을 내주셔야 할 것 같습니다.

3개의 좋아요

마이너가 자동으로 실행되지 않았지만, 수동으로 실행해 보니 정상적으로 작동하는 것 같습니다. 다만 다른 언어로 된 것이 아니길 바랐는데 아쉬웠습니다.

1개의 좋아요

오늘 아침쯤 사이드킥이 연례 리뷰가 50분 후, 즉 현지 시간으로 오전 11시경에 예약될 것이라고 알려주었습니다. 하지만 저는 기다리지 않고 수동으로 처리했습니다. 문제가 없었고 언어 설정도 정확했습니다.

그 후 저는 중등 관리자(miderators)를 강제로 다운그레이드하고 사이드킥을 다시 실행해야 했습니다. 그들은 정말로 화가 났거든요 — 제가 스태프에서 제외되었기 때문입니다. 스태프를 허용할 수 없었습니다. 제가 매우 활동적인 관리자이기 때문에 그렇게 하면 목록을 완전히 장악하게 될 테니까요. 그래서 가장 빠른 방법을 선택했습니다.

글쎄요, 그것은 별개의 이야기이지만, 그룹을 포함하거나 제외할 때 좀 더 자유로운 권한을 가질 수는 없을까요?

2개의 좋아요

아니, 진짜… 다른 포럼에 2023년 스레드가 있네… 현지 시간 오후 2시 31분. 그리고 독일어로 되어 있네. 그래서, 여전히 미스터리한 상황이야…

1개의 좋아요

결국 저는 Sidekiq에서 ours를 트리거했습니다. :rocket:

2개의 좋아요

제 사이트에서는 sidekiq에서 수동으로 실행하지 않아도 해당 토픽이 자동으로 생성되었습니다.

훌륭한 제안들입니다. 감사합니다! 이 플러그인에 대한 더 많은 사용 사례를 들을 수 있어 흥미롭습니다. 올해의 경험을 바탕으로, 내년 전에 이를 개선할 수 있는 방법을 살펴보기 위해 곧 더 자세히 검토할 예정입니다.

그동안, 이번 라운드에서는 게시된 후 포스트를 원하는 대로 수정할 수 있습니다.

흥미로운 동작 중 하나는 생성된 토픽을 삭제하면 플러그인이 활성화된 상태라면 다음 날 새로운 토픽이 생성된다는 것입니다. 따라서 설정을 조정하여 연간 리뷰 토픽의 여러 버전을 생성하고, 그 내용을 복사한 후 원하는 대로 직접 새 토픽을 게시할 수 있습니다. /sidekiq에 액세스 권한이 있다면 해당 작업을 찾아 즉시 실행할 수도 있습니다.

2개의 좋아요

그래서 리뷰를 먼저 더 비공개 카테고리, 예를 들어 Staff(관리자)에 게시한 후 공개 카테고리로 옮기라는 조언은 사실 좋은 조언이 아니에요. :wink: 관리자가 두 가지 버전을 유지하기를 원하지 않는 한요.

그래도 큰 문제는 아닙니다.

1개의 좋아요

안녕하세요! 다행히 플러그인이 1월 1일에 아무 문제 없이 자동으로 실행되었습니다! :raised_hands:

동일한 기간에 대해 일부 보고서(예: 최다 주제 & 최다 좋아요)가 사용자 페이지와 다른 결과를 표시하고 있어서, 어떻게 작동하는지에 대해 몇 가지 질문이 있습니다.

예를 들어, 최다 주제의 경우 사용자 페이지에서는 “S” 사용자가 첫 번째로 표시됩니다:

하지만 연간 리뷰에서는 “C” 사용자가 첫 번째로 표시되고, 표에 “S” 사용자가 전혀 표시되지 않습니다:

(회사 기밀 유지 차원에서 이미지를 흐리게 처리해야 해서 죄송합니다. 하지만 이미지를 추가하는 것이 더 명확할 것 같아서 첨부합니다. 또한 표가 깨져 보이지만 무시해도 됩니다 :upside_down_face:)

이러한 현상이 발생하는 이유를 아시는 분 계신가요? 다른 보고서들은 정확히 동일한 정보를 표시하지만, '최다 주제’와 '최다 좋아요’는 다른 사용자를 표시합니다.

도와주셔서 감사합니다! :100:

1개의 좋아요

와, 그런 일이 일어난다는 걸 몰랐네요. 방금 테스트해봤는데 말씀하신 대로 맞습니다! 이건 버그입니다. 이미 연간 리뷰 토픽이 존재하는 경우 두 번째 연간 리뷰 토픽을 생성해서는 안 됩니다.

재현 방법:

  1. 연간 리뷰 토픽이 생성된 후 다른 카테고리로 이동합니다.
  2. /sidekiq를 통해 연간 리뷰 토픽 생성을 트리거합니다.
  3. 두 번째 연간 리뷰 토픽이 생성됩니다.

이 문제를 겪고 계신다면 플러그인을 비활성화하는 것을 권장합니다. 내년 전에 이 플러그인의 버그를 수정하고 개선하기 위해 곧 작업을 진행할 예정입니다.

1개의 좋아요

:thinking: 얼마나 지속적일까요? 계속 삭제해도 6월에도 여전히 이 춤을 추게 될까요? :joy:

그리고 이건 제 사이트의 게시물을 사후적으로 생성해달라고 지원팀에 연락할 필요가 없다는 뜻인가요? 내일 어딘가에 그냥 나타날까요?

1개의 좋아요

진짜로요. sidekiq를 통해 매일 실행됩니다.

1개의 좋아요

1월 말에는 멈추길 바랍니다.

2개의 좋아요