يتم إخفاء جميع المشاركات التي تحتوي على كلمات مراقبة تلقائيًا - score_to_hide_post هو 0.0

لقد قمت بدراسة الكود بعناية ووجدت أن score_to_hide_post يتم تحديده بالطرق الثلاث التالية:

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

  # We want this to be hard to reach
  ((high.to_f * ratio) * scale).truncate(2)
end

def self.sensitivity_score(sensitivity, scale: 1.0)
  # If the score is less than the default visibility, bring it up to that level.
  # Otherwise we have the confusing situation where a post might be hidden and
  # moderators would never see it!
  [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

بعبارة أخرى،
score_to_hide_post = ((high.to_f * ratio) * scale).truncate(2)

حيث:

  • high.to_f قد يكون 0 بشكل غير متوقع (عادة ما تكون قيمة موجبة)،
  • ratio = sensitivity / sensitivities[:low].to_f،
  • sensitivity تأتي من الإعداد (على سبيل المثال 3، 6، أو 9)،
  • sensitivities[:low] = 9،
  • scale = 1.0.

هذا يعني أن score_to_hide_post يجب ألا يكون 0 أبدًا، لذلك إذا أصبح 0، فهذا يشير بوضوح إلى خطأ.