Comparison

mod_pubsub_text_interface/mod_pubsub_text_interface.lua @ 3488:4ddb034a8a03

mod_pubsub_text_interface: Add command for listing current subscriptions
author Kim Alvefur <zash@zash.se>
date Fri, 15 Mar 2019 04:26:54 +0100
parent 3429:1f0c290bd28a
child 3489:33b3f02a9e7d
comparison
equal deleted inserted replaced
3487:e60933722248 3488:4ddb034a8a03
9 9
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 - `subscriptions` - list nodes you are subscribed to
14 - `subscribe node` - subscribe to a node 15 - `subscribe node` - subscribe to a node
15 - `unsubscribe node` - unsubscribe from a node]]; 16 - `unsubscribe node` - unsubscribe from a node]];
16 if pubsub.get_last_item then -- COMPAT not available in 0.10 17 if pubsub.get_last_item then -- COMPAT not available in 0.10
17 help = help .. "\n- `last node` - send the last item (again)" 18 help = help .. "\n- `last node` - send the last item (again)"
18 end 19 end
41 end 42 end
42 reply:body(table.concat(list, "\n")); 43 reply:body(table.concat(list, "\n"));
43 else 44 else
44 reply:body(nodes); 45 reply:body(nodes);
45 end 46 end
47 elseif command == "subscriptions" then
48 local ok, subs = pubsub:get_subscriptions(nil, from, from);
49 if not ok then
50 reply:body(subs);
51 elseif #subs == 0 then
52 reply:body("You are not subscribed to anything from this pubsub service");
53 else
54 local response = {};
55 for i = 1, #subs do
56 response[i] = string.format("- `%s`", subs[i].node);
57 end
58 reply:body(table.concat(response, "\n"));
59 end
46 elseif command == "subscribe" then 60 elseif command == "subscribe" then
47 local ok, err = pubsub:add_subscription(node_arg, from, jid.bare(from), { ["pubsub#include_body"] = true }); 61 local ok, err = pubsub:add_subscription(node_arg, from, jid.bare(from), { ["pubsub#include_body"] = true });
48 reply:body(ok and "OK" or err); 62 reply:body(ok and "OK" or err);
49 elseif command == "unsubscribe" then 63 elseif command == "unsubscribe" then
50 local ok, err = pubsub:remove_subscription(node_arg, from, jid.bare(from)); 64 local ok, err = pubsub:remove_subscription(node_arg, from, jid.bare(from));