Software /
code /
prosody-modules
Changeset
6174:877416deacfa
mod_storage_metronome_readonly: Sort the days first before iterating on MUC MAM entries
author | Link Mauve <linkmauve@linkmauve.fr> |
---|---|
date | Wed, 29 Jan 2025 00:20:01 +0100 |
parents | 6173:f99f730f2b84 |
children | 6175:e2d130104b98 |
files | mod_storage_metronome_readonly/mod_storage_metronome_readonly.lua |
diffstat | 1 files changed, 18 insertions(+), 13 deletions(-) [+] |
line wrap: on
line diff
--- a/mod_storage_metronome_readonly/mod_storage_metronome_readonly.lua Tue Jan 28 22:27:35 2025 +0100 +++ b/mod_storage_metronome_readonly/mod_storage_metronome_readonly.lua Wed Jan 29 00:20:01 2025 +0100 @@ -332,20 +332,25 @@ elseif self.store == "muc_log" then local base_path = datamanager.getpath("", host, "stanza_log"):sub(1, -5); + local days = {}; + for date in dir(base_path) do + if date ~= "." and date ~= ".." then + table.insert(days, date); + end + end + table.sort(days); local list = {}; - for dir_name in dir(base_path) do - if dir_name ~= "." and dir_name ~= ".." then - local path = base_path..dir_name.."/"..encode(username)..".dat"; - local get_data = envloadfile(path, {}); - if get_data then - local success, data = pcall(get_data); - if not success then - module:log("error", "Unable to load metronome storage"); - return nil, "Error reading storage"; - end - for key, item, when in parse_logs(data) do - table.insert(list, {key, item, when}); - end + for _, date in ipairs(days) do + local path = base_path..date.."/"..encode(username)..".dat"; + local get_data = envloadfile(path, {}); + if get_data then + local success, data = pcall(get_data); + if not success then + module:log("error", "Unable to load metronome storage"); + return nil, "Error reading storage"; + end + for key, item, when in parse_logs(data) do + table.insert(list, {key, item, when}); end end end