Der PostAlerter enthält ein System aus Prüfungen und Auslösern für Benachrichtigungen, die nach dem Speichern eines regulären Beitrags gesendet werden, beginnend mit der Methode after_save_post.
Ich habe mich mit dieser Methode im Rahmen des Follow Plugins auseinandergesetzt (insbesondere siehe discourse-follow/plugin.rb at main · discourse/discourse-follow · GitHub) und habe einige Gedanken und Fragen, über die ich mich über die Meinungen anderer freuen würde.
Angesichts der Natur des PostAlerter geht diese Diskussion meiner Meinung nach über das Follow Plugin hinaus. Ich sehe meine untenstehenden Vorschläge als relevant auch für das Assign-Plugin und das Polls-Plugin, unter anderem.
Meine aktuellen Überlegungen gehen in folgende Richtung (ich würde mich freuen, für einen der folgenden Punkte einen PR zu erstellen):
-
Ein Hook oder ein Event-Trigger in der Methode
after_save_post, der es Plugins ermöglicht, Benutzer hinzuzufügen, an die Benachrichtigungen gesendet werden sollen (oder nicht), im Kontext der Prüfungen und Zähler dieser Methode, wäre großartig. Beim Senden einer Benachrichtigung sind drei wichtige Überlegungen:- Soll ich einem Benutzer eine Benachrichtigung über einen Beitrag senden?
- Habe ich einem Benutzer bereits eine Benachrichtigung über einen Beitrag gesendet?
- Wie soll ich einen Benutzer über einen Beitrag benachrichtigen (d. h. unter Berücksichtigung seiner Einstellungen)?
Jeder dieser Punkte ließe sich im Kontext der Methode
after_save_postleichter bewerten. -
Eine angepasste Verwendung von Benachrichtigungstypen. Derzeit gibt es im PostAlerter einige Konstanten für Benachrichtigungstypen, die in spezifischen Prüfungen und Zählern iteriert oder gefiltert werden, z. B.
NOTIFIABLE_TYPESundCOLLAPSED_NOTIFIABLE_TYPES.Derzeit gibt es einen generischen Benachrichtigungstyp
:custom, der jedoch im Kontext vonafter_save_postnicht besonders nützlich ist, da das Hinzufügen voncustomzu den Typkonstanten bedeuten würde, dass alle Verwendungen des Benachrichtigungstypscustombetroffen wären.Beachten Sie, dass das Assign-Plugin derzeit den Benachrichtigungstyp
:customverwendet, dies jedoch nur für Benachrichtigungen über kleine Aktionen (nicht reguläre Beiträge) und nicht für Abfragen verwendet (da jedes Plugin oder jeder Dienst ihn verwenden kann; es nutzt das Feldmessage, um Assign-Benachrichtigungen nachzuschlagen).