plugins/mod_pubsub/mod_pubsub.lua
changeset 13460 e9ab660b9c5f
parent 13343 c94989c557cd
child 13461 3347ed1014b8
equal deleted inserted replaced
13459:2a001cd7f99a 13460:e9ab660b9c5f
   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 });