comparison mod_mam/mod_mam.lua @ 672:8ae5317ba032

mod_mam: local tostring and some comments
author Kim Alvefur <zash@zash.se>
date Thu, 24 May 2012 22:37:14 +0200
parents 74efb2db00a6
children 9dcf98018644
comparison
equal deleted inserted replaced
671:74efb2db00a6 672:8ae5317ba032
17 local dm_store = require "util.datamanager".store; 17 local dm_store = require "util.datamanager".store;
18 local dm_list_load = require "util.datamanager".list_load; 18 local dm_list_load = require "util.datamanager".list_load;
19 local dm_list_append = require "util.datamanager".list_append; 19 local dm_list_append = require "util.datamanager".list_append;
20 local rm_load_roster = require "core.rostermanager".load_roster; 20 local rm_load_roster = require "core.rostermanager".load_roster;
21 21
22 local tostring = tostring;
22 local time_now = os.time; 23 local time_now = os.time;
23 local timestamp, timestamp_parse = require "util.datetime".datetime, require "util.datetime".parse; 24 local timestamp, timestamp_parse = require "util.datetime".datetime, require "util.datetime".parse;
24 local uuid = require "util.uuid".generate; 25 local uuid = require "util.uuid".generate;
25 local global_default_policy = module:get_option("default_archive_policy", false); 26 local global_default_policy = module:get_option("default_archive_policy", false);
26 -- TODO Should be possible to enforce it too 27 -- TODO Should be possible to enforce it too
27 28
29 -- For translating preference names from string to boolean and back
28 local default_attrs = { 30 local default_attrs = {
29 always = true, [true] = "always", 31 always = true, [true] = "always",
30 never = false, [false] = "never", 32 never = false, [false] = "never",
31 roster = "roster", 33 roster = "roster",
32 } 34 }
223 module:log("debug", "Archiving stanza: %s", stanza:top_tag()); 225 module:log("debug", "Archiving stanza: %s", stanza:top_tag());
224 226
225 local id = uuid(); 227 local id = uuid();
226 local when = time_now(); 228 local when = time_now();
227 -- And stash it 229 -- And stash it
228 dm_list_append(store_user, store_host, "archive2", { 230 local ok, err = dm_list_append(store_user, store_host, "archive2", {
229 -- WARNING This format may change. 231 -- WARNING This format may change.
230 id = id, 232 id = id,
231 when = when, -- This might be an UNIX timestamp. Probably. 233 when = when, -- This might be an UNIX timestamp. Probably.
232 timestamp = timestamp(when), -- Textual timestamp. But I'll assume that comparing numbers is faster and less annoying in case of timezones. 234 timestamp = timestamp(when), -- Textual timestamp. But I'll assume that comparing numbers is faster and less annoying in case of timezones.
233 with = target_jid, 235 with = target_jid,
234 with_bare = target_bare, -- Optimization, to avoid loads of jid_bare() calls when filtering. 236 with_bare = target_bare, -- Optimization, to avoid loads of jid_bare() calls when filtering.
235 stanza = st.preserialize(stanza) 237 stanza = st.preserialize(stanza)
236 }); 238 });
239 --[[ This was dropped from the spec
240 if ok then
241 stanza:tag("archived", { xmlns = xmlns_mam, by = host, id = id }):up();
242 end
243 --]]
237 else 244 else
238 module:log("debug", "Not archiving stanza: %s", stanza:top_tag()); 245 module:log("debug", "Not archiving stanza: %s", stanza:top_tag());
239 end 246 end
240 end 247 end
241 248