Software /
code /
prosody-modules
Comparison
mod_map/mod_map.lua @ 3651:95f7291db669
mod_map: Include timestamps of first/last message (if reported)
Allows ordering conversations by recent activity or oldest unread.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Fri, 23 Aug 2019 01:16:58 +0200 |
parent | 3650:30743ae1fe1a |
child | 3652:d0c2f001735f |
comparison
equal
deleted
inserted
replaced
3650:30743ae1fe1a | 3651:95f7291db669 |
---|---|
1 | 1 |
2 local st = require "util.stanza"; | 2 local st = require "util.stanza"; |
3 local jid_bare = require "util.jid".bare; | 3 local jid_bare = require "util.jid".bare; |
4 local rsm = require "util.rsm"; | 4 local rsm = require "util.rsm"; |
5 local dataform = require "util.dataforms".new; | 5 local dataform = require "util.dataforms".new; |
6 local datetime = require "util.datetime".datetime; | |
6 | 7 |
7 local archive = module:open_store("archive", "archive"); | 8 local archive = module:open_store("archive", "archive"); |
8 | 9 |
9 local query_form = dataform { | 10 local query_form = dataform { |
10 { name = "with"; type = "jid-single"; }; | 11 { name = "with"; type = "jid-single"; }; |
57 for jid, count in pairs(summary.counts) do | 58 for jid, count in pairs(summary.counts) do |
58 reply:tag("item", { jid = jid }); | 59 reply:tag("item", { jid = jid }); |
59 if type(count) == "number" then | 60 if type(count) == "number" then |
60 reply:text_tag("count", ("%d"):format(count)); | 61 reply:text_tag("count", ("%d"):format(count)); |
61 end | 62 end |
63 if summary.earliest and summary.earliest[jid] then | |
64 reply:text_tag("start", datetime(summary.earliest[jid])); | |
65 end | |
66 if summary.latest and summary.latest[jid] then | |
67 reply:text_tag("end", datetime(summary.latest[jid])); | |
68 end | |
62 reply:up(); | 69 reply:up(); |
63 end | 70 end |
64 | 71 |
65 module:send(reply); | 72 module:send(reply); |
66 return true; | 73 return true; |