From cd3621321c9a539d74963771b11fad7a0ac2990b Mon Sep 17 00:00:00 2001
From: Xavi Ferrer <xavi@delape.net>
Date: Mon, 2 Nov 2020 10:29:47 +0100
Subject: [PATCH 1/5] apply Matt's diff

---
 src/plugins/converse-rai.js | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/plugins/converse-rai.js b/src/plugins/converse-rai.js
index 4f185fe..e4c837c 100644
--- a/src/plugins/converse-rai.js
+++ b/src/plugins/converse-rai.js
@@ -88,7 +88,8 @@
 
             _converse.on('message', function (data)
             {
-                var chatbox = data.chatbox;
+                var bareFrom = Strophe.getBareJidFromJid(message.getAttributes("from"));
+                var chatbox = _converse.chatboxes.get(bareFrom);
                 var message = data.stanza;
                 var history = message.querySelector('forwarded');
                 var body = message.querySelector('body');
-- 
GitLab


From 82e2e3f33ce6511e3b7dc85ddf9d0ba46bc33b5a Mon Sep 17 00:00:00 2001
From: Xavi Ferrer <xavi@delape.net>
Date: Tue, 3 Nov 2020 09:10:33 +0100
Subject: [PATCH 2/5] do not notify if one sends a message. update event hook
 to match current version of Converse

---
 src/plugins/converse-rai.js | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/plugins/converse-rai.js b/src/plugins/converse-rai.js
index e4c837c..df63ed3 100644
--- a/src/plugins/converse-rai.js
+++ b/src/plugins/converse-rai.js
@@ -86,15 +86,15 @@
 
             });
 
-            _converse.on('message', function (data)
+            _converse.api.listen.on('message', function (data)
             {
+                var message = data.stanza;
                 var bareFrom = Strophe.getBareJidFromJid(message.getAttributes("from"));
                 var chatbox = _converse.chatboxes.get(bareFrom);
-                var message = data.stanza;
                 var history = message.querySelector('forwarded');
                 var body = message.querySelector('body');
 
-                if (!history && body && chatbox)
+                if (!history && body && chatbox && message.get('sender') !== 'me')
                 {
                     const alert = chatbox.get("num_unread") > 0;
                     const notify = chatbox.get("num_unread_general") > 0;
-- 
GitLab


From 403eb32a252910f6de85ed6352b6daa05cf20ca8 Mon Sep 17 00:00:00 2001
From: Xavi Ferrer <xavi@delape.net>
Date: Tue, 3 Nov 2020 10:06:46 +0100
Subject: [PATCH 3/5] fix data accessing

---
 src/plugins/converse-rai.js | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/src/plugins/converse-rai.js b/src/plugins/converse-rai.js
index df63ed3..6b28cd2 100644
--- a/src/plugins/converse-rai.js
+++ b/src/plugins/converse-rai.js
@@ -88,13 +88,12 @@
 
             _converse.api.listen.on('message', function (data)
             {
-                var message = data.stanza;
-                var bareFrom = Strophe.getBareJidFromJid(message.getAttributes("from"));
-                var chatbox = _converse.chatboxes.get(bareFrom);
-                var history = message.querySelector('forwarded');
-                var body = message.querySelector('body');
+                var chatbox = data.chatbox;
+                var history = data.attrs.is_archived;
+                var sender = data.attrs.sender;
+                var body = data.attrs.body;
 
-                if (!history && body && chatbox && message.get('sender') !== 'me')
+                if (!history && body && chatbox && sender !== 'me')
                 {
                     const alert = chatbox.get("num_unread") > 0;
                     const notify = chatbox.get("num_unread_general") > 0;
-- 
GitLab


From 07129f103078153aa19150c08cb6d16b5fa12283 Mon Sep 17 00:00:00 2001
From: Xavi Ferrer <xavi@delape.net>
Date: Tue, 3 Nov 2020 18:24:11 +0100
Subject: [PATCH 4/5] prevent self messages from triggering unreadStatus or
 notifications

---
 src/plugins/converse-rai.js | 35 +++++++++++++++++++++++++----------
 1 file changed, 25 insertions(+), 10 deletions(-)

diff --git a/src/plugins/converse-rai.js b/src/plugins/converse-rai.js
index 6b28cd2..a4adbad 100644
--- a/src/plugins/converse-rai.js
+++ b/src/plugins/converse-rai.js
@@ -152,17 +152,32 @@
 
 	// Listen for incoming RAI from the server
         _converse.connection.addHandler(function (message) {
-            message.querySelectorAll('activity').forEach(function (activity)
-            {
-                if (activity && activity.namespaceURI == "xmpp:prosody.im/protocol/rai")
-                {
-                    const jid = activity.textContent;
-                    setUnreadStatus(jid, true);
-                    emitNotification(jid);
+            const from_jid = message.attributes.from?.nodevalue
+            const room_jid = from_jid?.split("/")[0]
+            const room = '';
+            let ignore = false;
+            for (let i = 0; i < _converse.chatboxes.models.length; i++){
+                if(_converse.chatboxes.models[i].id === room_jid){
+                    room = _converse.chatboxes.models[i].id;
+                    break;
                 }
-            });
-
-            return true;
+            }
+            if (room && from_jid && room_jid){
+                if (from_jid === room_jid+'/'+room.get('nick')){
+                    ignore = true;
+                }
+            }
+            if(message && !ignore)
+                message.querySelectorAll('activity').forEach(function (activity)
+                {
+                    if (activity && activity.namespaceURI == "xmpp:prosody.im/protocol/rai")
+                    {
+                        const jid = activity.textContent;
+                        setUnreadStatus(jid, true);
+                        emitNotification(jid);
+                    }
+                });
+                return true;
         }, null, 'message');
     }
 
-- 
GitLab


From a1951f9fe865fa940bb18ff0918ad9f47d13a40b Mon Sep 17 00:00:00 2001
From: Jean-Baptiste Pasquier <contact@jbpasquier.eu>
Date: Wed, 11 Nov 2020 15:41:30 +0000
Subject: [PATCH 5/5] fix: auto_register_muc_nickname and muc_nickname_from_jid
 to false

---
 src/solid-xmpp-chat.js | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/solid-xmpp-chat.js b/src/solid-xmpp-chat.js
index d593486..c64a644 100644
--- a/src/solid-xmpp-chat.js
+++ b/src/solid-xmpp-chat.js
@@ -321,7 +321,7 @@ export const SolidXMPPChat = {
         'auto_login': this.element.dataset.autoLogin === 'true',
         'auto_join_on_invite': true,
         'auto_reconnect': true,
-        'auto_register_muc_nickname': true,
+        'auto_register_muc_nickname': false,
         'websocket_url': this.element.dataset.websocketUrl || 'wss://jabber.happy-dev.fr/xmpp-websocket',
         'enable_smacks': true,
         "clear_messages_on_reconnection": false,
@@ -334,7 +334,7 @@ export const SolidXMPPChat = {
         'muc_disable_slash_commands': true,
         'muc_hats': ['hats', 'vcard_roles', 'admin'],
         'role_affiliation_hat_conversions': {'admin': 'Administrateur'},
-        'muc_nickname_from_jid': true,
+        'muc_nickname_from_jid': false,
         'muc_fetch_members': true,
         'muc_show_info_messages': [],
         'play_sounds': false,
-- 
GitLab