mod_nodeinfo2/mod_nodeinfo2.lua
author Kim Alvefur <zash@zash.se>
Wed, 10 Jun 2020 12:21:10 +0200
changeset 4046 78ac5500a844
parent 3796 aec772bbd558
child 4599 bac3dae031ee
permissions -rw-r--r--
mod_pubsub_text_interface: Reflect XEP-0334 hints Helps testing without bothering your other clients.
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
5d3d8b75dee9 mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     8
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
     9
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
    10
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
    11
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
    12
	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
    13
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
    14
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
    15
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
    16
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
    17
	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
    18
end
3709
5d3d8b75dee9 mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    19
3788
741a1e400de4 mod_nodeinfo2: Count messages per host
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3787
diff changeset
    20
local main_store = module:open_store();
741a1e400de4 mod_nodeinfo2: Count messages per host
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3787
diff changeset
    21
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
    22
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
    23
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
    24
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
    25
	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
    26
end
3714
7f5ce667d93e mod_nodeinfo2: Store and restore the total message count.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3712
diff changeset
    27
3794
352f3efe1b67 mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3793
diff changeset
    28
local total_users = 0;
352f3efe1b67 mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3793
diff changeset
    29
local week_users = 0;
352f3efe1b67 mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3793
diff changeset
    30
local month_users = 0;
352f3efe1b67 mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3793
diff changeset
    31
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
    32
352f3efe1b67 mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3793
diff changeset
    33
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
    34
	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
    35
		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
    36
		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
    37
		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
    38
			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
    39
			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
    40
				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
    41
			end
352f3efe1b67 mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3793
diff changeset
    42
			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
    43
				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
    44
			end
352f3efe1b67 mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3793
diff changeset
    45
			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
    46
				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
    47
			end
352f3efe1b67 mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3793
diff changeset
    48
		end
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
352f3efe1b67 mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3793
diff changeset
    51
	-- 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
    52
	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
    53
		week_users = nil;
352f3efe1b67 mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3793
diff changeset
    54
		month_users = nil;
352f3efe1b67 mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3793
diff changeset
    55
		half_year_users = nil;
352f3efe1b67 mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3793
diff changeset
    56
	end
352f3efe1b67 mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3793
diff changeset
    57
end
352f3efe1b67 mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3793
diff changeset
    58
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
    59
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
    60
	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
    61
	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
    62
end
3794
352f3efe1b67 mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3793
diff changeset
    63
3709
5d3d8b75dee9 mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    64
module:provides("http", {
5d3d8b75dee9 mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    65
	default_path = "/.well-known/x-nodeinfo2";
5d3d8b75dee9 mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    66
	route = {
5d3d8b75dee9 mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    67
		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
    68
			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
    69
			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
    70
				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
    71
					total = total_users;
3794
352f3efe1b67 mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3793
diff changeset
    72
					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
    73
					activeMonth = month_users;
3794
352f3efe1b67 mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3793
diff changeset
    74
					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
    75
				};
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
    76
			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
    77
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
    78
			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
    79
				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
    80
				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
    81
					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
    82
						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
    83
						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
    84
							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
    85
							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
    86
						end
3714
7f5ce667d93e mod_nodeinfo2: Store and restore the total message count.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3712
diff changeset
    87
					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
    88
				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
    89
				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
    90
				-- 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
    91
				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
    92
			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
    93
3709
5d3d8b75dee9 mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    94
			event.response.headers.content_type = "application/json";
5d3d8b75dee9 mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    95
			return json.encode({
5d3d8b75dee9 mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    96
				version = "1.0";
5d3d8b75dee9 mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    97
				server = {
5d3d8b75dee9 mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    98
					baseUrl = module:http_url("","/");
5d3d8b75dee9 mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    99
					name = module.host;
5d3d8b75dee9 mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   100
					software = "Prosody";
5d3d8b75dee9 mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   101
					version = prosody.version;
5d3d8b75dee9 mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   102
				};
3710
36b645e94325 mod_nodeinfo2: Add some TODOs
Kim Alvefur <zash@zash.se>
parents: 3709
diff changeset
   103
				--[[ 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
   104
				organization = {
5d3d8b75dee9 mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   105
					name = "";
5d3d8b75dee9 mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   106
					contact = "";
5d3d8b75dee9 mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   107
					account = "";
5d3d8b75dee9 mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   108
				};
5d3d8b75dee9 mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   109
				--]]
5d3d8b75dee9 mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   110
				protocols = array {
5d3d8b75dee9 mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   111
					"xmpp",
5d3d8b75dee9 mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   112
				};
5d3d8b75dee9 mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   113
				services = {
5d3d8b75dee9 mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   114
					inbound = array {
3795
34a8f9f996ec mod_nodeinfo2: Expose XMPP services
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3794
diff changeset
   115
						"xmpp";
3709
5d3d8b75dee9 mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   116
					};
5d3d8b75dee9 mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   117
					outbound = array {
3795
34a8f9f996ec mod_nodeinfo2: Expose XMPP services
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3794
diff changeset
   118
						"xmpp";
3709
5d3d8b75dee9 mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   119
					};
5d3d8b75dee9 mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   120
				};
5d3d8b75dee9 mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   121
				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
   122
				usage = usage;
3709
5d3d8b75dee9 mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   123
			});
5d3d8b75dee9 mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   124
		end;
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
});
5d3d8b75dee9 mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   127