내장된 Hot sorting 알고리즘은 매우 단순하며 다양한 사용 사례에 적합하지 않을 수 있습니다. Discourse 코드베이스에 대한 기본적인 이해를 바탕으로, 현재 사용자 지정 Hot sorting 알고리즘을 커스터마이징하기 위한 사용자 대상 사이트 설정이나 적절한 플러그인 인젝션 포인트가 없습니다. topic_hot_scores_updated 이벤트가 하나 있지만, 이는 점수가 업데이트된 후에 호출되며, 내장 Hot 점수를 대체할 수 없는 알림 목적으로만 사용됩니다. hot_topics_gravity와 hot_topics_recent_days라는 두 개의 사이트 설정이 있지만, hidden: true가 설정되어 있어 관리자 UI에서 표시되지 않습니다.
우리는 내장 Hot 점수 알고리즘을 대체하는 플러그인을 작성하는 것을 고려하고 있습니다. 향후 Discourse 업그레이드의 호환성과 용이성 측면에서 어떤 접근 방식이 더 나은가요? 몇 가지 아이디어를 아래에 나열했습니다:
TopicHotScore를 monkey-patch하고 사용자 지정 알고리즘에 따라 DB를 업데이트합니다.- 토픽 Hot 점수를 저장하기 위해 별도의 테이블을 생성하고, 이를 업데이트하기 위해 별도의 백그라운드 작업을 실행합니다. 사용자 지정 Hot 토픽 목록을 위한 별도의 라우트(/hot 대신)를 추가합니다.
- 또는 Discourse 코드베이스를 개선하여 이러한 사용 사례를 지원할 수 있을까요?