Todas las publicaciones que contengan palabras vigiladas se ocultan automáticamente: score_to_hide_post es 0.0

He estudiado el código detenidamente y he descubierto que score_to_hide_post se determina mediante los siguientes tres métodos:

def self.sensitivity_score_value(sensitivity, scale)
  return Float::MAX if sensitivity == 0

  ratio = sensitivity / sensitivities[:low].to_f
  high =
    (PluginStore.get("reviewables", "priority_#{priorities[:high]}") || typical_sensitivity).to_f

  # Queremos que esto sea difícil de alcanzar
  ((high.to_f * ratio) * scale).truncate(2)
end

def self.sensitivity_score(sensitivity, scale: 1.0)
  # Si la puntuación es inferior a la visibilidad predeterminada, auméntela a ese nivel.
  # De lo contrario, tendremos la confusa situación en la que una publicación podría ocultarse y
  # ¡los moderadores nunca la verían!
  [sensitivity_score_value(sensitivity, scale), min_score_for_priority].max
end

def self.score_required_to_hide_post
  sensitivity_score(SiteSetting.hide_post_sensitivity)
end

En otras palabras,
score_to_hide_post = ((high.to_f * ratio) * scale).truncate(2)

donde

  • high.to_f puede ser inesperadamente 0 (normalmente debería ser un valor positivo),
  • ratio = sensitivity / sensitivities[:low].to_f,
  • sensitivity proviene de la configuración (por ejemplo, 3, 6 o 9),
  • sensitivities[:low] = 9,
  • scale = 1.0.

Eso significa que score_to_hide_post nunca debería ser 0, por lo que si se convierte en 0, esto indica claramente un error.