タグの「watching first post」は既存トピックで動作しない?

私は、これが初期テストでは機能したと断言できます。なぜなら、それは私のワークフローの鍵だからです。既存の投稿にタグを付け、そのタグで watching_first_post を設定しているユーザーは通知を受け取ることができました。

しかし、現在はそのように機能しないことがわかりました(…もう機能しないのでしょうか?)

あるいは、そのトピックの下にすでに返信投稿がある場合に無視されているのでしょうか?

全員が「最初の投稿を監視する」設定になっているカテゴリにトピックを移動できると思いますが…

  1. 通知はトピック作成時にのみトリガーされますか?
  2. 返信投稿の存在が「最初の投稿」トリガーを無視させる原因になるかどうかはわかりません。
  3. 関連トピックを1つのカテゴリにまとめ、「タグ」で「エスカレート」したかったのです。

通知を毎回実行するスクリプトを実行する用意はありますが、Askbot :robot: は、機能するスクリプトを作成するのに役立ちませんでした。

どのような入力や回避策でも歓迎します!

image

しかし、これはどのように機能しますか?タグが付いた古いトピックが10,000件ある場合、すぐに通知されますか?

Watch first postは、トピックの最初の投稿でのみ通知されます。

「いいね!」 1

それはかなり決定的ですね。私の記憶違いだったのでしょう。トラッキングタグが存在するテストトピックを作成したのだと思います。

いいえ、タグによってユーザーを「最初の投稿のみ」に設定しても、遡って何かを行うことは想定していません。

しかし、投稿されたトピックが後でスタッフによってタグ付けされることは一般的でしょう。既存のトピックに「最初の投稿のみ」タグが適用されたときに、そのタグをWFPしているユーザーにそのトピックの通知が生成されると想像していました。

これらの場合に、アドホックなスクリプトを作成するために、まだAskbotと協力しています…

約60回のイテレーションの後、Askbotと私はほぼ動作するRailsスクリプトを作成しました。

以下は、トピック239とタグ「tagtest」のスクリプトで、「新しいトピック」通知を正しいトピックタイトルで生成し、関連するメールも生成します。

一部の要素は機能していないように見えます(message:display_username:はどの出力にも表示されません)が、ほぼ機能しています。

決定的な問題は、メールのヘッダーに実際のトピックタイトルが含まれていないことです。「%{topic_title}」として表示されます。topic_titleはNotificationメソッドの有効なフィールドではないため、メールに含めるために必要な最小限のコードがわかりません。(Askbotは、ますます複雑なメールメソッドを追加しようとしましたが、エラーが増えるばかりでした。)

この詳細について誰かが助けてくれれば、これを適切にクリーンアップする方法を学ぶまで、なんとかやっていけます…!


topic_id = 239

Tag.where(name: 'tagtest').each do |tag|
  TagUser.where(tag_id: tag.id, notification_level: TagUser.notification_levels[:watching_first_post]).each do |tag_user|
    user = User.find(tag_user.user_id)
    puts "Username: #{user.username}, ID: #{user.id}"

    # トピックタイトルを取得
    topic = Topic.find(topic_id)
    topic_title = topic.title

    # トピックの通知を作成
    Notification.create!(
      user_id: user.id,
      notification_type: Notification.types[:watching_first_post],
      topic_id: topic_id,
      post_number: 1, # トピックの最初の投稿について通知したいと仮定
      data: {
        message: 'You have a new notification for a topic you are watching.',
        display_username: 'system'
      }.to_json
    )

  end
end

タグ付けの際にもリスクが伴います。例えば、500件のトピックを一括でタグ付けすると、500件の通知が発生し、通知がすべて流れてしまう可能性があります。

さらに悪いことに、管理者が10秒間隔で100件のタグ付けを行った場合などです。

これは難しい問題であり、このような機能の修正には、通知を非常に慎重にまとめる必要があります。

トピックを別のカテゴリに一括移動する場合も同様ではありませんか?トピックを別のカテゴリに移動すると、最初の投稿の通知がトリガーされます。

はい、一般的に再タグ付けよりも再カテゴリ化の方がはるかにまれであるため、問題の規模はある程度緩和されていると思います。3つのトピックをウォッチファーストに一括再カテゴリ化するとどうなるか、簡単なスクリーンショットを撮っていただけますか?

500件のトピックを一括でタグ付けするつもりはありませんが、皆が「ウォッチ」している「お知らせ」カテゴリに投稿するよりも、より多くの負荷がかかるのか興味があります。
(編集:おっと、作成中にMoinさんが投稿しました。)

私の個人的なユースケースは、通知メールで「エスカレート」するために週に1回投稿することくらいです。

これは、以前のカテゴリ変更されたトピックに関する議論に似ているように感じます。
(編集:それはすでに知っていますよね、すみません。)

…これはFIX: トピックがカテゴリ変更されたときにウォッチしている最初の投稿ユーザーの通知が欠落 · discourse/discourse@147ea37 · GitHubで対処されました。

私は、2つのカテゴリを持つのではなく、タグを使用することを目指しています。 (それらは一緒に属していますが、投稿後、一部は、私たちの静かで、時々メールのみのユーザーに送信する価値があると判断されます。)

「いいね!」 1

好奇心/比較のために、*‘カテゴリ内の最初の投稿を監視する’*動作をテストしていますが、カテゴリ変更時に通知されません。

私の email time window mins は 10 で、手順の間には 15 分空けています。
これを数回繰り返しました…

  • 監視されていないサンドボックスカテゴリに新しいトピックを作成します。15分待ちます。
  • トピックをユーザーが「監視」しているカテゴリに移動します: 即座に通知がトリガーされ、10分後にメールが送信されます。

  • 監視されていないサンドボックスカテゴリに別の新しいトピックを作成します。15分待ちます。
  • ユーザーが「最初の投稿を監視」しているカテゴリにトピックを移動します: 何も起こりません、決して。

(セルフホストの標準インストール、3.4.0.beta2-dev (0c019b2e45)、tests-passed。)

私のプロセスに何か問題があるのかもしれませんが、何が問題なのか想像もつきません。2018年に修正された機能が、再び未修正になった可能性はありますか?

「いいね!」 1

十分にあり得ます。これはアプリの中でも特に複雑な分野です。

再タグ付け/再分類時の通知には、多くのガードレールが必要です。

  • 8年前のトピックで通知すべきでしょうか?
  • 一度に50件の通知を送信すべきでしょうか?1時間のうちに?

まず、望ましい動作とガードレールが何であるべきかを特定することから始める必要があります。

FWIW 既存のトピックにタグを追加すると、そのタグの「最初の投稿を監視」しているすべてのユーザーに通知が送信されるはずです。

テストサイト (3108e3a6b6) でテストしたところ、まだ正常に機能しているようです。

確認ですが、管理設定の disable tags edit notifications を変更したことはありますか? (カテゴリ版の場合は disable category edit notifications も)。

「いいね!」 4

オー。

エム。

ジー。

もう隠遁します。

それらの設定が存在したことを忘れていました。おそらく、無効にしたときは、*「管理者がタグを追加したり、トピックのカテゴリを変更した」*といった通知のみを考えていたのでしょう。ウォッチやWFPの通知のようなアクションではありません。

まだ一貫性のない点があるかもしれません。カテゴリのウォッチはdisable category edit modificationsを上書きしたようですが、WFPはそうではありませんでした。罰として、これをより徹底的にテストし、この件で私が言及した他の数人にもフォローアップします。

(また、@samは私の結論をある程度支持してくれました :sweat_smile:

しかし、@JammyDodger、レールスクリプトでさらに何時間もいじることから私を救ってくれてありがとう。次のステップは、ソファを売って@pfaffmanに助けてもらうことでした。

「いいね!」 6

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