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