mod_muc_markers/README.markdown
author Matthew Wild <mwild1@gmail.com>
Fri, 23 Sep 2022 22:41:15 +0100
changeset 5058 62480053c87b
parent 4342 0227fb4d1b40
permissions -rw-r--r--
mod_cloud_notify_encrypted: Additional debug logging when enabling/skipping
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3976
45c5603a6c07 mod_muc_markers: New module for server-side receipt tracking in MUCs
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
     1
# Introduction
45c5603a6c07 mod_muc_markers: New module for server-side receipt tracking in MUCs
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
     2
4028
95882b487ed2 mod_muc_markers: Allow configuration of which marker to track, default to displayed
Matthew Wild <mwild1@gmail.com>
parents: 3976
diff changeset
     3
This module adds an internal Prosody API to retrieve the last displayed message by MUC occupants.
3976
45c5603a6c07 mod_muc_markers: New module for server-side receipt tracking in MUCs
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
     4
45c5603a6c07 mod_muc_markers: New module for server-side receipt tracking in MUCs
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
     5
## Requirements
45c5603a6c07 mod_muc_markers: New module for server-side receipt tracking in MUCs
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
     6
45c5603a6c07 mod_muc_markers: New module for server-side receipt tracking in MUCs
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
     7
The clients must support XEP-0333, and the users to be tracked must be affiliated with the room.
45c5603a6c07 mod_muc_markers: New module for server-side receipt tracking in MUCs
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
     8
45c5603a6c07 mod_muc_markers: New module for server-side receipt tracking in MUCs
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
     9
Currently due to lack of clarity about which id to use in acknowledgements in XEP-0333, this module
45c5603a6c07 mod_muc_markers: New module for server-side receipt tracking in MUCs
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    10
rewrites the id attribute of stanzas to match the stanza (archive) id assigned by the MUC server.
45c5603a6c07 mod_muc_markers: New module for server-side receipt tracking in MUCs
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    11
45c5603a6c07 mod_muc_markers: New module for server-side receipt tracking in MUCs
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    12
Oh yeah, and mod_muc_mam is required (or another module that adds a stanza-id), otherwise this module
45c5603a6c07 mod_muc_markers: New module for server-side receipt tracking in MUCs
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    13
won't do anything.
45c5603a6c07 mod_muc_markers: New module for server-side receipt tracking in MUCs
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    14
45c5603a6c07 mod_muc_markers: New module for server-side receipt tracking in MUCs
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    15
# Configuring
45c5603a6c07 mod_muc_markers: New module for server-side receipt tracking in MUCs
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    16
45c5603a6c07 mod_muc_markers: New module for server-side receipt tracking in MUCs
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    17
## Enabling
45c5603a6c07 mod_muc_markers: New module for server-side receipt tracking in MUCs
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    18
45c5603a6c07 mod_muc_markers: New module for server-side receipt tracking in MUCs
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    19
``` {.lua}
45c5603a6c07 mod_muc_markers: New module for server-side receipt tracking in MUCs
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    20
Component "rooms.example.net" "muc"
45c5603a6c07 mod_muc_markers: New module for server-side receipt tracking in MUCs
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    21
modules_enabled = {
45c5603a6c07 mod_muc_markers: New module for server-side receipt tracking in MUCs
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    22
    "muc_markers";
45c5603a6c07 mod_muc_markers: New module for server-side receipt tracking in MUCs
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    23
    "muc_mam";
45c5603a6c07 mod_muc_markers: New module for server-side receipt tracking in MUCs
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    24
}
45c5603a6c07 mod_muc_markers: New module for server-side receipt tracking in MUCs
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    25
```
45c5603a6c07 mod_muc_markers: New module for server-side receipt tracking in MUCs
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    26
45c5603a6c07 mod_muc_markers: New module for server-side receipt tracking in MUCs
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    27
## Settings
45c5603a6c07 mod_muc_markers: New module for server-side receipt tracking in MUCs
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    28
4341
83f89ffe427b mod_muc_markers: Add config setting to turn off sending of markers on MUC join
JC Brand <jc@opkode.com>
parents: 4028
diff changeset
    29
| Name                       | Description                                                                          | Default     |
83f89ffe427b mod_muc_markers: Add config setting to turn off sending of markers on MUC join
JC Brand <jc@opkode.com>
parents: 4028
diff changeset
    30
|----------------------------|--------------------------------------------------------------------------------------|-------------|
4342
0227fb4d1b40 mod_muc_markers: Fix default value in readme
JC Brand <jc@opkode.com>
parents: 4341
diff changeset
    31
| muc_marker_summary_on_join | Whether a summary of all the latest markers should be sent to someone entering a MUC | true        |
4341
83f89ffe427b mod_muc_markers: Add config setting to turn off sending of markers on MUC join
JC Brand <jc@opkode.com>
parents: 4028
diff changeset
    32
| muc_marker_type            | The type of marker to track (displayed/received/acknowledged)                        | "displayed" |
83f89ffe427b mod_muc_markers: Add config setting to turn off sending of markers on MUC join
JC Brand <jc@opkode.com>
parents: 4028
diff changeset
    33
3976
45c5603a6c07 mod_muc_markers: New module for server-side receipt tracking in MUCs
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    34
45c5603a6c07 mod_muc_markers: New module for server-side receipt tracking in MUCs
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    35
# Developers
45c5603a6c07 mod_muc_markers: New module for server-side receipt tracking in MUCs
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    36
45c5603a6c07 mod_muc_markers: New module for server-side receipt tracking in MUCs
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    37
## Example usage
45c5603a6c07 mod_muc_markers: New module for server-side receipt tracking in MUCs
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    38
45c5603a6c07 mod_muc_markers: New module for server-side receipt tracking in MUCs
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    39
```
45c5603a6c07 mod_muc_markers: New module for server-side receipt tracking in MUCs
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    40
local muc_markers = module:depends("muc_markers");
45c5603a6c07 mod_muc_markers: New module for server-side receipt tracking in MUCs
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    41
45c5603a6c07 mod_muc_markers: New module for server-side receipt tracking in MUCs
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    42
function something()
4028
95882b487ed2 mod_muc_markers: Allow configuration of which marker to track, default to displayed
Matthew Wild <mwild1@gmail.com>
parents: 3976
diff changeset
    43
	local last_displayed_id = muc_markers.get_user_read_marker("user@localhost", "room@conference.localhost");
3976
45c5603a6c07 mod_muc_markers: New module for server-side receipt tracking in MUCs
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    44
end
45c5603a6c07 mod_muc_markers: New module for server-side receipt tracking in MUCs
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    45
```