Software / code / prosody-modules
Annotate
mod_nodeinfo2/mod_nodeinfo2.lua @ 3706:36b645e94325
mod_nodeinfo2: Add some TODOs
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Thu, 10 Oct 2019 16:55:54 +0200 |
| parent | 3705:5d3d8b75dee9 |
| child | 3707:3248295e1b16 |
| rev | line source |
|---|---|
|
3705
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
1 local json = require "util.json"; |
|
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
2 local array = require "util.array"; |
|
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
3 |
|
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
4 module:depends("http"); |
|
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
5 |
|
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
6 local total_users = 0; |
| 3706 | 7 for _ in require "core.usermanager".users(module.host) do -- TODO refresh at some interval? |
|
3705
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
8 total_users = total_users + 1; |
|
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
9 end |
|
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
10 |
|
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
11 module:provides("http", { |
|
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
12 default_path = "/.well-known/x-nodeinfo2"; |
|
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
13 route = { |
|
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
14 GET = function (event) |
|
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
15 event.response.headers.content_type = "application/json"; |
|
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
16 return json.encode({ |
|
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
17 version = "1.0"; |
|
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
18 server = { |
|
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
19 baseUrl = module:http_url("","/"); |
|
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
20 name = module.host; |
|
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
21 software = "Prosody"; |
|
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
22 version = prosody.version; |
|
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
23 }; |
| 3706 | 24 --[[ TODO re-use data from mod_server_contact_info ? |
|
3705
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
25 organization = { |
|
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
26 name = ""; |
|
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
27 contact = ""; |
|
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
28 account = ""; |
|
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
29 }; |
|
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
30 --]] |
|
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
31 protocols = array { |
|
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
32 "xmpp", |
|
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
33 }; |
| 3706 | 34 --[[ TODO would be cool to identify local transports |
|
3705
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
35 services = { |
|
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
36 inbound = array { |
|
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
37 "irc"; |
|
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
38 }; |
|
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
39 outbound = array { |
|
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
40 }; |
|
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
41 }; |
|
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
42 --]] |
|
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
43 openRegistrations = module:get_option_boolean("allow_registration", false); |
|
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
44 usage = { |
|
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
45 users = { |
|
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
46 total = total_users; |
| 3706 | 47 -- TODO how would one calculate these? |
|
3705
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
48 -- activeHalfyear = 1; |
|
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
49 -- activeMonth = 1; |
|
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
50 -- activeWeek = 1; |
|
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
51 }; |
|
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
52 -- localPosts = 0; |
|
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
53 -- localComments = 0; |
|
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
54 }; |
|
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
55 }); |
|
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
56 end; |
|
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
57 } |
|
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
58 }); |
|
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
59 |