File

mod_muc_lang/mod_muc_lang.lua @ 4916:3dc8e329d233

mod_rest: Move most of XEP-0432 handling into JSON mapping schema The pre- and post-processing is still needed to encode/decode the JSON since util.datamapper can't (currently) do this.
author Kim Alvefur <zash@zash.se>
date Thu, 07 Apr 2022 15:39:57 +0200
parent 3546:ef5d52ca31bb
line wrap: on
line source

assert(module:depends"muc".rooms, "This module is not required with Prosody >= 0.11");

module:hook("muc-config-form", function(event)
	local room, form = event.room, event.form;
	table.insert(form, {
		name = "muc#roomconfig_lang",
		type = "text-single",
		label = "Natural Language for Room Discussions",
		value = room._data.language,
	});
end);

module:hook("muc-config-submitted", function(event)
	local room, fields, changed = event.room, event.fields, event.changed;
	local new = fields["muc#roomconfig_lang"];
	if new ~= room._data.language then
		room._data.language = new;
		if type(changed) == "table" then
			changed["muc#roomconfig_lang"] = true;
		else
			event.changed = true;
		end
	end
end);

module:hook("muc-disco#info", function (event)
	local room, form, formdata = event.room, event.form, event.formdata;

	table.insert(form, {
		name = "muc#roominfo_lang",
		value = room._data.language,
	});
	formdata["muc#roominfo_lang"] = room._data.language;
end);