Comparison

plugins/mod_offline.lua @ 11200:bf8f2da84007

Merge 0.11->trunk
author Kim Alvefur <zash@zash.se>
date Thu, 05 Nov 2020 22:31:25 +0100
parent 10296:7072569044d4
child 12977:74b9e05af71e
comparison
equal deleted inserted replaced
11199:6c7c50a4de32 11200:bf8f2da84007
22 node = jid_split(to) 22 node = jid_split(to)
23 else 23 else
24 node = origin.username; 24 node = origin.username;
25 end 25 end
26 26
27 return offline_messages:append(node, nil, stanza, os.time(), ""); 27 local ok = offline_messages:append(node, nil, stanza, os.time(), "");
28 if ok then
29 module:log("debug", "Saved to offline storage: %s", stanza:top_tag());
30 end
31 return ok;
28 end, -1); 32 end, -1);
29 33
30 module:hook("message/offline/broadcast", function(event) 34 module:hook("message/offline/broadcast", function(event)
31 local origin = event.origin; 35 local origin = event.origin;
36 origin.log("debug", "Broadcasting offline messages");
32 37
33 local node, host = origin.username, origin.host; 38 local node, host = origin.username, origin.host;
34 39
35 local data = offline_messages:find(node); 40 local data = offline_messages:find(node);
36 if not data then return true; end 41 if not data then return true; end
37 for _, stanza, when in data do 42 for _, stanza, when in data do
38 stanza:tag("delay", {xmlns = "urn:xmpp:delay", from = host, stamp = datetime.datetime(when)}):up(); -- XEP-0203 43 stanza:tag("delay", {xmlns = "urn:xmpp:delay", from = host, stamp = datetime.datetime(when)}):up(); -- XEP-0203
39 origin.send(stanza); 44 origin.send(stanza);
40 end 45 end
41 offline_messages:delete(node); 46 local ok = offline_messages:delete(node);
47 if type(ok) == "number" and ok > 0 then
48 origin.log("debug", "%d offline messages consumed");
49 end
42 return true; 50 return true;
43 end, -1); 51 end, -1);