Software /
code /
prosody
Changeset
13437:1ba323d6f35c
mod_server_contact_info: Update to publish fields via new mod_server_info
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Fri, 23 Feb 2024 21:14:14 +0000 |
parents | 13436:1ce18cb3e6cc |
children | 13438:0a0dd2505baa |
files | plugins/mod_server_contact_info.lua |
diffstat | 1 files changed, 25 insertions(+), 12 deletions(-) [+] |
line wrap: on
line diff
--- a/plugins/mod_server_contact_info.lua Fri Feb 23 21:13:10 2024 +0000 +++ b/plugins/mod_server_contact_info.lua Fri Feb 23 21:14:14 2024 +0000 @@ -7,21 +7,21 @@ -- local array = require "prosody.util.array"; -local dataforms = require "prosody.util.dataforms"; 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 form_layout = dataforms.new({ - { var = "FORM_TYPE"; type = "hidden"; value = "http://jabber.org/network/serverinfo" }; - { type = "list-multi"; name = "abuse"; var = "abuse-addresses" }; - { type = "list-multi"; name = "admin"; var = "admin-addresses" }; - { type = "list-multi"; name = "feedback"; var = "feedback-addresses" }; - { type = "list-multi"; name = "sales"; var = "sales-addresses" }; - { type = "list-multi"; name = "security"; var = "security-addresses" }; - { type = "list-multi"; name = "status"; var = "status-addresses" }; - { type = "list-multi"; name = "support"; var = "support-addresses" }; -}); +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", {}); @@ -30,4 +30,17 @@ admin = array.collect(admins / jid.prep / function(admin) return url.build({scheme = "xmpp"; path = admin}); end); }); -module:add_extension(form_layout:form(contact_config, "result")); +local fields = {}; + +for key, field_var in 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);