MUC: Include occupant count in room disco#info response.
authorWaqas Hussain <waqas20@gmail.com>
Sat, 7 May 2011 16:17:03 +0000 (21:17 +0500)
committerWaqas Hussain <waqas20@gmail.com>
Sat, 7 May 2011 16:17:03 +0000 (21:17 +0500)
plugins/muc/muc.lib.lua

index 647bf9152cd705c986f9594a412a19b06cae7dda..ec85d185d301645cc8b27daac668ef5380d6d60b 100644 (file)
@@ -213,6 +213,7 @@ function room_mt:send_history(to, stanza)
 end
 
 function room_mt:get_disco_info(stanza)
+       local count = 0; for _ in pairs(self._occupants) do count = count + 1; end
        return st.reply(stanza):query("http://jabber.org/protocol/disco#info")
                :tag("identity", {category="conference", type="text", name=self:get_name()}):up()
                :tag("feature", {var="http://jabber.org/protocol/muc"}):up()
@@ -224,7 +225,8 @@ function room_mt:get_disco_info(stanza)
                :tag("feature", {var=self._data.whois ~= "anyone" and "muc_semianonymous" or "muc_nonanonymous"}):up()
                :add_child(dataform.new({
                        { name = "FORM_TYPE", type = "hidden", value = "http://jabber.org/protocol/muc#roominfo" },
-                       { name = "muc#roominfo_description", label = "Description"}
+                       { name = "muc#roominfo_description", label = "Description"},
+                       { name = "muc#roominfo_occupants", label = "Number of occupants", value = tostring(count) }
                }):form({["muc#roominfo_description"] = self:get_description()}, 'result'))
        ;
 end