Ho riscontrato un grave problema con il mio forum Discourse.
Recentemente ho scoperto che tutti i post contenenti parole monitorate che attivano un flag vengono automaticamente nascosti.
Questi post devono essere manualmente resi visibili da un amministratore per poter essere nuovamente visualizzati.
Dopo alcune indagini, ho notato che il valore score_to_hide_post del mio sito è attualmente 0.0.
Su un’altra istanza Discourse che gestisco, questo valore è intorno a 8.3, il che sembra normale.
A causa di questo valore 0.0, qualsiasi flag, anche uno singolo da una parola monitorata, nasconde immediatamente il post.
Non ho apportato modifiche alle impostazioni di recente. Perché score_to_hide_post dovrebbe diventare 0.0?
Come posso ripristinarlo a una soglia normale (come 8.3) in modo che i post non vengano nascosti subito?
Ho scoperto che poiché score_to_hide_post è 0.0, anche una singola segnalazione da un nuovo utente nasconderà immediatamente il post, il che rende la situazione piuttosto seria. Cosa dovrei fare?
Puoi risolvere questo problema modificando l’impostazione del sito Nascondi sensibilità post. Impostala a un livello appropriato come Medio o Alto: questo aggiornerà automaticamente il valore interno score_to_hide_post a una soglia adeguata.
Tieni presente che minore è la sensibilità, minore è il punteggio di flag richiesto per nascondere un post, motivo per cui i post venivano nascosti immediatamente.
Grazie per il suggerimento! Ho provato a regolare l’impostazione del sito Hide Post Sensitivity nel pannello di amministrazione, che ha quattro opzioni: Disabilitato, Basso, Medio e Alto.
Tuttavia, ho scoperto che solo Disabilitato funziona. Indipendentemente dalla scelta tra Basso, Medio o Alto, il valore score_to_hide_post rimane 0.
Sai perché succede questo?
Ciao, ho una domanda riguardo a score_to_hide_post.
Capisco che score_to_hide_post venga calcolato dinamicamente in base ai recensibili, ma è possibile che venga mai calcolato come 0 in circostanze normali?
AFIK, in standard operation with Hide Post Sensitivity set to “Low, Medium, or High”, the threshold should be a positive number. If you see score_to_hide_post = 0 when the sensitivity is NOT “Disabled”, this indicates a system misconfiguration. Possible causes include:
Corrupt or missing values in the PluginStore
Issues with your SiteSettings (e.g., reviewable_default_visibility misconfigured)
L’impostazione reviewable_default_visibility è ancora al suo valore predefinito, low. Dopo che si è verificato il problema, ho persino provato a ricostruire il sito, ma non ha risolto il problema. Vorrei capire come sia apparso questo problema in primo luogo e se possa essere risolto.
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_postnon dovrebbe mai essere 0, quindi se diventa 0, ciò indica chiaramente un bug.