Mercurial > prosody-modules
comparison mod_pubsub_text_interface/mod_pubsub_text_interface.lua @ 3328:7d39ffd058d5
mod_pubsub_text_interface: Handle lack of `pubsub:get_last_item` in Prosody 0.10
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Sun, 23 Sep 2018 16:43:03 +0200 |
| parents | f728c8c42860 |
| children | 1f0c290bd28a |
comparison
equal
deleted
inserted
replaced
| 3327:3af2da030397 | 3328:7d39ffd058d5 |
|---|---|
| 10 Commands: | 10 Commands: |
| 11 | 11 |
| 12 - `help` - this help message | 12 - `help` - this help message |
| 13 - `list` - list available nodes | 13 - `list` - list available nodes |
| 14 - `subscribe node` - subscribe to a node | 14 - `subscribe node` - subscribe to a node |
| 15 - `unsubscribe node` - unsubscribe from a node | 15 - `unsubscribe node` - unsubscribe from a node]]; |
| 16 - `last node` - send the last item (again) | 16 if pubsub.get_last_item then -- COMPAT not available in 0.10 |
| 17 ]]; | 17 help = help .. "\n- `last node` - send the last item (again)" |
| 18 end | |
| 18 | 19 |
| 19 module:hook("message/host", function (event) | 20 module:hook("message/host", function (event) |
| 20 local origin, stanza = event.origin, event.stanza; | 21 local origin, stanza = event.origin, event.stanza; |
| 21 local body = stanza:get_child_text("body"); | 22 local body = stanza:get_child_text("body"); |
| 22 if not body then return end -- bail out | 23 if not body then return end -- bail out |
| 46 local ok, err = pubsub:add_subscription(node_arg, from, jid.bare(from), { ["pubsub#include_body"] = true }); | 47 local ok, err = pubsub:add_subscription(node_arg, from, jid.bare(from), { ["pubsub#include_body"] = true }); |
| 47 reply:body(ok and "OK" or err); | 48 reply:body(ok and "OK" or err); |
| 48 elseif command == "unsubscribe" then | 49 elseif command == "unsubscribe" then |
| 49 local ok, err = pubsub:remove_subscription(node_arg, from, jid.bare(from)); | 50 local ok, err = pubsub:remove_subscription(node_arg, from, jid.bare(from)); |
| 50 reply:body(ok and "OK" or err); | 51 reply:body(ok and "OK" or err); |
| 51 elseif command == "last" then | 52 elseif command == "last" and pubsub.get_last_item then |
| 52 local ok, item_id, item = pubsub:get_last_item(node_arg, from); | 53 local ok, item_id, item = pubsub:get_last_item(node_arg, from); |
| 53 if not ok then | 54 if not ok then |
| 54 reply:body(item_id); -- err message | 55 reply:body(item_id); -- err message |
| 55 elseif not item_id then | 56 elseif not item_id then |
| 56 reply:body("node is empty"); | 57 reply:body("node is empty"); |
