From 4b891ace403995d54bf46e56131c9472ead71b1a Mon Sep 17 00:00:00 2001 From: ubermanu <e.vodor@gmail.com> Date: Tue, 16 Mar 2021 03:38:50 +0100 Subject: [PATCH] fix muc activity handler --- src/plugins/converse-rai.js | 43 +++++++++++-------------------------- 1 file changed, 13 insertions(+), 30 deletions(-) diff --git a/src/plugins/converse-rai.js b/src/plugins/converse-rai.js index 6d65c12..bbae709 100644 --- a/src/plugins/converse-rai.js +++ b/src/plugins/converse-rai.js @@ -88,7 +88,7 @@ converse.plugins.add('converse-rai', { }, }, initialize() { - const { Strophe, _, $pres, u } = converse.env; + const { Strophe, _, $pres, u, sizzle } = converse.env; const _converse = this._converse; const { api } = _converse; @@ -129,45 +129,28 @@ converse.plugins.add('converse-rai', { }, }); + /** + * Triggers an event if a jid has activity. + * + * @param message + * @returns {boolean} + */ function mucActivityHandler(message) { - console.log('mucActivityHandler', message); - const from_jid = message.attributes.from?.nodevalue; - const room_jid = from_jid?.split('/')[0]; - let room = ''; - let ignore = false; + const rai = sizzle(`rai[xmlns="${Strophe.NS.RAI}"]`, message).pop(); - 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; - } - } - - if (room && from_jid && room_jid) { - if (from_jid === room_jid + '/' + room.get('nick')) { - ignore = true; - } - } - - if (message && !ignore) { - message.querySelectorAll('activity').forEach(activity => { - if (activity && activity.namespaceURI === Strophe.NS.RAI) { - const jid = activity.textContent; - // TODO: Give the chatroom object instead of the jid - api.trigger('chatRoomHasActivity', jid); - } + if (rai) { + rai.querySelectorAll('activity').forEach(activity => { + const jid = activity.textContent; + api.trigger('chatRoomHasActivity', jid); }); } return true; } - // TODO: On loading subscribe to all the ChatViews in navigation (into another plugin) + // Register our RAI handler api.listen.on('connected', () => { _converse.connection.addHandler(mucActivityHandler, null, 'message'); }); - - // TODO: Remove - // api.listen.on('send', stanza => console.log('send', stanza)); }, }); -- GitLab