wormhole/scripts/xmpp-muc-bridge.js
Sebastian Kippe aacfc7f83d
Remove prefix from chat messages
As the wormhole user only ever posts messages from the other side of the
wormhole, we don't need to see the protocol name before every single
message.
2019-07-30 09:11:24 +02:00

52 lines
1.5 KiB
JavaScript

const hubot = require("hubot");
const xmpp = require('simple-xmpp');
const hubotRooms = process.env.HUBOT_IRC_ROOMS.split(',');
const xmppRooms = process.env.HUBOT_WORMHOLE_XMPP_ROOMS.split(',');
module.exports = function (robot) {
xmpp.on('groupchat', function(conference, from, message, whatevs, meta) {
if (meta || (from === 'wormhole')) return;
if (!xmppRooms.includes(conference)) return;
const room = hubotRooms[xmppRooms.indexOf(conference)];
const msg = `<${from}> ${message}`;
robot.messageRoom(room, msg);
});
xmpp.connect({
jid: process.env.HUBOT_WORMHOLE_XMPP_JID,
password: process.env.HUBOT_WORMHOLE_XMPP_PASSWORD,
host: process.env.HUBOT_WORMHOLE_XMPP_HOST,
port: parseInt(process.env.HUBOT_WORMHOLE_XMPP_PORT)
});
xmppRooms.forEach(room => xmpp.join(`${room}/wormhole`));
function messageMUC(res) {
const message = res.message;
if ((typeof message === 'object' && message.constructor.name === 'TextMessage') ||
message instanceof hubot.TextMessage) {
if (message.user['id'] === 'botka_dev') return;
if (!hubotRooms.includes(message.user.room)) return;
const room = xmppRooms[hubotRooms.indexOf(message.user.room)];
const msg = `<${message.user['id']}> ${message.text}`;
xmpp.send(room, msg, true);
}
}
const listener = new hubot.Listener(robot, function() {
return true;
}, function(res) {
return messageMUC(res);
});
robot.listeners.push(listener);
};