Estendere l'uso della modalità lenta per combattere la battaglia della "chat dal vivo"

Amiamo la funzione slow mode e vorremmo estenderne l’utilizzo. Desideriamo attivare lo slow mode in modo permanente per tutte le categorie – non solo per i nuovi argomenti, ma anche per tutti gli argomenti esistenti.

Innanzitutto, spieghiamo perché vogliamo farlo.

Abbiamo circa 10.000 membri e 13.000 argomenti al momento. Alcuni dei nostri utenti non sono abituati a sviluppare discussioni significative e ponderate. Invece, usano la chat in tempo reale e trattano l’intero forum come un’app di messaggistica. Questo non è ciò che ci piace vedere: vogliamo discussioni significative nella nostra community. Tuttavia, nella maggior parte dei casi, “sospendere” o “silenziare” sono misure troppo severe e non applicabili. È qui che entra in gioco la funzione slow mode. Grazie a questa funzione, possiamo rallentare e impedire che la chat in tempo reale diventi troppo intensa. Per quanto ne sappiamo, correggeteci se sbagliamo, ci sono due modi per attivare lo slow mode:

  • attivarlo manualmente per un argomento specifico, e
  • farlo a livello di categoria: una volta abilitata l’impostazione per una determinata categoria, tutti i NUOVI argomenti sotto quella categoria avranno lo slow mode attivato automaticamente.

Attualmente, i nostri moderatori individuano gli “argomenti caldi” (argomenti diventati chat in tempo reale) e li mettono manualmente in slow mode. Il problema è che, poiché non tutti gli argomenti esistenti sono in slow mode, altri argomenti che non lo sono vengono portati in cima e diventano di nuovo chat in tempo reale. Di conseguenza, alcuni utenti iniziano a lamentarsi: “perché alcuni argomenti continuano a essere portati in cima senza ricevere lo slow mode (punizione)”, “perché questo argomento è in slow mode con 4 ore rimanenti mentre un altro ne ha solo 1”, ecc. Inoltre, ci sono teorie del complotto al riguardo e il nostro team viene criticato molto (non che non ne siamo abituati) a causa di come lo slow mode viene attivato in modo “casuale”. E questa situazione peggiorerà ulteriormente, dato che abbiamo risorse molto limitate mentre il numero di utenti e argomenti continua ad aumentare.

Vogliamo risolvere il problema, o almeno migliorare la situazione, adottando i seguenti approcci:

  1. avere TUTTI gli argomenti pubblici in slow mode: questo serve a prevenire la chat in tempo reale e incoraggiare discussioni significative.
  2. impostare la home page predefinita come “Nuovi” (o qualsiasi cosa diversa da “Ultime”) per tutti gli utenti e il sito: questo permetterà agli utenti interessati a trovare contenuti reali (non solo thread di “aha” e “ciao”) di avere un’esperienza migliore durante la visita del nostro sito. All’inizio, avevamo impostato “Ultime” come home page predefinita del sito. Abbiamo osservato che questo faceva sì che gli utenti vedessero di default gli “argomenti caldi”. Inoltre, dato che abbiamo troppi di questi “argomenti caldi”, i nuovi utenti o gli utenti con poco tempo da dedicare al nostro sito potrebbero pensare che tutti gli argomenti visibili siano semplici chiacchiere senza senso, o credere che sia normale/accettabile avere una chat in tempo reale qui – purtroppo, questo sta danneggiando gravemente la nostra community. Speriamo che cambiare la home page predefinita in “Nuovi” possa alleviare il problema. Almeno gli utenti, di default, vedranno prima qualcosa di diverso dalle chat in tempo reale.

Per il punto 1, pianifichiamo di:

1a. attivare lo slow mode per tutte le categorie – questo si occuperà di tutti i nuovi argomenti.

1b. aggiornare in batch tutti gli argomenti pubblici esistenti per attivare lo slow mode. → Questo è un passaggio che non sappiamo come eseguire. Non troviamo l’opzione slow mode durante l’aggiornamento in batch degli argomenti tramite l’interfaccia utente. Aggiornare manualmente ogni argomento uno alla volta tramite l’interfaccia non è un’opzione, considerando le nostre risorse limitate e il numero di argomenti esistenti. Qualcuno sa cosa possiamo fare per rendere possibile questo? Ad esempio, connettersi al database e modificare alcuni campi? Vogliamo modificare solo gli argomenti pubblici. I messaggi privati non devono essere influenzati. Oppure, ha senso aggiungere l’opzione “slow mode” nell’interfaccia di aggiornamento in batch?

Per il punto 2, faremo:

2a. nelle impostazioni del sito, impostare “Nuovi” come primo elemento nel menu principale.

2b. aggiornare in batch la home page predefinita per tutti gli utenti. → Anche questo è un passaggio su cui abbiamo bisogno di consigli su come realizzarlo.

Abbiamo bisogno di aiuto per 1b e 2b e vorremmo ricevere eventuali suggerimenti su soluzioni migliori. Qualsiasi contributo sarebbe utile. Grazie!

6 Mi Piace

Credo che nelle impostazioni delle categorie si potrebbe vedere qualcosa di simile:


Penso che tu possa risolvere il 1b modificando gli argomenti tramite la console di Rails. Ho testato localmente per verificare che funzioni come previsto, ma consiglio vivamente di testare in un ambiente di staging prima di applicare questa soluzione sul tuo Discourse in produzione o di attendere la conferma da parte di qualcuno del team di Discourse che si tratti di una soluzione valida. (E probabilmente è meglio testare comunque in staging, anche se ricevessero conferma.)

Supponendo che tu stia utilizzando un server Linux con un’installazione standard, accedi tramite SSH o in altro modo a una shell sul server e utilizza i seguenti comandi:

cd /var/discourse
./launcher enter app
rails c

Poi, nella console di Rails risultante:

Topic.where.not(archetype: "private_message").update_all(slow_mode_seconds: 120)

120 è il numero di secondi prima che sia consentito un altro post; sostituiscilo a piacere. Se desideri anche evitare di impostare questa opzione per alcune categorie, puoi concatenarla con .where.not(category_id: n). Ad esempio, per evitare di attivare la modalità lenta per le categorie 3 e 4, modificheresti il comando precedente in questo modo:

Topic.where.not(archetype: "private_message").where.not(category_id: 3).where.not(category_id: 4).update_all(slow_mode_seconds: 120)

Puoi ottenere l’ID di una categoria visitando la categoria nel tuo browser e osservando la barra degli indirizzi per trovare qualcosa come “c/staff/3”.

3 Mi Piace

Grazie @Simon_Manning! La tua risposta ci ha aiutato e guidato nel trovare un approccio simile per 2b.

Ecco cosa faremo per 2b (nel caso qualcuno fosse interessato). Dopo aver avviato la console di Rails:

UserOption.update_all(homepage_id: 4)

L’homepage_id 4 corrisponde a “Nuovo” nel nostro sito di test. Non sono sicuro che sia coerente a causa delle diverse impostazioni del sito, ma è facile verificare. Basta avere un utente con la pagina iniziale predefinita impostata su “Nuovo” e accedere al database per controllare l’homepage_id di questo utente. Le istruzioni amichevoli su come accedere al database e controllare i dati sono disponibili qui.

2 Mi Piace

Sono aperto all’automazione di questo processo, in modo che gli argomenti vengano forzati in modalità lenta automaticamente. Ma per favore, aiutami a decidere:

  • come fa il sistema a sapere quando passare alla modalità lenta?
  • quali punti dati esamina il sistema per decidere di passare alla modalità lenta?
1 Mi Piace