diff --git a/run.sh b/run.sh index 30e521d..fe0a249 100755 --- a/run.sh +++ b/run.sh @@ -1,14 +1,15 @@ #!/bin/bash HUBOT_LOG_LEVEL="debug" \ HUBOT_IRC_SERVER="irc.freenode.net" \ -HUBOT_IRC_ROOMS="#kosmos-random,#kosmos-dev" \ -HUBOT_IRC_NICK="wormhole" \ +HUBOT_IRC_ROOMS="#kosmos-random" \ +HUBOT_IRC_NICK="wormholedev" \ HUBOT_IRC_UNFLOOD="300" \ -HUBOT_IRC_NICKSERV_USERNAME="wormhole" \ +HUBOT_IRC_NICKSERV_USERNAME="wormholedev" \ HUBOT_IRC_NICKSERV_PASSWORD="" \ -HUBOT_WORMHOLE_XMPP_JID="wormhole@kosmos.org" \ +HUBOT_WORMHOLE_XMPP_JID="jimmy@kosmos.org" \ HUBOT_WORMHOLE_XMPP_PASSWORD="" \ +HUBOT_WORMHOLE_XMPP_NICKNAME="wormhole" \ HUBOT_WORMHOLE_XMPP_HOST="xmpp.kosmos.org" \ HUBOT_WORMHOLE_XMPP_PORT="5222" \ -HUBOT_WORMHOLE_XMPP_ROOMS="kosmos-random@chat.kosmos.org,kosmos-dev@chat.kosmos.org" \ +HUBOT_WORMHOLE_XMPP_ROOMS="kosmos-random@kosmos.chat" \ bin/hubot -a irc --name wormhole diff --git a/scripts/xmpp-muc-bridge.js b/scripts/xmpp-muc-bridge.js index 95a6951..c224a00 100644 --- a/scripts/xmpp-muc-bridge.js +++ b/scripts/xmpp-muc-bridge.js @@ -3,9 +3,29 @@ const xmpp = require('simple-xmpp'); const hubotRooms = process.env.HUBOT_IRC_ROOMS.split(','); const xmppRooms = process.env.HUBOT_WORMHOLE_XMPP_ROOMS.split(','); +const xmppNickname = process.env.HUBOT_WORMHOLE_XMPP_NICKNAME; + +const xmppConfig = { + 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) +}; module.exports = function (robot) { + xmpp.on('online', function(data) { + robot.logger.info('XMPP connected with JID: ' + data.jid.toString()); + + xmppRooms.forEach(room => xmpp.join(`${room}/${xmppNickname}`)); + }); + + xmpp.on('close', function() { + robot.logger.info('XMPP connection has been closed. Re-connecting...'); + + xmpp.connect(xmppConfig); + }); + xmpp.on('groupchat', function(conference, from, message, whatevs, meta) { if (meta || (from === 'wormhole')) return; if (!xmppRooms.includes(conference)) return; @@ -16,14 +36,11 @@ module.exports = function (robot) { 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) + xmpp.on('error', function(err) { + robot.logger.error(err); }); - xmppRooms.forEach(room => xmpp.join(`${room}/wormhole`)); + xmpp.connect(xmppConfig); function messageMUC(res) { const message = res.message;