Das erste Mal, als ich eine zweite Benachrichtigung für dieselbe Antwort bemerkte, ohne dass beim Bearbeiten ein Link, ein Zitat oder eine Erwähnung hinzugefügt wurde, war nach der Bearbeitung unter Topics from some categories do not appear on /latest - #36 by JammyDodger. Dieser Fall unterscheidet sich geringfügig von meinen unten aufgeführten Reproduktionsschritten, aber ich denke, das zugrunde liegende Problem ist dasselbe.
Der zweite Beitrag, bei dem dies geschah, war unter Messages section for sidebar - #13 by nathank. Es war ähnlich: Die Bearbeitung fügte nichts hinzu, was eine Benachrichtigung ausgelöst hätte – die Zitate waren beide schon vorher da – und trotzdem wurde ich ein zweites Mal benachrichtigt.
Hier sind die Schritte zur Reproduktion, die ich gefunden habe und die funktioniert haben [1]
Sie benötigen 3 Benutzer: OP, notifiedUser, spammer
OP erstellt ein Thema
notifiedUser antwortet
OP antwortet auf den Beitrag von notifiedUser notifiedUser wird über die Antwort benachrichtigt (erwartet)
spammer antwortet auf den Beitrag von notifiedUser. Die Antwort enthält einen Link zu einem anderen Beitrag von notifiedUser und ein Zitat aus dem Beitrag, auf den Sie antworten. (optional: Sie können auch notifiedUser @erwähnen) notifiedUser wird über die Antwort benachrichtigt (erwartet) [Falls Sie eine @Erwähnung hinzugefügt haben, bezieht sich die Benachrichtigung auf die @Erwähnung (erwartet)]
notifiedUser liest die neuen Antworten, um die Benachrichtigungen als gelesen zu markieren, und navigiert woanders hin, damit wir keine Benachrichtigung verpassen.
spammer bearbeitet die Antwort und korrigiert einen Tippfehler (oder fügt edit1 hinzu) notifiedUser wird über das Zitieren benachrichtigt (unerwartet, sie wurden bereits über diese Antwort benachrichtigt und das Zitat war schon vorher da, es besteht kein Grund, sie erneut zu informieren)
spammer bearbeitet die Antwort erneut, um einen weiteren Tippfehler zu korrigieren (oder fügt edit2 hinzu) notifiedUser wird über das Verlinken benachrichtigt (unerwartet, sie wurden bereits über diese Antwort benachrichtigt und der Link war schon vorher da, es besteht kein Grund, sie erneut zu informieren)
Das Video zeigt nur die letzten Schritte 5-7. Spammer ist links, notifiedUser ist rechts
zumindest meistens, manchmal löst selbst das Hinzufügen einer @Erwähnung bei der Bearbeitung keine neue Benachrichtigung aus ↩︎
Change lines 589-599 from:
# 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
To:
# 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
Dies wird funktionieren, aber ich mache mir etwas Sorgen, da hier noch andere Benachrichtigungen durchrutschen können. (z.B. Plugin-Benachrichtigungen, die wir möglicherweise unterdrücken möchten)
@lindsey Hier gibt es eine Produktfrage: Wann sollten wir eine Benachrichtigung unterdrücken?
Ich bin mir nicht sicher. Ist das nicht eine Antwortbenachrichtigung in meinem Video? Und trotzdem gibt es noch eine Benachrichtigung über das Zitat und den Link danach. Das auf andere Benachrichtigungstypen auszudehnen, hilft hier also möglicherweise nicht. Aber vielleicht deckt es andere Grenzfälle ab.
Ich frage mich, ob das Problem in meiner Reproduktion die Benachrichtigung „2 Antworten“ ist. Macht das die Überprüfung auf vorhandene Benachrichtigungen durch diese Antwort kaputt, wenn die Antwort bearbeitet wird?
Im Allgemeinen würde ich bei einer Bearbeitung keine zusätzliche Benachrichtigung erwarten, wenn alle Auslöser bereits im Beitrag vorhanden waren, als ich ihn gelesen habe. Die Korrektur eines Tippfehlers, der nichts mit Erwähnung/Link/Zitat zu tun hat, sollte nicht zu einer neuen Benachrichtigung führen.
Ich denke, falls ein Auslöser ersetzt wird, würde ich es vorziehen, wenn die vorhandene, ungelesene Benachrichtigung geändert (oder ersetzt) wird, anstatt eine zweite zu erhalten. Das Entfernen der @Erwähnung in einem Beitrag eines Benutzers, um Lärm zu vermeiden, sollte nicht zu einer zweiten Benachrichtigung über das Zitat führen. Ich würde erwarten, dass die Benachrichtigung über die @Erwähnung verschwindet.
Ich denke, der einzige Fall, in dem ich eine neue Benachrichtigung wünschen würde, ist, wenn eine Bearbeitung einen wichtigeren Benachrichtigungstyp hinzufügt. Wenn also jemand meinen Beitrag verlinkt und später eine Bearbeitung hinzufügt, die mich @erwähnt, ist es sinnvoll, mir dies mitzuteilen, da sie scheinbar nicht mehr über etwas sprechen, das ich geschrieben habe, sondern direkt mit mir. Da eine Bearbeitung das Thema nicht mehr nach oben bringt, könnten @Erwähnungen eine hilfreiche Möglichkeit sein, Benutzer auf Bearbeitungen aufmerksam zu machen.
Ich denke, Moin beschreibt das Ideal aus Benutzersicht, aber ich glaube, wir hätten Schwierigkeiten, diesen Teil richtig hinzubekommen:
Vielleicht könnten wir das für In-App-Benachrichtigungen schaffen, aber wir können Push-Benachrichtigungen oder E-Mail-Benachrichtigungen nicht zurücksenden. (Im Allgemeinen bin ich zögerlich, Benachrichtigungen mehr Komplexität hinzuzufügen, daher würde ich es vorziehen, darauf zu verzichten, auch wenn einige damit einverstanden wären, dass In-App und E-Mail/Push für die Benachrichtigung unterschiedlich sind.)
Dem stimme ich jedoch zu:
Wenn ein Beitrag einen Benutzer benachrichtigen soll (z. B. der Beitragsautor zitiert Benutzer A), benachrichtigen Sie den/die entsprechenden Benutzer (z. B. Benutzer A erhält eine Benachrichtigung, dass er zitiert wurde).
Wenn eine Bearbeitung dieses Beitrags nicht ändert, wer benachrichtigt werden sollte oder warum (z. B. der Beitragsautor bearbeitet einen Tippfehler), benachrichtigen Sie niemanden.
Wenn eine Bearbeitung dieses Beitrags ändert, wer benachrichtigt werden sollte (z. B. der Beitragsautor erwähnt Benutzer B) oder warum (z. B. der Beitragsautor erwähnt Benutzer A), benachrichtigen Sie den/die betroffenen Benutzer (z. B. Benutzer B erhält eine Erwähnungsbenachrichtigung, Benutzer A erhält eine Erwähnungsbenachrichtigung).