Software /
code /
prosody-modules
Changeset
3705:5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
https://git.feneas.org/jaywink/nodeinfo2
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Tue, 25 Jun 2019 09:05:59 +0200 |
parents | 3704:c6563625f60e |
children | 3706:36b645e94325 |
files | mod_nodeinfo2/mod_nodeinfo2.lua |
diffstat | 1 files changed, 58 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mod_nodeinfo2/mod_nodeinfo2.lua Tue Jun 25 09:05:59 2019 +0200 @@ -0,0 +1,58 @@ +local json = require "util.json"; +local array = require "util.array"; + +module:depends("http"); + +local total_users = 0; +for _ in require "core.usermanager".users(module.host) do + total_users = total_users + 1; +end + +module:provides("http", { + default_path = "/.well-known/x-nodeinfo2"; + route = { + GET = function (event) + event.response.headers.content_type = "application/json"; + return json.encode({ + version = "1.0"; + server = { + baseUrl = module:http_url("","/"); + name = module.host; + software = "Prosody"; + version = prosody.version; + }; + --[[ + organization = { + name = ""; + contact = ""; + account = ""; + }; + --]] + protocols = array { + "xmpp", + }; + --[[ + services = { + inbound = array { + "irc"; + }; + outbound = array { + }; + }; + --]] + openRegistrations = module:get_option_boolean("allow_registration", false); + usage = { + users = { + total = total_users; + -- activeHalfyear = 1; + -- activeMonth = 1; + -- activeWeek = 1; + }; + -- localPosts = 0; + -- localComments = 0; + }; + }); + end; + } +}); +