「ライブチャット」の戦いにスローモードの利用を拡大

スローモード機能をとても気に入っており、その活用範囲を拡大したいと考えています。すべてのカテゴリで恒久的にスローモードを適用したいと考えています。新しいトピックだけでなく、既存のトピックすべてにも適用したいのです。

まず、なぜそうしたいのかを説明させてください。

現在、約1万人のメンバーと1万3千のトピックがあります。一部のユーザーは、有意義で思索的な議論を行うことに慣れていません。代わりに、リアルタイムチャットのように扱い、フォーラム全体をメッセージアプリのように使っています。これは私たちが望む姿ではありません。コミュニティでは有意義な議論を促進したいと考えています。しかし、多くの場合、「停止」や「沈黙」は過度に厳しく、適用できません。そこでスローモード機能が登場します。この機能のおかげで、議論のペースを落とし、リアルタイムチャットが過熱するのを防げます。私たちの理解では(もし間違っていたらご指摘ください)、スローモードを有効にする方法は2つあります。

  • 特定のトピックに対して手動で有効にする
  • カテゴリレベルで設定する:あるカテゴリでこの設定を有効にすると、そのカテゴリ内のすべての新しいトピックに自動的にスローモードが適用されます

現在、モデレーターは「ホットなトピック」(リアルタイムチャット化しているトピック)を見つけて、手動でスローモードにしています。しかし、既存のトピックすべてがスローモードになっているわけではないため、スローモードになっていない他のトピックが浮上して、再びリアルタイムチャット化してしまいます。そのため、一部のユーザーから不満が出始めています。「なぜ一部のトピックは浮上し続けるのにスローモード(処罰)が適用されないのか」「なぜこのトピックは残り4時間なのに、あのトピックは残り1時間なのか」などです。さらに、これに関する陰謀論まで生まれ、チームが「ランダムに」スローモードが適用されているとして多くの批判を受けています(私たちがそれに慣れているわけではありませんが)。ユーザー数とトピック数が増え続ける中、この状況はさらに悪化するでしょう。

この問題を解決し、少なくとも状況を改善するために、以下のアプローチを検討しています。

  1. すべての公開トピックでスローモードを有効にする:リアルタイムチャットを防ぎ、有意義な議論を促進するためです。
  2. すべてのユーザーとサイトにおいて、デフォルトのホームページを「最新」ではなく「新規」(または「最新」以外のもの)に設定する:「ハイハイ」や「こんにちは」スレッドではなく、真に価値のあるコンテンツを見つけたいユーザーが、サイトを訪れた際に良い体験を得られるようにするためです。当初、サイトのデフォルトホームページを「最新」に設定していました。すると、ユーザーがデフォルトで「ホットなトピック」を目にしてしまうことがわかりました。さらに、このような「ホットなトピック」が多すぎるため、新しいユーザーや限られた時間しかサイトを訪れないユーザーは、目にするトピックがすべて無意味な雑談だと思い込んだり、ここでリアルタイムチャットをするのが普通だと考えてしまったりします。残念ながら、これはコミュニティに深刻なダメージを与えています。デフォルトのホームページを「新規」に変更することで、この問題を緩和できると願っています。少なくとも、デフォルトではリアルタイムチャットのスレッド以外のものを最初に見られるようになるはずです。

1 については、以下の計画を立てています。

1a. すべてのカテゴリでスローモードを有効にする:これにより、すべての新しいトピックに対応できます。

1b. 既存のすべての公開トピックをバッチ更新してスローモードを有効にする:→ この手順がどのように行えばよいかわかりません。UI 経由でトピックをバッチ更新する際に、スローモードのオプションが見つかりません。リソースが限られており、既存トピックの数が多いため、UI 経由でトピックを一つずつ手動で更新することは現実的ではありません。これを達成するために何かできることはありますか?例えば、データベースに接続していくつかのフィールドを変更するなど。公開トピックのみを変更したいと考えており、メッセージは影響しないようにしたいです。あるいは、バッチ更新 UI に「スローモード」オプションを追加することは意味があるでしょうか?

2 については、以下の計画を立てています。

2a. サイト設定で、「新規」をトップメニューの最初の項目にする。

2b. 全ユーザーのデフォルトホームページをバッチ更新する:→ この手順についても、どのように実現すればよいかアドバイスが必要です。

1b と 2b について支援が必要であり、より良い解決策に関するご意見もいただければ幸いです。どのようなご提案でも役立ちます。よろしくお願いいたします。

「いいね!」 6

カテゴリ設定に、以下のような項目が表示されることを期待しています:


1b の問題は、Rails コンソールでトピックを直接修正することで解決できると思います。私はローカル環境で期待通りに動作するかテストしましたが、本番の Discourse インスタンスで実行する前に、必ず ステージング環境でテストすること を強くお勧めします。あるいは、Discourse チームからこの方法が適切だという確認を得てから実行してください(チームから確認を得たとしても、やはりステージング環境でテストすべきです)。

標準的なインストールを行った Linux サーバーを使用している場合、SSH または他の方法でサーバーのシェルにアクセスし、以下のコマンドを実行してください:

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

その後、表示された Rails コンソールで以下を実行します:

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

120 は次の投稿が許可されるまでの秒数なので、必要に応じてこの値を変更してください。また、特定のカテゴリに対してこの設定を適用したくない場合は、.where.not(category_id: n) を続けて使用できます。例えば、カテゴリ 3 と 4 に対してスローモードを設定したくない場合は、上記を以下のように修正します:

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

カテゴリの ID は、ブラウザでそのカテゴリを開き、アドレスバーに表示される URL(例:「c/staff/3」)を確認することで取得できます。

「いいね!」 3

@Simon_Manning ありがとうございます!あなたの返信が参考になり、2bについても同様の解決策を見つけることができました。

2bに対して行う手順は以下の通りです(興味のある方のために)。Rails コンソールにアクセスした後:

UserOption.update_all(homepage_id: 4)

テストサイトでは homepage_id の 4 が「New」に対応しています。サイト設定によって一貫性があるかどうかは不明ですが、簡単に確認できます。デフォルトのホームページを「New」に設定したユーザーを 1 人作成し、データベースにアクセスしてそのユーザーの homepage_id を確認してください。データベースへのアクセス方法やデータ確認の詳しい手順は、こちら で確認できます。

「いいね!」 2

これを自動化することには前向きですが、決定するのを手伝ってください。

  • システムはいつスローモードに切り替えることを知るべきですか?
  • システムは、スローモードに切り替えることを決定するために、どのデータポイントを確認しますか?
「いいね!」 1