aboutsummaryrefslogtreecommitdiff
path: root/xmpp-vala/src/module/xep/0059_result_set_management.vala
diff options
context:
space:
mode:
authorfiaxh <git@lightrise.org>2022-07-08 16:33:40 +0200
committerfiaxh <git@lightrise.org>2022-10-10 21:55:15 +0200
commit6c6e7e3aa7935ec513b7e5ea9b53a92b741ecf92 (patch)
treef92df8980bb6e65d9ce81f1395773201b664a779 /xmpp-vala/src/module/xep/0059_result_set_management.vala
parent9c736af765d8c62838440afbfd2ad7ee78b44951 (diff)
downloaddino-6c6e7e3aa7935ec513b7e5ea9b53a92b741ecf92.tar.gz
dino-6c6e7e3aa7935ec513b7e5ea9b53a92b741ecf92.zip
Rewrite MAM logic and add MUC MAM
Diffstat (limited to 'xmpp-vala/src/module/xep/0059_result_set_management.vala')
-rw-r--r--xmpp-vala/src/module/xep/0059_result_set_management.vala30
1 files changed, 30 insertions, 0 deletions
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