Work around Prosody not properly setting type for headline messages

This commit is contained in:
JC Brand 2016-03-21 10:40:52 +00:00
parent a4c4d6d2d3
commit d3c97486dd

View File

@ -22,15 +22,20 @@
var onHeadlineMessage = function (message) { var onHeadlineMessage = function (message) {
/* Handler method for all incoming messages of type "headline". /* Handler method for all incoming messages of type "headline".
*/ */
var $message = $(message), var $message = $(message), from_jid = $message.attr('from');
bare_jid = $message.attr('from'); if ($message.attr('type') === 'headline' || from_jid.indexOf('@') === -1) {
converse.chatboxes.create({ // Some servers (I'm looking at you Prosody) don't set the message
'id': bare_jid, // type to "headline" when sending server messages. For now we
'jid': bare_jid, // check if an @ signal is included, and if not, we assume it's
'fullname': bare_jid, // a headline message.
'type': 'headline' converse.chatboxes.create({
}).createMessage($message); 'id': from_jid,
converse.emit('message', message); 'jid': from_jid,
'fullname': from_jid,
'type': 'headline'
}).createMessage($message);
converse.emit('message', message);
}
return true; return true;
}; };
@ -107,7 +112,7 @@
var registerHeadlineHandler = function () { var registerHeadlineHandler = function () {
converse.connection.addHandler( converse.connection.addHandler(
onHeadlineMessage, null, 'message', 'headline'); onHeadlineMessage, null, 'message');
}; };
converse.on('connected', registerHeadlineHandler); converse.on('connected', registerHeadlineHandler);
converse.on('reconnected', registerHeadlineHandler); converse.on('reconnected', registerHeadlineHandler);