Software /
code /
prosody-modules
Comparison
mod_muc_intercom/mod_muc_intercom.lua @ 285:108ac6f16d2d
mod_muc_intercom: Add a delay to the forwarded message.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Wed, 08 Dec 2010 19:01:13 +0100 |
parent | 280:6d72c5172c74 |
child | 1425:9c894b56b4e4 |
comparison
equal
deleted
inserted
replaced
284:3b96bba9f7e5 | 285:108ac6f16d2d |
---|---|
2 -- By Kim Alvefur <zash@zash.se> | 2 -- By Kim Alvefur <zash@zash.se> |
3 | 3 |
4 local host_session = prosody.hosts[module.host]; | 4 local host_session = prosody.hosts[module.host]; |
5 local st_msg = require "util.stanza".message; | 5 local st_msg = require "util.stanza".message; |
6 local jid = require "util.jid"; | 6 local jid = require "util.jid"; |
7 local now = require "util.datetime".datetime; | |
7 | 8 |
8 function check_message(data) | 9 function check_message(data) |
9 local origin, stanza = data.origin, data.stanza; | 10 local origin, stanza = data.origin, data.stanza; |
10 local muc_rooms = host_session.muc and host_session.muc.rooms; | 11 local muc_rooms = host_session.muc and host_session.muc.rooms; |
11 if not muc_rooms then return; end | 12 if not muc_rooms then return; end |
31 if not muc_rooms[bare_room] then return; end -- TODO send a error | 32 if not muc_rooms[bare_room] then return; end -- TODO send a error |
32 module:log("info", "message from %s in %s to %s", from_nick, from_room, target_room); | 33 module:log("info", "message from %s in %s to %s", from_nick, from_room, target_room); |
33 | 34 |
34 local sender = jid.join(target_room, module.host, from_room .. "/" .. from_nick); | 35 local sender = jid.join(target_room, module.host, from_room .. "/" .. from_nick); |
35 local forward_stanza = st_msg({from = sender, to = bare_room, type = "groupchat"}, message); | 36 local forward_stanza = st_msg({from = sender, to = bare_room, type = "groupchat"}, message); |
37 forward_stanza:tag("delay", { xmlns = 'urn:xmpp:delay', from = from_room_jid, stamp = now() }):up(); | |
36 | 38 |
37 module:log("debug", "broadcasting message to target room"); | 39 module:log("debug", "broadcasting message to target room"); |
38 muc_rooms[bare_room]:broadcast_message(forward_stanza); | 40 muc_rooms[bare_room]:broadcast_message(forward_stanza); |
39 end | 41 end |
40 | 42 |