248 |
248 |
249 jid = module.host; |
249 jid = module.host; |
250 normalize_jid = jid_bare; |
250 normalize_jid = jid_bare; |
251 })); |
251 })); |
252 end |
252 end |
|
253 |
|
254 local function get_service(service_jid) |
|
255 return assert(assert(prosody.hosts[service_jid], "Unknown pubsub service").modules.pubsub, "Not a pubsub service").service; |
|
256 end |
|
257 |
|
258 module:add_item("shell-command", { |
|
259 section = "pubsub"; |
|
260 section_desc = "Manage publish/subscribe nodes"; |
|
261 name = "create_node"; |
|
262 desc = "Create a node with the specified name"; |
|
263 args = { |
|
264 { name = "service_jid", type = "string" }; |
|
265 { name = "node_name", type = "string" }; |
|
266 }; |
|
267 host_selector = "service_jid"; |
|
268 |
|
269 handler = function (self, service_jid, node_name) --luacheck: ignore 212/self |
|
270 return get_service(service_jid):create(node_name, true); |
|
271 end; |
|
272 }); |
|
273 |
|
274 module:add_item("shell-command", { |
|
275 section = "pubsub"; |
|
276 section_desc = "Manage publish/subscribe nodes"; |
|
277 name = "list_nodes"; |
|
278 desc = "List nodes on a pubsub service"; |
|
279 args = { |
|
280 { name = "service_jid", type = "string" }; |
|
281 }; |
|
282 host_selector = "service_jid"; |
|
283 |
|
284 handler = function (self, service_jid) --luacheck: ignore 212/self |
|
285 local service = get_service(service_jid); |
|
286 local nodes = select(2, assert(service:get_nodes(true))); |
|
287 local count = 0; |
|
288 for node_name in pairs(nodes) do |
|
289 count = count + 1; |
|
290 self.session.print(node_name); |
|
291 end |
|
292 return true, ("%d nodes"):format(count); |
|
293 end; |
|
294 }); |