mod_nodeinfo2/mod_nodeinfo2.lua
author Kim Alvefur <zash@zash.se>
Sat, 17 Jun 2023 16:26:33 +0200
changeset 5555 8bfcedd93a72
parent 4599 bac3dae031ee
permissions -rw-r--r--
mod_rest: List all error conditions in OpenAPI spec These are not handled by datamanager but by util.stanza and util.error, so they are not represented in the JSON schema file.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3709
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";
3794
352f3efe1b67 mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3793
diff changeset
     3
local add_task = require "util.timer".add_task;
3711
3248295e1b16 mod_nodeinfo2: Retrieve message count from mod_measure_message_e2ee for localPosts and localComments.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3710
diff changeset
     4
local get_stats = require "core.statsmanager".get_stats;
3794
352f3efe1b67 mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3793
diff changeset
     5
local list_users = require "core.usermanager".users;
3712
0a800463bc08 mod_nodeinfo2: Fetch active users from mod_lastlog.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3711
diff changeset
     6
local os_time = os.time;
3709
5d3d8b75dee9 mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     7
4599
bac3dae031ee Add note of incompatibility with trunk since 5f15ab7c6ae5
Kim Alvefur <zash@zash.se>
parents: 3796
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: 3796
diff changeset
     9
3709
5d3d8b75dee9 mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    10
module:depends("http");
3796
aec772bbd558 mod_nodeinfo2: Only expose amount of accounts if nodeinfo2_expose_users isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3795
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: 3795
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: 3795
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: 3795
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: 3795
diff changeset
    15
end
3793
e3b673df3906 mod_nodeinfo2: Only expose message stats if nodeinfo2_expose_posts isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3790
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: 3790
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: 3790
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: 3790
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: 3790
diff changeset
    20
end
3709
5d3d8b75dee9 mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    21
3788
741a1e400de4 mod_nodeinfo2: Count messages per host
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3787
diff changeset
    22
local main_store = module:open_store();
741a1e400de4 mod_nodeinfo2: Count messages per host
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3787
diff changeset
    23
local lastlog_store = module:open_store("lastlog");
3712
0a800463bc08 mod_nodeinfo2: Fetch active users from mod_lastlog.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3711
diff changeset
    24
3793
e3b673df3906 mod_nodeinfo2: Only expose message stats if nodeinfo2_expose_posts isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3790
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: 3790
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: 3790
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: 3790
diff changeset
    28
end
3714
7f5ce667d93e mod_nodeinfo2: Store and restore the total message count.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3712
diff changeset
    29
3794
352f3efe1b67 mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3793
diff changeset
    30
local total_users = 0;
352f3efe1b67 mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3793
diff changeset
    31
local week_users = 0;
352f3efe1b67 mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3793
diff changeset
    32
local month_users = 0;
352f3efe1b67 mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3793
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: 3793
diff changeset
    34
352f3efe1b67 mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3793
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: 3793
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: 3793
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: 3793
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: 3793
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: 3793
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: 3793
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: 3793
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: 3793
diff changeset
    43
			end
352f3efe1b67 mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3793
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: 3793
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: 3793
diff changeset
    46
			end
352f3efe1b67 mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3793
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: 3793
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: 3793
diff changeset
    49
			end
352f3efe1b67 mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3793
diff changeset
    50
		end
352f3efe1b67 mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3793
diff changeset
    51
	end
352f3efe1b67 mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3793
diff changeset
    52
352f3efe1b67 mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3793
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: 3793
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: 3793
diff changeset
    55
		week_users = nil;
352f3efe1b67 mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3793
diff changeset
    56
		month_users = nil;
352f3efe1b67 mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3793
diff changeset
    57
		half_year_users = nil;
352f3efe1b67 mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3793
diff changeset
    58
	end
352f3efe1b67 mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3793
diff changeset
    59
end
352f3efe1b67 mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3793
diff changeset
    60
3796
aec772bbd558 mod_nodeinfo2: Only expose amount of accounts if nodeinfo2_expose_users isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3795
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: 3795
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: 3795
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: 3795
diff changeset
    64
end
3794
352f3efe1b67 mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3793
diff changeset
    65
3709
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)
3796
aec772bbd558 mod_nodeinfo2: Only expose amount of accounts if nodeinfo2_expose_users isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3795
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: 3795
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: 3795
diff changeset
    72
				usage.users = {
3793
e3b673df3906 mod_nodeinfo2: Only expose message stats if nodeinfo2_expose_posts isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3790
diff changeset
    73
					total = total_users;
3794
352f3efe1b67 mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3793
diff changeset
    74
					activeWeek = week_users;
3793
e3b673df3906 mod_nodeinfo2: Only expose message stats if nodeinfo2_expose_posts isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3790
diff changeset
    75
					activeMonth = month_users;
3794
352f3efe1b67 mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3793
diff changeset
    76
					activeHalfyear = half_year_users;
3793
e3b673df3906 mod_nodeinfo2: Only expose message stats if nodeinfo2_expose_posts isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3790
diff changeset
    77
				};
3796
aec772bbd558 mod_nodeinfo2: Only expose amount of accounts if nodeinfo2_expose_users isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3795
diff changeset
    78
			end
3793
e3b673df3906 mod_nodeinfo2: Only expose message stats if nodeinfo2_expose_posts isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3790
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: 3790
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: 3790
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: 3790
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: 3790
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: 3790
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: 3790
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: 3790
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: 3790
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: 3790
diff changeset
    88
						end
3714
7f5ce667d93e mod_nodeinfo2: Store and restore the total message count.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3712
diff changeset
    89
					end
3711
3248295e1b16 mod_nodeinfo2: Retrieve message count from mod_measure_message_e2ee for localPosts and localComments.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3710
diff changeset
    90
				end
3793
e3b673df3906 mod_nodeinfo2: Only expose message stats if nodeinfo2_expose_posts isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3790
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: 3790
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: 3790
diff changeset
    93
				usage.localComments = 0;
3711
3248295e1b16 mod_nodeinfo2: Retrieve message count from mod_measure_message_e2ee for localPosts and localComments.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3710
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: 3710
diff changeset
    95
3709
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
				};
3710
36b645e94325 mod_nodeinfo2: Add some TODOs
Kim Alvefur <zash@zash.se>
parents: 3709
diff changeset
   105
				--[[ TODO re-use data from mod_server_contact_info ?
3709
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 {
3795
34a8f9f996ec mod_nodeinfo2: Expose XMPP services
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3794
diff changeset
   117
						"xmpp";
3709
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 {
3795
34a8f9f996ec mod_nodeinfo2: Expose XMPP services
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3794
diff changeset
   120
						"xmpp";
3709
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);
3793
e3b673df3906 mod_nodeinfo2: Only expose message stats if nodeinfo2_expose_posts isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3790
diff changeset
   124
				usage = usage;
3709
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