Как настроить алгоритм оценки горячих тем с помощью плагина?

Самый простой вариант, но может иметь ограничения в зависимости от ваших целей.

Выполнимо, но сложнее. Изучите как TopicQuery реализует списки

и в частности

  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

Добавить ещё один такой метод относительно несложно, хотя нужно учитывать множество движущихся частей. Я реализовал это в своём плагине ‘homepage-filter’, и это может стать хорошей отправной точкой.