plugins/muc/muc.lib.lua
changeset 7122 50b9a7e86de9
parent 7092 890f4b2cc444
child 7123 a6afe52159f1
equal deleted inserted replaced
7119:ecba5fee4867 7122:50b9a7e86de9
   308 function room_mt:get_disco_info(stanza)
   308 function room_mt:get_disco_info(stanza)
   309 	local reply = st.reply(stanza):query("http://jabber.org/protocol/disco#info");
   309 	local reply = st.reply(stanza):query("http://jabber.org/protocol/disco#info");
   310 	local form = dataform.new {
   310 	local form = dataform.new {
   311 		{ name = "FORM_TYPE", type = "hidden", value = "http://jabber.org/protocol/muc#roominfo" };
   311 		{ name = "FORM_TYPE", type = "hidden", value = "http://jabber.org/protocol/muc#roominfo" };
   312 	};
   312 	};
   313 	module:fire_event("muc-disco#info", {room = self; reply = reply; form = form;});
   313 	local formdata = {};
   314 	reply:add_child(form:form(nil, "result"));
   314 	module:fire_event("muc-disco#info", {room = self; reply = reply; form = form, formdata = formdata ;});
       
   315 	reply:add_child(form:form(formdata, "result"));
   315 	return reply;
   316 	return reply;
   316 end
   317 end
   317 module:hook("muc-disco#info", function(event)
   318 module:hook("muc-disco#info", function(event)
   318 	event.reply:tag("feature", {var = "http://jabber.org/protocol/muc"}):up();
   319 	event.reply:tag("feature", {var = "http://jabber.org/protocol/muc"}):up();
   319 end);
   320 end);
   320 module:hook("muc-disco#info", function(event)
   321 module:hook("muc-disco#info", function(event)
   321 	local count = iterators.count(event.room:each_occupant());
   322 	table.insert(event.form, { name = "muc#roominfo_occupants", label = "Number of occupants" });
   322 	table.insert(event.form, { name = "muc#roominfo_occupants", label = "Number of occupants", value = tostring(count) });
   323 	event.formdata["muc#roominfo_occupants"] = tostring(iterators.count(event.room:each_occupant()));
   323 end);
   324 end);
   324 
   325 
   325 function room_mt:get_disco_items(stanza)
   326 function room_mt:get_disco_items(stanza)
   326 	local reply = st.reply(stanza):query("http://jabber.org/protocol/disco#items");
   327 	local reply = st.reply(stanza):query("http://jabber.org/protocol/disco#items");
   327 	for room_jid in self:each_occupant() do
   328 	for room_jid in self:each_occupant() do