Software /
code /
prosody-modules
Diff
mod_http_muc_log/mod_http_muc_log.lua @ 2826:ed26608920d4
mod_http_muc_log: Switch to an inaccurate but O(1) method of producing the calendar view
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Fri, 17 Nov 2017 16:30:53 +0100 |
parent | 2763:a6d19aea9b73 |
child | 2836:52a7c0f6aea1 |
line wrap: on
line diff
--- a/mod_http_muc_log/mod_http_muc_log.lua Wed Nov 15 22:21:14 2017 +0100 +++ b/mod_http_muc_log/mod_http_muc_log.lua Fri Nov 17 16:30:53 2017 +0100 @@ -77,6 +77,8 @@ return iter(); end +local lazy = module:get_option_boolean(module.name .. "_lazy_calendar", true); + -- Produce the calendar view local function years_page(event, path) local response = event.response; @@ -94,6 +96,14 @@ local t = os_date("!*t", when); dates:set(t.year, t.month, t.day, when); end + elseif lazy then + -- Lazy with many false positives + local first_day = find_once(room, nil, 3); + local last_day = find_once(room, { reverse = true }, 3); + for when = first_day, last_day, 86400 do + local t = os_date("!*t", when); + dates:set(t.year, t.month, t.day, when ); + end else -- Collect date the hard way module:log("debug", "Find all dates with messages");