Mercurial > prosody-modules
annotate mod_nodeinfo2/mod_nodeinfo2.lua @ 4976:75b6e5df65f9
various: Improve error reporting if missing file server module on 0.12
If there is some error loading net.http.files then it would be swallowed
by the pcall and then it would proceed to trying mod_http_files, which
might cause unexpected behavior on 0.12
Ref #1765
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Mon, 18 Jul 2022 22:47:54 +0200 |
parents | bac3dae031ee |
children |
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"; |
3790
352f3efe1b67
mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3789
diff
changeset
|
3 local add_task = require "util.timer".add_task; |
3707
3248295e1b16
mod_nodeinfo2: Retrieve message count from mod_measure_message_e2ee for localPosts and localComments.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3706
diff
changeset
|
4 local get_stats = require "core.statsmanager".get_stats; |
3790
352f3efe1b67
mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3789
diff
changeset
|
5 local list_users = require "core.usermanager".users; |
3708
0a800463bc08
mod_nodeinfo2: Fetch active users from mod_lastlog.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3707
diff
changeset
|
6 local os_time = os.time; |
3705
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
7 |
4595
bac3dae031ee
Add note of incompatibility with trunk since 5f15ab7c6ae5
Kim Alvefur <zash@zash.se>
parents:
3792
diff
changeset
|
8 assert(get_stats, "not compatible with trunk based on openmetrics"); |
bac3dae031ee
Add note of incompatibility with trunk since 5f15ab7c6ae5
Kim Alvefur <zash@zash.se>
parents:
3792
diff
changeset
|
9 |
3705
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
10 module:depends("http"); |
3792
aec772bbd558
mod_nodeinfo2: Only expose amount of accounts if nodeinfo2_expose_users isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3791
diff
changeset
|
11 |
aec772bbd558
mod_nodeinfo2: Only expose amount of accounts if nodeinfo2_expose_users isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3791
diff
changeset
|
12 local expose_users = module:get_option_boolean("nodeinfo2_expose_users", true); |
aec772bbd558
mod_nodeinfo2: Only expose amount of accounts if nodeinfo2_expose_users isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3791
diff
changeset
|
13 if expose_users then |
aec772bbd558
mod_nodeinfo2: Only expose amount of accounts if nodeinfo2_expose_users isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3791
diff
changeset
|
14 module:depends("lastlog"); |
aec772bbd558
mod_nodeinfo2: Only expose amount of accounts if nodeinfo2_expose_users isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3791
diff
changeset
|
15 end |
3789
e3b673df3906
mod_nodeinfo2: Only expose message stats if nodeinfo2_expose_posts isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3786
diff
changeset
|
16 |
e3b673df3906
mod_nodeinfo2: Only expose message stats if nodeinfo2_expose_posts isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3786
diff
changeset
|
17 local expose_posts = module:get_option_boolean("nodeinfo2_expose_posts", true); |
e3b673df3906
mod_nodeinfo2: Only expose message stats if nodeinfo2_expose_posts isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3786
diff
changeset
|
18 if expose_posts then |
e3b673df3906
mod_nodeinfo2: Only expose message stats if nodeinfo2_expose_posts isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3786
diff
changeset
|
19 module:depends("measure_message_e2ee"); |
e3b673df3906
mod_nodeinfo2: Only expose message stats if nodeinfo2_expose_posts isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3786
diff
changeset
|
20 end |
3705
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
21 |
3784
741a1e400de4
mod_nodeinfo2: Count messages per host
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3783
diff
changeset
|
22 local main_store = module:open_store(); |
741a1e400de4
mod_nodeinfo2: Count messages per host
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3783
diff
changeset
|
23 local lastlog_store = module:open_store("lastlog"); |
3708
0a800463bc08
mod_nodeinfo2: Fetch active users from mod_lastlog.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3707
diff
changeset
|
24 |
3789
e3b673df3906
mod_nodeinfo2: Only expose message stats if nodeinfo2_expose_posts isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3786
diff
changeset
|
25 local data; |
e3b673df3906
mod_nodeinfo2: Only expose message stats if nodeinfo2_expose_posts isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3786
diff
changeset
|
26 if expose_posts then |
e3b673df3906
mod_nodeinfo2: Only expose message stats if nodeinfo2_expose_posts isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3786
diff
changeset
|
27 data = main_store:get("nodeinfo2") or { message_count = 0 }; |
e3b673df3906
mod_nodeinfo2: Only expose message stats if nodeinfo2_expose_posts isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3786
diff
changeset
|
28 end |
3710
7f5ce667d93e
mod_nodeinfo2: Store and restore the total message count.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3708
diff
changeset
|
29 |
3790
352f3efe1b67
mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3789
diff
changeset
|
30 local total_users = 0; |
352f3efe1b67
mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3789
diff
changeset
|
31 local week_users = 0; |
352f3efe1b67
mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3789
diff
changeset
|
32 local month_users = 0; |
352f3efe1b67
mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3789
diff
changeset
|
33 local half_year_users = 0; |
352f3efe1b67
mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3789
diff
changeset
|
34 |
352f3efe1b67
mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3789
diff
changeset
|
35 local function update_user_list() |
352f3efe1b67
mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3789
diff
changeset
|
36 for user in list_users(module.host) do |
352f3efe1b67
mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3789
diff
changeset
|
37 total_users = total_users + 1; |
352f3efe1b67
mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3789
diff
changeset
|
38 local lastlog = lastlog_store:get(user); |
352f3efe1b67
mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3789
diff
changeset
|
39 if lastlog and lastlog.timestamp then |
352f3efe1b67
mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3789
diff
changeset
|
40 local delta = os_time() - lastlog.timestamp; |
352f3efe1b67
mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3789
diff
changeset
|
41 if delta < 7 * 86400 then |
352f3efe1b67
mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3789
diff
changeset
|
42 week_users = week_users + 1; |
352f3efe1b67
mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3789
diff
changeset
|
43 end |
352f3efe1b67
mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3789
diff
changeset
|
44 if delta < 30 * 86400 then |
352f3efe1b67
mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3789
diff
changeset
|
45 month_users = month_users + 1; |
352f3efe1b67
mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3789
diff
changeset
|
46 end |
352f3efe1b67
mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3789
diff
changeset
|
47 if delta < 6 * 30 * 86400 then |
352f3efe1b67
mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3789
diff
changeset
|
48 half_year_users = half_year_users + 1; |
352f3efe1b67
mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3789
diff
changeset
|
49 end |
352f3efe1b67
mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3789
diff
changeset
|
50 end |
352f3efe1b67
mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3789
diff
changeset
|
51 end |
352f3efe1b67
mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3789
diff
changeset
|
52 |
352f3efe1b67
mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3789
diff
changeset
|
53 -- Remove the properties if we couldn’t find a single active user. It most likely means mod_lastlog isn’t in use. |
352f3efe1b67
mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3789
diff
changeset
|
54 if half_year_users == 0 and month_users == 0 and week_users == 0 then |
352f3efe1b67
mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3789
diff
changeset
|
55 week_users = nil; |
352f3efe1b67
mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3789
diff
changeset
|
56 month_users = nil; |
352f3efe1b67
mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3789
diff
changeset
|
57 half_year_users = nil; |
352f3efe1b67
mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3789
diff
changeset
|
58 end |
352f3efe1b67
mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3789
diff
changeset
|
59 end |
352f3efe1b67
mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3789
diff
changeset
|
60 |
3792
aec772bbd558
mod_nodeinfo2: Only expose amount of accounts if nodeinfo2_expose_users isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3791
diff
changeset
|
61 if expose_users then |
aec772bbd558
mod_nodeinfo2: Only expose amount of accounts if nodeinfo2_expose_users isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3791
diff
changeset
|
62 add_task(86400, update_user_list); |
aec772bbd558
mod_nodeinfo2: Only expose amount of accounts if nodeinfo2_expose_users isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3791
diff
changeset
|
63 update_user_list(); |
aec772bbd558
mod_nodeinfo2: Only expose amount of accounts if nodeinfo2_expose_users isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3791
diff
changeset
|
64 end |
3790
352f3efe1b67
mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3789
diff
changeset
|
65 |
3705
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
66 module:provides("http", { |
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
67 default_path = "/.well-known/x-nodeinfo2"; |
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
68 route = { |
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
69 GET = function (event) |
3792
aec772bbd558
mod_nodeinfo2: Only expose amount of accounts if nodeinfo2_expose_users isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3791
diff
changeset
|
70 local usage = {}; |
aec772bbd558
mod_nodeinfo2: Only expose amount of accounts if nodeinfo2_expose_users isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3791
diff
changeset
|
71 if expose_users then |
aec772bbd558
mod_nodeinfo2: Only expose amount of accounts if nodeinfo2_expose_users isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3791
diff
changeset
|
72 usage.users = { |
3789
e3b673df3906
mod_nodeinfo2: Only expose message stats if nodeinfo2_expose_posts isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3786
diff
changeset
|
73 total = total_users; |
3790
352f3efe1b67
mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3789
diff
changeset
|
74 activeWeek = week_users; |
3789
e3b673df3906
mod_nodeinfo2: Only expose message stats if nodeinfo2_expose_posts isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3786
diff
changeset
|
75 activeMonth = month_users; |
3790
352f3efe1b67
mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3789
diff
changeset
|
76 activeHalfyear = half_year_users; |
3789
e3b673df3906
mod_nodeinfo2: Only expose message stats if nodeinfo2_expose_posts isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3786
diff
changeset
|
77 }; |
3792
aec772bbd558
mod_nodeinfo2: Only expose amount of accounts if nodeinfo2_expose_users isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3791
diff
changeset
|
78 end |
3789
e3b673df3906
mod_nodeinfo2: Only expose message stats if nodeinfo2_expose_posts isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3786
diff
changeset
|
79 |
e3b673df3906
mod_nodeinfo2: Only expose message stats if nodeinfo2_expose_posts isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3786
diff
changeset
|
80 if expose_posts then |
e3b673df3906
mod_nodeinfo2: Only expose message stats if nodeinfo2_expose_posts isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3786
diff
changeset
|
81 local stats, changed_only, extras = get_stats(); |
e3b673df3906
mod_nodeinfo2: Only expose message stats if nodeinfo2_expose_posts isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3786
diff
changeset
|
82 for stat, _ in pairs(stats) do |
e3b673df3906
mod_nodeinfo2: Only expose message stats if nodeinfo2_expose_posts isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3786
diff
changeset
|
83 if stat == "/"..module.host.."/mod_measure_message_e2ee/message:rate" then |
e3b673df3906
mod_nodeinfo2: Only expose message stats if nodeinfo2_expose_posts isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3786
diff
changeset
|
84 local new_message_count = extras[stat].total; |
e3b673df3906
mod_nodeinfo2: Only expose message stats if nodeinfo2_expose_posts isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3786
diff
changeset
|
85 if new_message_count ~= data.message_count then |
e3b673df3906
mod_nodeinfo2: Only expose message stats if nodeinfo2_expose_posts isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3786
diff
changeset
|
86 data = { message_count = new_message_count }; |
e3b673df3906
mod_nodeinfo2: Only expose message stats if nodeinfo2_expose_posts isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3786
diff
changeset
|
87 main_store:set("nodeinfo2", data); |
e3b673df3906
mod_nodeinfo2: Only expose message stats if nodeinfo2_expose_posts isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3786
diff
changeset
|
88 end |
3710
7f5ce667d93e
mod_nodeinfo2: Store and restore the total message count.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3708
diff
changeset
|
89 end |
3707
3248295e1b16
mod_nodeinfo2: Retrieve message count from mod_measure_message_e2ee for localPosts and localComments.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3706
diff
changeset
|
90 end |
3789
e3b673df3906
mod_nodeinfo2: Only expose message stats if nodeinfo2_expose_posts isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3786
diff
changeset
|
91 usage.localPosts = data.message_count; |
e3b673df3906
mod_nodeinfo2: Only expose message stats if nodeinfo2_expose_posts isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3786
diff
changeset
|
92 -- TODO: also count PubSub replies here. |
e3b673df3906
mod_nodeinfo2: Only expose message stats if nodeinfo2_expose_posts isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3786
diff
changeset
|
93 usage.localComments = 0; |
3707
3248295e1b16
mod_nodeinfo2: Retrieve message count from mod_measure_message_e2ee for localPosts and localComments.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3706
diff
changeset
|
94 end |
3248295e1b16
mod_nodeinfo2: Retrieve message count from mod_measure_message_e2ee for localPosts and localComments.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3706
diff
changeset
|
95 |
3705
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
96 event.response.headers.content_type = "application/json"; |
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
97 return json.encode({ |
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
98 version = "1.0"; |
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
99 server = { |
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
100 baseUrl = module:http_url("","/"); |
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
101 name = module.host; |
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
102 software = "Prosody"; |
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
103 version = prosody.version; |
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
104 }; |
3706 | 105 --[[ 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
|
106 organization = { |
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
107 name = ""; |
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
108 contact = ""; |
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
109 account = ""; |
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
110 }; |
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
111 --]] |
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
112 protocols = array { |
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
113 "xmpp", |
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
114 }; |
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
115 services = { |
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
116 inbound = array { |
3791
34a8f9f996ec
mod_nodeinfo2: Expose XMPP services
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3790
diff
changeset
|
117 "xmpp"; |
3705
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
118 }; |
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
119 outbound = array { |
3791
34a8f9f996ec
mod_nodeinfo2: Expose XMPP services
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3790
diff
changeset
|
120 "xmpp"; |
3705
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
121 }; |
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
122 }; |
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
123 openRegistrations = module:get_option_boolean("allow_registration", false); |
3789
e3b673df3906
mod_nodeinfo2: Only expose message stats if nodeinfo2_expose_posts isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
3786
diff
changeset
|
124 usage = usage; |
3705
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
125 }); |
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
126 end; |
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
127 } |
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
128 }); |
5d3d8b75dee9
mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
129 |