blob: 67fed7528a8edf02222b0b1d923f120251ab2967 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
-- XEP-0157: Contact Addresses for XMPP Services for Prosody
--
-- Copyright (C) 2011-2018 Kim Alvefur
--
-- This project is MIT/X11 licensed. Please see the
-- COPYING file in the source package for more information.
--
local array = require "prosody.util.array";
local it = require "prosody.util.iterators";
local jid = require "prosody.util.jid";
local url = require "socket.url";
module:depends("server_info");
-- Source: http://xmpp.org/registrar/formtypes.html#http:--jabber.org-network-serverinfo
local address_types = {
abuse = "abuse-addresses";
admin = "admin-addresses";
feedback = "feedback-addresses";
sales = "sales-addresses";
security = "security-addresses";
status = "status-addresses";
support = "support-addresses";
};
-- JIDs of configured service admins are used as fallback
local admins = module:get_option_inherited_set("admins", {});
local contact_config = module:get_option("contact_info", {
admin = array.collect(admins / jid.prep / function(admin) return url.build({scheme = "xmpp"; path = admin}); end);
});
local fields = {};
for key, field_var in it.sorted_pairs(address_types) do
if contact_config[key] then
table.insert(fields, {
type = "list-multi";
name = key;
var = field_var;
value = contact_config[key];
});
end
end
module:add_item("server-info-fields", fields);
|