diff options
author | fiaxh <git@lightrise.org> | 2022-07-08 16:33:40 +0200 |
---|---|---|
committer | fiaxh <git@lightrise.org> | 2022-10-10 21:55:15 +0200 |
commit | 6c6e7e3aa7935ec513b7e5ea9b53a92b741ecf92 (patch) | |
tree | f92df8980bb6e65d9ce81f1395773201b664a779 /xmpp-vala/src/module/xep/0059_result_set_management.vala | |
parent | 9c736af765d8c62838440afbfd2ad7ee78b44951 (diff) | |
download | dino-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.vala | 30 |
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 |