Software /
code /
prosody-modules
Comparison
mod_nodeinfo2/mod_nodeinfo2.lua @ 3710:7f5ce667d93e
mod_nodeinfo2: Store and restore the total message count.
author | Emmanuel Gil Peyrot <linkmauve@linkmauve.fr> |
---|---|
date | Thu, 10 Oct 2019 21:07:45 +0200 |
parent | 3708:0a800463bc08 |
child | 3781:263f5f1ee71f |
comparison
equal
deleted
inserted
replaced
3709:d3d27f2558fb | 3710:7f5ce667d93e |
---|---|
35 half_year_users = nil; | 35 half_year_users = nil; |
36 month_users = nil; | 36 month_users = nil; |
37 week_users = nil; | 37 week_users = nil; |
38 end | 38 end |
39 | 39 |
40 local message_count_store = module:open_store("message_count"); | |
41 local message_count = message_count_store:get("message_count"); | |
42 | |
40 module:provides("http", { | 43 module:provides("http", { |
41 default_path = "/.well-known/x-nodeinfo2"; | 44 default_path = "/.well-known/x-nodeinfo2"; |
42 route = { | 45 route = { |
43 GET = function (event) | 46 GET = function (event) |
44 local stats, changed_only, extras = get_stats(); | 47 local stats, changed_only, extras = get_stats(); |
45 local message_count = nil; | |
46 for stat, _ in pairs(stats) do | 48 for stat, _ in pairs(stats) do |
47 if stat == "/*/mod_measure_message_e2ee/message:rate" then | 49 if stat == "/*/mod_measure_message_e2ee/message:rate" then |
48 message_count = extras[stat].total; | 50 local new_message_count = extras[stat].total; |
51 if new_message_count ~= message_count then | |
52 message_count = new_message_count; | |
53 message_count_store:set("message_count", message_count); | |
54 end | |
49 end | 55 end |
50 end | 56 end |
51 | 57 |
52 event.response.headers.content_type = "application/json"; | 58 event.response.headers.content_type = "application/json"; |
53 return json.encode({ | 59 return json.encode({ |