mod_muc_lang/mod_muc_lang.lua
author Matthew Wild <mwild1@gmail.com>
Sat, 24 Sep 2022 09:26:26 +0100
changeset 5063 5f1120c284c5
parent 3550 ef5d52ca31bb
permissions -rw-r--r--
mod_cloud_notify_extensions: Add note about dependency Noting here because people might not click through to see it on the mod_cloud_notify_encrypted page.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3550
ef5d52ca31bb mod_muc_lang: Abort on Prosody 0.11 which supports this natively (thanks Ge0rG)
Kim Alvefur <zash@zash.se>
parents: 3080
diff changeset
     1
assert(module:depends"muc".rooms, "This module is not required with Prosody >= 0.11");
3073
e1db146984a0 mod_muc_lang: Advertises the room language
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     2
e1db146984a0 mod_muc_lang: Advertises the room language
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     3
module:hook("muc-config-form", function(event)
e1db146984a0 mod_muc_lang: Advertises the room language
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     4
	local room, form = event.room, event.form;
e1db146984a0 mod_muc_lang: Advertises the room language
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     5
	table.insert(form, {
e1db146984a0 mod_muc_lang: Advertises the room language
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     6
		name = "muc#roomconfig_lang",
e1db146984a0 mod_muc_lang: Advertises the room language
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     7
		type = "text-single",
e1db146984a0 mod_muc_lang: Advertises the room language
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     8
		label = "Natural Language for Room Discussions",
e1db146984a0 mod_muc_lang: Advertises the room language
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     9
		value = room._data.language,
e1db146984a0 mod_muc_lang: Advertises the room language
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    10
	});
e1db146984a0 mod_muc_lang: Advertises the room language
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    11
end);
e1db146984a0 mod_muc_lang: Advertises the room language
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    12
e1db146984a0 mod_muc_lang: Advertises the room language
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    13
module:hook("muc-config-submitted", function(event)
e1db146984a0 mod_muc_lang: Advertises the room language
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    14
	local room, fields, changed = event.room, event.fields, event.changed;
e1db146984a0 mod_muc_lang: Advertises the room language
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    15
	local new = fields["muc#roomconfig_lang"];
e1db146984a0 mod_muc_lang: Advertises the room language
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    16
	if new ~= room._data.language then
3077
ef8fe8bec5b1 mod_muc_lang: Fix to use correct data field
Kim Alvefur <zash@zash.se>
parents: 3073
diff changeset
    17
		room._data.language = new;
3073
e1db146984a0 mod_muc_lang: Advertises the room language
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    18
		if type(changed) == "table" then
e1db146984a0 mod_muc_lang: Advertises the room language
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    19
			changed["muc#roomconfig_lang"] = true;
e1db146984a0 mod_muc_lang: Advertises the room language
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    20
		else
e1db146984a0 mod_muc_lang: Advertises the room language
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    21
			event.changed = true;
e1db146984a0 mod_muc_lang: Advertises the room language
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    22
		end
e1db146984a0 mod_muc_lang: Advertises the room language
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    23
	end
e1db146984a0 mod_muc_lang: Advertises the room language
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    24
end);
e1db146984a0 mod_muc_lang: Advertises the room language
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    25
e1db146984a0 mod_muc_lang: Advertises the room language
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    26
module:hook("muc-disco#info", function (event)
e1db146984a0 mod_muc_lang: Advertises the room language
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    27
	local room, form, formdata = event.room, event.form, event.formdata;
e1db146984a0 mod_muc_lang: Advertises the room language
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    28
e1db146984a0 mod_muc_lang: Advertises the room language
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    29
	table.insert(form, {
3078
57396a32fc05 mod_muc_lang: Fix to use correct field name in disco#info
Kim Alvefur <zash@zash.se>
parents: 3077
diff changeset
    30
		name = "muc#roominfo_lang",
3073
e1db146984a0 mod_muc_lang: Advertises the room language
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    31
		value = room._data.language,
e1db146984a0 mod_muc_lang: Advertises the room language
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    32
	});
e1db146984a0 mod_muc_lang: Advertises the room language
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    33
	formdata["muc#roominfo_lang"] = room._data.language;
e1db146984a0 mod_muc_lang: Advertises the room language
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    34
end);
e1db146984a0 mod_muc_lang: Advertises the room language
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    35