From ddbb00ee56ca8ddc5db3ed9b6f4003bb6020ed6b Mon Sep 17 00:00:00 2001 From: fiaxh Date: Fri, 22 May 2026 17:09:04 +0200 Subject: Add support for MUC affiliations versioning (XEP-0463), add affiliation storage --- .../xep/0463_muc_affiliations_versioning.vala | 24 ++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 xmpp-vala/src/module/xep/0463_muc_affiliations_versioning.vala (limited to 'xmpp-vala/src/module/xep/0463_muc_affiliations_versioning.vala') 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 -- cgit v1.3