Mercurial > prosody-hg
comparison plugins/muc/muc.lib.lua @ 6217:657c707d9229
plugins/muc/muc.lib: Use util.iterators to count occupants
| author | daurnimator <quae@daurnimator.com> |
|---|---|
| date | Thu, 03 Apr 2014 16:10:43 -0400 |
| parents | 50b8b7caf200 |
| children | bf11910bad5a |
comparison
equal
deleted
inserted
replaced
| 6216:50b8b7caf200 | 6217:657c707d9229 |
|---|---|
| 11 local pairs, ipairs = pairs, ipairs; | 11 local pairs, ipairs = pairs, ipairs; |
| 12 local next = next; | 12 local next = next; |
| 13 local setmetatable = setmetatable; | 13 local setmetatable = setmetatable; |
| 14 | 14 |
| 15 local dataform = require "util.dataforms"; | 15 local dataform = require "util.dataforms"; |
| 16 local iterators = require "util.iterators"; | |
| 16 local jid_split = require "util.jid".split; | 17 local jid_split = require "util.jid".split; |
| 17 local jid_bare = require "util.jid".bare; | 18 local jid_bare = require "util.jid".bare; |
| 18 local jid_prep = require "util.jid".prep; | 19 local jid_prep = require "util.jid".prep; |
| 19 local st = require "util.stanza"; | 20 local st = require "util.stanza"; |
| 20 local log = require "util.logger".init("mod_muc"); | 21 local log = require "util.logger".init("mod_muc"); |
| 311 end); | 312 end); |
| 312 module:hook("muc-disco#info", function(event) | 313 module:hook("muc-disco#info", function(event) |
| 313 event.reply:tag("feature", {var = event.room:get_hidden() and "muc_hidden" or "muc_public"}):up(); | 314 event.reply:tag("feature", {var = event.room:get_hidden() and "muc_hidden" or "muc_public"}):up(); |
| 314 end); | 315 end); |
| 315 module:hook("muc-disco#info", function(event) | 316 module:hook("muc-disco#info", function(event) |
| 316 local count = 0; for _ in event.room:each_occupant() do count = count + 1; end | 317 local count = iterators.count(event.room:each_occupant()); |
| 317 table.insert(event.form, { name = "muc#roominfo_occupants", label = "Number of occupants", value = tostring(count) }); | 318 table.insert(event.form, { name = "muc#roominfo_occupants", label = "Number of occupants", value = tostring(count) }); |
| 318 end); | 319 end); |
| 319 | 320 |
| 320 function room_mt:get_disco_items(stanza) | 321 function room_mt:get_disco_items(stanza) |
| 321 local reply = st.reply(stanza):query("http://jabber.org/protocol/disco#items"); | 322 local reply = st.reply(stanza):query("http://jabber.org/protocol/disco#items"); |
