Étendre l'utilisation du mode lent pour combattre la bataille du "chat en direct"

Nous adorons la fonctionnalité de mode lent et souhaitons en étendre l’usage. Nous aimerions activer le mode lent de manière permanente pour toutes les catégories – non seulement pour les nouveaux sujets, mais aussi pour tous les sujets existants.

Tout d’abord, expliquons pourquoi nous souhaitons le faire.

Nous comptons actuellement environ 10 000 membres et 13 000 sujets. Certains de nos utilisateurs ne sont pas habitués à développer des discussions significatives et réfléchies. À la place, ils pratiquent le chat en direct et traitent l’ensemble du forum comme une application de messagerie. Ce n’est pas ce que nous souhaitons voir – nous voulons des discussions constructives au sein de notre communauté. Cependant, dans la plupart des cas, les sanctions comme la « suspension » ou le « silence » sont trop sévères et inapplicables. C’est là que la fonctionnalité de mode lent intervient. Grâce à cette fonction, nous pouvons ralentir les échanges et empêcher que le chat en direct ne s’emballe. À notre connaissance, corrigez-nous si nous nous trompons, il existe deux façons d’activer le mode lent :

  • l’activer manuellement pour un sujet spécifique, et
  • le faire au niveau de la catégorie : une fois le paramètre activé pour une catégorie donnée, tous les NOUVEAUX sujets de cette catégorie auront automatiquement le mode lent activé.

Actuellement, nos modérateurs repèrent les « sujets chauds » (devenus des chats en direct) et les passent manuellement en mode lent. Le problème est que, puisque tous les sujets existants ne sont pas en mode lent, d’autres sujets qui ne le sont pas remontent et redeviennent des chats en direct. Ainsi, certains utilisateurs commencent à se plaindre : « Pourquoi certains sujets continuent de remonter sans être passés en mode lent (sanction) ? », « Pourquoi ce sujet est en mode lent avec 4 heures restantes alors qu’un autre n’en a que 1 ? », etc. De plus, des théories du complot apparaissent et notre équipe est vivement critiquée (ce qui ne nous est pas nouveau, bien sûr) en raison de l’aspect « aléatoire » de l’activation du mode lent. Et cela ne fera qu’empirer, car nous disposons de ressources très limitées alors que le nombre d’utilisateurs et de sujets continue d’augmenter.

Nous souhaitons résoudre ce problème, ou du moins améliorer la situation, en adoptant les approches suivantes :

  1. Activer le mode lent pour TOUS les sujets publics : cela permettra d’éviter le chat en direct et d’encourager des discussions constructives.
  2. Définir la page d’accueil par défaut sur « Nouveaux » (ou tout autre option autre que « Récent ») pour tous les utilisateurs et le site : cela permettra aux utilisateurs intéressés par la recherche de contenu réel (et non de simples fils « hahaha » ou « salut ») de mieux vivre leur expérience sur notre site. Au départ, nous avions défini « Récent » comme page d’accueil par défaut du site. Nous avons observé que cela incitait les utilisateurs à voir par défaut les « sujets chauds ». De plus, comme nous avons trop de ce type de « sujets chauds », les nouveaux utilisateurs ou ceux ayant peu de temps à consacrer à la visite de notre site pourraient penser que tous les sujets visibles sont de simples conversations sans importance, ou considérer que le chat en direct est normal/acceptable ici – ce qui, malheureusement, nuit gravement à notre communauté. Nous espérons que le changement de la page d’accueil par défaut vers « Nouveaux » pourra atténuer le problème. Au moins, par défaut, les utilisateurs verront d’abord autre chose que des fils de chat en direct.

Pour le point 1, nous prévoyons :

1a. Activer le mode lent pour toutes les catégories – cela prendra en charge tous les nouveaux sujets.

1b. Mettre à jour par lots tous les sujets publics existants pour activer le mode lent. → C’est une étape dont nous ne savons pas comment nous acquitter. Nous ne trouvons pas l’option de mode lent lors de la mise à jour par lots de sujets via l’interface utilisateur. Mettre à jour manuellement chaque sujet un par un via l’interface n’est pas une option compte tenu de nos ressources limitées et du nombre de sujets existants. Quelqu’un sait-il comment réaliser cela ? Par exemple, se connecter à la base de données et modifier certains champs peut-être ? Nous souhaitons uniquement appliquer ce changement aux sujets publics. Les messages privés ne doivent pas être affectés. Ou bien, l’ajout de l’option « mode lent » dans l’interface de mise à jour par lots aurait-il du sens ?

Pour le point 2, nous allons :

2a. Dans les paramètres du site, placer « Nouveaux » comme premier élément du menu principal.

2b. Mettre à jour par lots la page d’accueil par défaut pour tous les utilisateurs. → C’est également une étape pour laquelle nous avons besoin de conseils sur la manière de la réaliser.

Nous avons besoin d’aide pour les points 1b et 2b et souhaitons recevoir toute suggestion concernant des solutions meilleures. Toute contribution serait la bienvenue. Merci !

6 « J'aime »

Je pense que j’aimerais voir quelque chose dans ce genre dans les paramètres de catégorie :


Je crois que vous pouvez résoudre 1b en modifiant les sujets via la console Rails. J’ai testé localement pour vérifier que cela fonctionne comme prévu, mais je recommande fortement de tester dans un environnement de staging avant de l’appliquer sur votre Discourse en production, ou d’attendre la confirmation d’un membre de l’équipe Discourse que c’est une bonne solution. (Et probablement de tester en staging même dans ce cas.)

En supposant que vous utilisez un serveur Linux avec une installation standard, connectez-vous en SSH ou accédez autrement à un shell sur le serveur et utilisez les commandes suivantes :

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

Ensuite, dans la console Rails qui s’ouvre :

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

120 est le nombre de secondes avant qu’un autre message ne soit autorisé ; remplacez-le selon vos besoins. Si vous souhaitez également éviter de définir cela pour certaines catégories, vous pouvez chaîner cela avec .where.not(category_id: n), par exemple pour éviter de définir le mode lent pour les catégories 3 et 4, vous modifieriez la commande ci-dessus comme suit :

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

Vous pouvez obtenir l’ID d’une catégorie en visitant celle-ci dans votre navigateur et en regardant la barre d’adresse pour trouver quelque chose comme « c/staff/3 ».

3 « J'aime »

Merci @Simon_Manning ! Votre réponse nous a aidés et guidés pour trouver une solution similaire pour 2b.

Voici ce que nous allons faire pour 2b (au cas où cela intéresserait quelqu’un). Après avoir entré la console Rails :

UserOption.update_all(homepage_id: 4)

Dans notre site de test, l’identifiant homepage_id 4 correspond à « Nouveau ». Je ne sais pas si cela est cohérent en raison de paramètres de site différents, mais c’est facile à vérifier. Il suffit d’avoir un utilisateur avec la page d’accueil par défaut définie sur « Nouveau », puis d’accéder à la base de données pour vérifier l’identifiant homepage_id de cet utilisateur. Les instructions amicales sur la manière d’accéder à la base de données et de vérifier les données se trouvent ici.

2 « J'aime »

Je suis ouvert à l’automatisation de cela, afin que les sujets soient forcés en mode lent automatiquement. Mais aidez-moi à décider :

  • comment le système sait-il quand passer en mode lent ?
  • quels points de données le système examine-t-il pour décider de passer en mode lent ?
1 « J'aime »