diff options
| author | fiaxh <git@lightrise.org> | 2025-11-14 14:48:25 -0600 |
|---|---|---|
| committer | fiaxh <git@lightrise.org> | 2025-11-14 14:48:25 -0600 |
| commit | 1ede8ade12f26cf39d29d5c616bd28693d677e09 (patch) | |
| tree | dc0bb08cd95c1b47291e48766dfd3fbd7acbaf40 /xmpp-vala/src/module/xep/0425_message_moderation.vala | |
| parent | 9f02aba799e07ad2ab587334fe59c577e5d4605d (diff) | |
Add support for message moderation and retraction
Diffstat (limited to 'xmpp-vala/src/module/xep/0425_message_moderation.vala')
| -rw-r--r-- | xmpp-vala/src/module/xep/0425_message_moderation.vala | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/xmpp-vala/src/module/xep/0425_message_moderation.vala b/xmpp-vala/src/module/xep/0425_message_moderation.vala new file mode 100644 index 00000000..80fab905 --- /dev/null +++ b/xmpp-vala/src/module/xep/0425_message_moderation.vala @@ -0,0 +1,19 @@ +namespace Xmpp.Xep.MessageModeration { + + public const string NS_URI = "urn:xmpp:message-moderate:1"; + + + /** + * @return whether the moderation was successful + */ + public static async bool moderate(XmppStream stream, Jid muc_jid, string message_id) { + StanzaNode moderate_node = new StanzaNode.build("moderate", NS_URI) + .add_self_xmlns() + .put_attribute("id", message_id) + .put_node(new StanzaNode.build("retract", Xep.MessageRetraction.NS_URI).add_self_xmlns()); + Iq.Stanza iq = new Iq.Stanza.set(moderate_node) { to = muc_jid }; + + Iq.Stanza result_stanza = yield stream.get_module(Iq.Module.IDENTITY).send_iq_async(stream, iq); + return !result_stanza.is_error(); + } +}
\ No newline at end of file |
