Mercurial > prosody-modules
diff mod_storage_xmlarchive/mod_storage_xmlarchive.lua @ 2633:1330ed88ecd8
mod_storage_xmlarchive: Cache current date in a local
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Tue, 21 Mar 2017 11:17:17 +0100 |
parents | 995d4d9f5d89 |
children | 71ce798c86cc |
line wrap: on
line diff
--- a/mod_storage_xmlarchive/mod_storage_xmlarchive.lua Tue Mar 21 10:56:56 2017 +0100 +++ b/mod_storage_xmlarchive/mod_storage_xmlarchive.lua Tue Mar 21 11:17:17 2017 +0100 @@ -177,10 +177,11 @@ return function () if limit and count >= limit then if xmlfile then xmlfile:close() end return; end for d = start_day, last_day, step do + local date = dates[d]; if not items then - module:log("debug", "Loading items from %s", dates[d]); + module:log("debug", "Loading items from %s", date); start_day = d; - items = dm.list_load(username .. "@" .. dates[d], module.host, self.store) or empty; + items = dm.list_load(username .. "@" .. date, module.host, self.store) or empty; if not rev then first_item, last_item = 1, #items; else @@ -192,7 +193,7 @@ for i = first_item, last_item, step do local item = items[i]; if not item then - module:log("warn", "data[%q][%d] is nil", dates[d], i); + module:log("warn", "data[%q][%d] is nil", date, i); break; end local i_when, i_with = item.when, item.with; @@ -200,7 +201,7 @@ i_when = dt.parse(i_when); end if type(i_when) ~= "number" then - module:log("warn", "data[%q][%d].when is invalid", dates[d], i); + module:log("warn", "data[%q][%d].when is invalid", date, i); break; end if (not q_with or i_with == q_with) @@ -209,7 +210,7 @@ count = count + 1; first_item = i + step; - local data = read_xml(dates[d], item.offset, item.length); + local data = read_xml(date, item.offset, item.length); if not data then return end local ok, err = stream:feed(data); if not ok then