Come personalizzare l'algoritmo del punteggio hot topic con un plugin?

Il più semplice, ma potrebbe essere limitato a seconda di ciò che si desidera fare.

Fattibile ma più complesso. Dai un’occhiata a come TopicQuery implementa le liste

e in particolare

  def list_hot
    create_list(:hot, unordered: true, prioritize_pinned: true) do |topics|
      topics = remove_muted(topics, user, options)
      topics.joins("JOIN topic_hot_scores on topics.id = topic_hot_scores.topic_id").order(
        "topic_hot_scores.score DESC",
      )
    end
  end

Puoi aggiungerne uno extra con relativa facilità, anche se ci sono parecchie parti in movimento da tenere in considerazione. L’ho fatto nel mio plugin ‘homepage-filter’ e potrebbe essere un buon punto di partenza.