J’ai étudié le code attentivement et j’ai constaté que score_to_hide_post est déterminé par les trois méthodes suivantes :
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
# Nous voulons que ce soit difficile à atteindre
((high.to_f * ratio) * scale).truncate(2)
end
def self.sensitivity_score(sensitivity, scale: 1.0)
# Si le score est inférieur à la visibilité par défaut, augmentez-le à ce niveau.
# Sinon, nous avons la situation confuse où un message pourrait être caché et
# les modérateurs ne le verraient jamais !
[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
Donc, en d’autres termes,
score_to_hide_post = ((high.to_f * ratio) * scale).truncate(2)
où
high.to_fpeut être 0 de manière inattendue (il devrait normalement être une valeur positive),ratio = sensitivity / sensitivities[:low].to_f,sensitivityprovient du réglage (par exemple 3, 6 ou 9),sensitivities[:low]= 9,scale = 1.0.
Cela signifie que score_to_hide_post ne devrait jamais être 0, donc s’il devient 0, cela indique clairement un bug.