changeset 4024:95882b487ed2

mod_muc_markers: Allow configuration of which marker to track, default to displayed
author Matthew Wild <mwild1@gmail.com>
date Tue, 19 May 2020 14:06:42 +0100
parents 7e2db4d61f6c
children 57b4cdeba318
files mod_muc_markers/README.markdown mod_muc_markers/mod_muc_markers.lua
diffstat 2 files changed, 8 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/mod_muc_markers/README.markdown	Sun May 17 22:38:55 2020 +0200
+++ b/mod_muc_markers/README.markdown	Tue May 19 14:06:42 2020 +0100
@@ -1,6 +1,6 @@
 # Introduction
 
-This module adds an internal Prosody API to retrieve the last received message by MUC occupants.
+This module adds an internal Prosody API to retrieve the last displayed message by MUC occupants.
 
 ## Requirements
 
@@ -26,7 +26,9 @@
 
 ## Settings
 
-There are no configuration options for this module.
+| Name            | Description                                                  | Default    |
+|-----------------|--------------------------------------------------------------|------------|
+| muc_marker_type | The type of marker to track (displayed/received/acknowledged)| "displayed"|
 
 # Developers
 
@@ -36,6 +38,6 @@
 local muc_markers = module:depends("muc_markers");
 
 function something()
-	local last_received_id = muc_markers.get_user_read_marker("user@localhost", "room@conference.localhost");
+	local last_displayed_id = muc_markers.get_user_read_marker("user@localhost", "room@conference.localhost");
 end
 ```
--- a/mod_muc_markers/mod_muc_markers.lua	Sun May 17 22:38:55 2020 +0200
+++ b/mod_muc_markers/mod_muc_markers.lua	Tue May 19 14:06:42 2020 +0100
@@ -10,6 +10,8 @@
 
 local xmlns_markers = "urn:xmpp:chat-markers:0";
 
+local marker_element_name = module:get_option_string("muc_marker_type", "displayed");
+
 local muc_marker_map_store = module:open_store("muc_markers", "map");
 
 local function get_stanza_id(stanza, by_jid)
@@ -35,7 +37,7 @@
 end, -1);
 
 module:hook("muc-occupant-groupchat", function (event)
-	local marker = event.stanza:get_child("received", xmlns_markers);
+	local marker = event.stanza:get_child(marker_element_name, xmlns_markers);
 	if not marker then return; end
 
 	-- Store the id that the user has received to