トピックの全ユーザーの通知レベルを変更する方法

トピックのすべてのユーザーの通知レベルを単一の値に設定する安全な方法を知っている人はいますか?Railsコンソールで何かを行う必要があると推測しています。

「Watching」または「Tracking」ではなく、トピックのすべてのユーザーを「Mute」または「Normal」に設定したいと思います。

目標は、複雑なモデレーション状況における大規模なトピックのアクティビティを削減することです。

「いいね!」 1

管理者メニュー
設定
ユーザー設定


お待ちください、すみません、1つのトピックだけということですね。ええ、レールが必要になるかもしれませんね。

「いいね!」 1

スローモードを有効にすることについてはどうですか?アクティビティを減らすのに役立ちませんか? :thinking:

この状況は複雑で、公の議論を引き起こすような視覚的な表示は避けたいです。そのような議論は、モデレーションに何時間もかかる可能性があります。(私はすでに完全に圧倒されています。)理想的な結果は、人々がトピックの存在を思い出さないことです。

「いいね!」 1

トピックを非表示にします。そうすれば、フォーラムから隠されるため、ほとんどのユーザーはそこでそれを見ることができなくなります。ただし、(たとえば通知を受け取ったために)そのトピックへのリンクを持っているユーザーは、引き続きトピックを開くことができます。

「いいね!」 2

ただし、注意点として、もし彼らがそれを視聴している場合、それが非公開になった場合でも通知は届きます。

特定のトピックのユーザーの通知レベルを設定するために、/t/TOPIC_ID/notifications エンドポイントを使用できるようになったと思いますが、これはRailsコンソールよりも魅力的な選択肢でしょうか?

追加情報
  • APIユーザーは、他のユーザーの通知レベルを変更できるように、管理者である必要があります(したがって、グローバルスコープを持っている必要があります)。
  • エンドポイントURL: siteurl/t/<topic_id>/notifications
  • リクエストタイプ: POST
  • パラメータ:
    • 対象ユーザーの username または external_id。空の場合、管理者のトピックに対する自身の通知レベルが変更されます。
    • notification_level: レベルに対応する整数値
      • muted: 0,
      • regular: 1,
      • normal: 1, # regular のエイリアス
      • tracking: 2,
      • watching: 3,

しかし、Railsコンソールについては、おそらくこれになると思います(Railsで変更を試みる前に、念のためバックアップを取ることを忘れないでください :warning:)。

TopicUser.where(topic_id: TOPIC_ID).update(notification_level: 1)

(1はノーマル、0はミュート)

これによりトピックレベルの設定は変更されますが、カテゴリやタグレベルの設定が残っている可能性があり、新しいアクティビティの通知を受け取るユーザーに影響を与える可能性があります。

もし役立つなら、ユーザーのトピックレベルを確認するためのデータエクスプローラークエリもいくつかあります。

SELECT
    topic_id,
    user_id,
    notification_level
FROM topic_users
WHERE topic_id = TOPIC_ID
「いいね!」 3

詳細なご回答ありがとうございます。明日APIを試してみます。

「いいね!」 2

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.