Mercurial > prosody-modules
view mod_broadcast/mod_broadcast.lua @ 790:4f9cd19c4658
mod_twitter: fixed to depend on Prosody's internal util.json. TODO: Discuss (MattJ, Zash, Waqas, Maranda) about migration all json content to use cjson ( http://www.kyne.com.au/~mark/software/lua-cjson-manual.html ) library instead
author | Vadim Misbakh-Soloviov <mva@mva.name> |
---|---|
date | Fri, 10 Aug 2012 07:42:53 +0700 |
parents | e318a341d332 |
children | 0fc9e1f086c1 |
line wrap: on
line source
local allowed_senders = module:get_option_set("broadcast_senders", {}); local jid_bare = require "util.jid".bare; function send_to_online(message) local c = 0; for hostname, host_session in pairs(hosts) do if host_session.sessions then for username in pairs(host_session.sessions) do c = c + 1; message.attr.to = username.."@"..hostname; module:send(message); end end end return c; end function send_message(event) local stanza = event.stanza; if allowed_senders:contains(jid_bare(stanza.attr.from)) then local c = send_to_online(stanza); module:log("debug", "Broadcast stanza from %s to %d online users", stanza.attr.from, c); return true; else module:log("warn", "Broadcasting is not allowed for %s", stanza.attr.from); end end module:hook("message/bare", send_message);