From 6c6e7e3aa7935ec513b7e5ea9b53a92b741ecf92 Mon Sep 17 00:00:00 2001 From: fiaxh Date: Fri, 8 Jul 2022 16:33:40 +0200 Subject: Rewrite MAM logic and add MUC MAM --- .../src/module/xep/0059_result_set_management.vala | 30 ++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 xmpp-vala/src/module/xep/0059_result_set_management.vala (limited to 'xmpp-vala/src/module/xep/0059_result_set_management.vala') diff --git a/xmpp-vala/src/module/xep/0059_result_set_management.vala b/xmpp-vala/src/module/xep/0059_result_set_management.vala new file mode 100644 index 00000000..acd630dc --- /dev/null +++ b/xmpp-vala/src/module/xep/0059_result_set_management.vala @@ -0,0 +1,30 @@ +namespace Xmpp.ResultSetManagement { + public const string NS_URI = "http://jabber.org/protocol/rsm"; + + public class ResultSetParameters { + string? before { get; set; } + string? after { get; set; } + int? max { get; set; } + } + + public StanzaNode create_set_rsm_node_before(string? before_id) { + var max_node = (new StanzaNode.build("max", Xmpp.ResultSetManagement.NS_URI)).put_node(new StanzaNode.text("20")); + var node = (new StanzaNode.build("set", Xmpp.ResultSetManagement.NS_URI)).add_self_xmlns() + .put_node(max_node); + var before_node = new StanzaNode.build("before", Xmpp.ResultSetManagement.NS_URI); + if (before_id != null) before_node.put_node(new StanzaNode.text(before_id)); + node.put_node(before_node); + return node; + } + + public StanzaNode create_set_rsm_node_after(string after_id) { + var max_node = (new StanzaNode.build("max", Xmpp.ResultSetManagement.NS_URI)).put_node(new StanzaNode.text("20")); + var node = (new StanzaNode.build("set", Xmpp.ResultSetManagement.NS_URI)).add_self_xmlns() + .put_node(max_node); + + var after_node = new StanzaNode.build("after", Xmpp.ResultSetManagement.NS_URI) + .put_node(new StanzaNode.text(after_id)); + node.put_node(after_node); + return node; + } +} \ No newline at end of file -- cgit v1.2.3-54-g00ecf