2393
|
1 local add_filter = require "util.filters".add_filter;
|
|
2 local remove_filter = require "util.filters".remove_filter;
|
|
3 local datetime = require "util.datetime";
|
|
4
|
|
5 local xmlns_delay = "urn:xmpp:delay";
|
|
6
|
|
7 -- Raise an error if the modules has been loaded as a component in prosody's config
|
|
8 if module:get_host_type() == "component" then
|
|
9 error(module.name.." should NOT be loaded as a component, check out http://prosody.im/doc/components", 0);
|
|
10 end
|
|
11
|
|
12 local add_delay = function(stanza, session)
|
|
13 if stanza and stanza.name == "message" and stanza:get_child("delay", xmlns_delay) == nil then
|
|
14 -- session.log("debug", "adding delay to message %s", tostring(stanza));
|
|
15 stanza = stanza:tag("delay", { xmlns = xmlns_delay, from = session.host, stamp = datetime.datetime()});
|
|
16 end
|
|
17 return stanza;
|
|
18 end
|
|
19
|
|
20 module:hook("resource-bind", function(event)
|
|
21 add_filter(event.session, "stanzas/in", add_delay, 1);
|
|
22 end);
|
|
23
|
|
24 module:hook("pre-resource-unbind", function (event)
|
|
25 remove_filter(event.session, "stanzas/in", add_delay);
|
|
26 end);
|