Mercurial > prosody-modules
comparison mod_nodeinfo2/mod_nodeinfo2.lua @ 3707:3248295e1b16
mod_nodeinfo2: Retrieve message count from mod_measure_message_e2ee for localPosts and localComments.
| author | Emmanuel Gil Peyrot <linkmauve@linkmauve.fr> |
|---|---|
| date | Thu, 10 Oct 2019 17:59:32 +0200 |
| parents | 36b645e94325 |
| children | 0a800463bc08 |
comparison
equal
deleted
inserted
replaced
| 3706:36b645e94325 | 3707:3248295e1b16 |
|---|---|
| 1 local json = require "util.json"; | 1 local json = require "util.json"; |
| 2 local array = require "util.array"; | 2 local array = require "util.array"; |
| 3 local get_stats = require "core.statsmanager".get_stats; | |
| 3 | 4 |
| 4 module:depends("http"); | 5 module:depends("http"); |
| 6 module:depends("measure_message_e2ee"); | |
| 5 | 7 |
| 6 local total_users = 0; | 8 local total_users = 0; |
| 7 for _ in require "core.usermanager".users(module.host) do -- TODO refresh at some interval? | 9 for _ in require "core.usermanager".users(module.host) do -- TODO refresh at some interval? |
| 8 total_users = total_users + 1; | 10 total_users = total_users + 1; |
| 9 end | 11 end |
| 10 | 12 |
| 11 module:provides("http", { | 13 module:provides("http", { |
| 12 default_path = "/.well-known/x-nodeinfo2"; | 14 default_path = "/.well-known/x-nodeinfo2"; |
| 13 route = { | 15 route = { |
| 14 GET = function (event) | 16 GET = function (event) |
| 17 local stats, changed_only, extras = get_stats(); | |
| 18 local message_count = nil; | |
| 19 for stat, value in pairs(stats) do | |
| 20 if stat == "/*/mod_measure_message_e2ee/message:rate" then | |
| 21 message_count = extras[stat].total; | |
| 22 end | |
| 23 end | |
| 24 | |
| 15 event.response.headers.content_type = "application/json"; | 25 event.response.headers.content_type = "application/json"; |
| 16 return json.encode({ | 26 return json.encode({ |
| 17 version = "1.0"; | 27 version = "1.0"; |
| 18 server = { | 28 server = { |
| 19 baseUrl = module:http_url("","/"); | 29 baseUrl = module:http_url("","/"); |
| 47 -- TODO how would one calculate these? | 57 -- TODO how would one calculate these? |
| 48 -- activeHalfyear = 1; | 58 -- activeHalfyear = 1; |
| 49 -- activeMonth = 1; | 59 -- activeMonth = 1; |
| 50 -- activeWeek = 1; | 60 -- activeWeek = 1; |
| 51 }; | 61 }; |
| 52 -- localPosts = 0; | 62 localPosts = message_count; |
| 53 -- localComments = 0; | 63 localComments = message_count; |
| 54 }; | 64 }; |
| 55 }); | 65 }); |
| 56 end; | 66 end; |
| 57 } | 67 } |
| 58 }); | 68 }); |
