Mercurial > prosody-modules
comparison mod_http_muc_log/mod_http_muc_log.lua @ 1605:c8a51d1bc96d
mod_http_muc_log: Sort date list in reverse
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Mon, 09 Feb 2015 00:47:38 +0100 |
| parents | 8e282eb0c70c |
| children | 2c8b985ebde5 |
comparison
equal
deleted
inserted
replaced
| 1604:53052a610c67 | 1605:c8a51d1bc96d |
|---|---|
| 99 local room = nodeprep(path:match("^(.*)/$")); | 99 local room = nodeprep(path:match("^(.*)/$")); |
| 100 if not room or not public_room(room) then return end | 100 if not room or not public_room(room) then return end |
| 101 | 101 |
| 102 local dates, i = {}, 1; | 102 local dates, i = {}, 1; |
| 103 module:log("debug", "Find all dates with messages"); | 103 module:log("debug", "Find all dates with messages"); |
| 104 local next_day; | 104 local prev_day; |
| 105 repeat | 105 repeat |
| 106 local iter = archive:find(room, { | 106 local iter = archive:find(room, { |
| 107 ["start"] = next_day; | 107 ["end"] = prev_day; |
| 108 limit = 1; | 108 limit = 1; |
| 109 with = "message<groupchat"; | 109 with = "message<groupchat"; |
| 110 reverse = true; | |
| 110 }) | 111 }) |
| 111 if not iter then break end | 112 if not iter then break end |
| 112 next_day = nil; | 113 prev_day = nil; |
| 113 for key, message, when in iter do | 114 for key, message, when in iter do |
| 114 next_day = datetime.date(when); | 115 prev_day = datetime.date(when); |
| 115 dates[i], i = { | 116 dates[i], i = { |
| 116 date = next_day; | 117 date = prev_day; |
| 117 }, i + 1; | 118 }, i + 1; |
| 118 next_day = datetime.parse(next_day .. "T23:59:59Z") + 1; | 119 prev_day = datetime.parse(prev_day .. "T00:00:00Z") - 1; |
| 119 break; | 120 break; |
| 120 end | 121 end |
| 121 until not next_day; | 122 until not prev_day; |
| 122 | 123 |
| 123 response.headers.content_type = "text/html; charset=utf-8"; | 124 response.headers.content_type = "text/html; charset=utf-8"; |
| 124 return render(template, { | 125 return render(template, { |
| 125 title = get_room(room):get_name(); | 126 title = get_room(room):get_name(); |
| 126 jid = get_room(room).jid; | 127 jid = get_room(room).jid; |
