--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mod_muc_inject_mentions/README.markdown Sun Sep 20 10:31:02 2020 +0200
@@ -0,0 +1,76 @@
+# Introduction
+
+This module intercepts messages sent to a MUC, looks in the message's body if a user was mentioned and injects a mention type reference to that user implementing [XEP-0372](https://xmpp.org/extensions/xep-0372.html#usecase_mention)
+
+## Features
+
+1. Multiple mentions in the same message using affixes, including multiple mentions to the same user.
+ Examples:
+ `Hello nickname`
+ `@nickname hey!`
+ `nickname, hi :)`
+ `Are you sure @nickname?`
+
+2. Mentions are only injected if no mention was found in a message, avoiding this way, injecting mentions in messages sent from clients with mentions support.
+
+3. Configuration settings for customizing affixes and enabling/disabling the module for specific rooms.
+
+
+# Configuring
+
+## Enabling
+
+```{.lua}
+
+Component "rooms.example.net" "muc"
+
+modules_enabled = {
+ "muc_inject_mentions";
+}
+
+```
+
+## Settings
+
+Apart from just writing the nick of an occupant to trigger this module,
+common affixes used when mentioning someone can be configured in Prosody's config file.
+Recommended affixes:
+
+```
+muc_inject_mentions_prefixes = {"@"} -- Example: @bob hello!
+muc_inject_mentions_suffixes = {":", ",", "!", ".", "?"} -- Example: bob! How are you doing?
+```
+
+This module can be enabled/disabled for specific rooms.
+Only one of the following settings must be set.
+
+```
+-- muc_inject_mentions_enabled_rooms = {"room@conferences.server.com"}
+-- muc_inject_mentions_disabled_rooms = {"room@conferences.server.com"}
+```
+
+If none or both are found, all rooms in the muc component will have mentions enabled.
+
+# Example stanzas
+
+Alice sends the following message
+
+```
+<message id="af6ca" to="room@conference.localhost" type="groupchat">
+ <body>@bob hey! Are you there?</body>
+</message>
+```
+
+Then, the module detects `@bob` is a mention to `bob` and injects a mention type reference to him
+
+```
+<message from="room@conference.localhost/alice" id="af6ca" to="alice@localhost/ThinkPad" type="groupchat">
+ <body>@bob hey! Are you there?</body>
+ <reference xmlns="urn:xmpp:reference:0"
+ begin="1"
+ end="3"
+ uri="xmpp:bob@localhost"
+ type="mention"
+ />
+</message>
+```