收到关于同一回复的多条通知

我第一次注意到在编辑后收到了关于同一回复的第二个通知,而编辑中没有添加任何链接、引用或提及,是在编辑了 Topics from some categories do not appear on /latest - #36 by JammyDodger 之后。这种情况与我下面的重现步骤略有不同,但我认为根本问题是相同的。

发生这种情况的第二个帖子是在 Messages section for sidebar - #13 by nathank

以下是我找到的有效(至少大多数时候有效,有时即使在编辑中添加了 @提及也不会触发新通知)的重现步骤:

你需要 3 个用户:OP(原帖作者)、notifiedUsers(被通知用户)、spammer(垃圾信息发送者)

  1. OP 创建一个主题
  2. 被通知用户回复
  3. OP 回复被通知用户的帖子
    被通知用户收到回复的通知(预期)
  4. 垃圾信息发送者回复被通知用户的帖子。回复中包含一个指向被通知用户另一篇帖子的链接和一个对被回复帖子的引用。(可选:你也可以 @提及 被通知用户)
    被通知用户收到回复的通知(预期)
    [如果你添加了 @提及,通知是关于 @提及 的(预期)]
  5. 被通知用户阅读新回复以将通知标记为已读,然后导航到别处,这样我们就不会错过任何通知。
  6. 垃圾信息发送者编辑回复并修正一个拼写错误(或添加 edit1)
    被通知用户收到被引用的通知(意外,他们之前已经收到了这个回复的通知,并且引用之前就存在了,没有必要再通知他们)
  7. 垃圾信息发送者再次编辑回复以修正另一个拼写错误(或添加 edit2)
    被通知用户收到被链接的通知(意外,他们之前已经收到了这个回复的通知,并且链接之前就存在了,没有必要再通知他们)

视频只显示了最后几个步骤 5-7。垃圾信息发送者在左边,被通知用户在右边

2 个赞

post_alerter.rb

将第 589-599 行从:
 # linked, quoted, mentioned, chat_quoted may be suppressed if you already have a reply notification
 if [
      Notification.types[:quoted],
      Notification.types[:linked],
      Notification.types[:mentioned],
      Notification.types[:chat_quoted],
    ].include?(type)
   if existing_notifications.find { |n| n.notification_type == Notification.types[:replied] }
     return
   end
 end

 更改为:
 # linked, quoted, mentioned, chat_quoted may be suppressed if you already have any notification about this 
 post
 if [
      Notification.types[:quoted],
      Notification.types[:linked],
      Notification.types[:mentioned],
      Notification.types[:chat_quoted],
    ].include?(type)
   return if existing_notifications.any?
 end

这样做可行,但我确实有点担心,因为可能会遗漏其他通知。(例如插件通知,我们可能希望抑制这些通知)

@lindsey 这里有一个关于产品的问题,我们应该在什么时候抑制通知?

我想这个小修复算是一个进步?

[quote=“sam, post:2, topic:393486”]
我想小的修复算是一个进步吧?
[/quote]我不确定。那不是我视频中的回复通知吗?然而,后面仍然有关于引用和链接的通知。因此,将此扩展到其他通知类型可能在这里没有帮助。但这可能涵盖了其他边缘情况。
我想知道我的重现中的问题是否是“2条回复”通知。当回复被编辑时,这是否会破坏对该回复现有通知的检查?

总的来说,如果所有触发条件在我阅读帖子之前就已经存在,我希望编辑不会产生额外的通知。修复一个与提及/链接/引用无关的拼写错误不应该导致新的通知。
我认为,如果一个触发器被替换,我宁愿现有的未读通知被更改(或替换),而不是收到第二个通知。删除用户帖子中的@提及以避免噪音不应导致关于引用的第二个通知。我希望关于@提及的通知消失。
我认为我希望收到新通知的唯一情况是编辑添加了更重要的通知类型。因此,当有人链接了我的帖子,然后稍后进行编辑并@提及我时,通知我是有意义的,因为他们似乎不再谈论我写的内容,而是直接对我说。