aboutsummaryrefslogtreecommitdiff
path: root/xmpp-vala/src/module/xep/0463_muc_affiliations_versioning.vala
diff options
context:
space:
mode:
authorfiaxh <git@lightrise.org>2026-05-22 17:09:04 +0200
committerfiaxh <git@lightrise.org>2026-05-22 17:11:37 +0200
commitddbb00ee56ca8ddc5db3ed9b6f4003bb6020ed6b (patch)
tree9e59681e4c89f747ce4d83ab3cb5b0aedc4f523b /xmpp-vala/src/module/xep/0463_muc_affiliations_versioning.vala
parent9abf8f6869bc35c76bdfa86416012d4e7f0dda78 (diff)
Add support for MUC affiliations versioning (XEP-0463), add affiliation storage
Diffstat (limited to 'xmpp-vala/src/module/xep/0463_muc_affiliations_versioning.vala')
-rw-r--r--xmpp-vala/src/module/xep/0463_muc_affiliations_versioning.vala24
1 files changed, 24 insertions, 0 deletions
diff --git a/xmpp-vala/src/module/xep/0463_muc_affiliations_versioning.vala b/xmpp-vala/src/module/xep/0463_muc_affiliations_versioning.vala
new file mode 100644
index 00000000..ba7edcb9
--- /dev/null
+++ b/xmpp-vala/src/module/xep/0463_muc_affiliations_versioning.vala
@@ -0,0 +1,24 @@
+using Gee;
+
+namespace Xmpp.Xep.MucAffiliationsVersioning {
+
+ public const string NS_URI = "urn:xmpp:muc:affiliations:1";
+
+ public static StanzaNode get_join_presence_node(string? since) {
+ var stanza_node = new StanzaNode.build("mav", NS_URI).add_self_xmlns();
+ if (since != null) {
+ stanza_node.put_attribute("since", since);
+ }
+ return stanza_node;
+ }
+
+ public static string? get_mav_since(StanzaNode outer_node) {
+ StanzaNode? mav_node = outer_node.get_subnode("mav", MucAffiliationsVersioning.NS_URI);
+ return mav_node != null ? mav_node.get_attribute("since", MucAffiliationsVersioning.NS_URI) : null;
+ }
+
+ public static string? get_mav_until(StanzaNode outer_node) {
+ StanzaNode? mav_node = outer_node.get_subnode("mav", MucAffiliationsVersioning.NS_URI);
+ return mav_node != null ? mav_node.get_attribute("until", MucAffiliationsVersioning.NS_URI) : null;
+ }
+} \ No newline at end of file