Tutti i post contenenti parole monitorate sono nascosti automaticamente — score_to_hide_post è 0.0

Ho studiato attentamente il codice e ho scoperto che score_to_hide_post è determinato dai seguenti tre metodi:

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

  # Vogliamo che questo sia difficile da raggiungere
  ((high.to_f * ratio) * scale).truncate(2)
end

def self.sensitivity_score(sensitivity, scale: 1.0)
  # Se il punteggio è inferiore alla visibilità predefinita, portalo a quel livello.
  # Altrimenti avremo la situazione confusa in cui un post potrebbe essere nascosto e
  # i moderatori non lo vedrebbero mai!
  [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

Quindi, in altre parole,
score_to_hide_post = ((high.to_f * ratio) * scale).truncate(2)

dove

  • high.to_f potrebbe inaspettatamente essere 0 (normalmente dovrebbe essere un valore positivo),
  • ratio = sensitivity / sensitivities[:low].to_f,
  • sensitivity proviene dall’impostazione (ad esempio 3, 6 o 9),
  • sensitivities[:low] = 9,
  • scale = 1.0.

Ciò significa che score_to_hide_post non dovrebbe mai essere 0, quindi se diventa 0, ciò indica chiaramente un bug.