🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more →

corsica-irc

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

corsica-irc - npm Package Compare versions

Comparing version

to
0.2.0

@@ -18,7 +18,14 @@ /* Description:

var logger = {
log: console.log.bind(console, '[irc]'),
warn: console.warn.bind(console, '[irc]'),
error: console.error.bind(console, '[irc]'),
};
module.exports = function (corsica) {
console.log('[corsica irc] Starting up');
logger.log('Starting up');
var settingsConfig = corsica.settings.setup('corsica-irc', {
server: 'irc.example.org',
port: 6667,
channels: ['#bots'],

@@ -28,2 +35,5 @@ nick: 'corsica',

var ircClient;
var oldSettings;
settingsConfig.get().then(function (settings) {

@@ -35,13 +45,11 @@ if (typeof settings.channels === 'string') {

var ircClient = new irc.Client(settings.server, settings.nick, {
oldSettings = settings;
ircClient = new irc.Client(settings.server, settings.nick, {
channels: settings.channels,
port: settings.port,
});
ircClient.addListener('registered', function (message) {
console.log('[corsica irc] Connect to server.');
settingsConfig.get()
.then(function (settings) {
settings.nick = message.args[0];
settingsConfig.set(settings);
});
logger.log('Connected to server.');
});

@@ -63,10 +71,47 @@

ircClient.addListener('error', function(message) {
console.error('[corsica irc] Something has gone wrong.');
console.error(message.stack || message);
logger.error('Something has gone wrong.');
logger.error(message.stack || message);
});
})
.catch(function (err) {
console.error('[corsica irc] Something has gone wrong.');
console.error(err.stack || err);
logger.error('Something has gone wrong.');
logger.error(err.stack || err);
});
settingsConfig.on('updated', function(newSettings) {
logger.log('Settings updated');
if (ircClient === undefined) {
return;
}
// Server and/or Port
if (newSettings.server !== oldSettings.server || newSettings.port !== oldSettings.port) {
logger.log('Changing servers to:', newSettings.server + ':' + newSettings.port);
ircClient.disconnect(function() {
ircClient.opt = corsica.utils.merge(ircClient.opt, newSettings);
ircClient.connect();
});
return;
}
// Nick
if (newSettings.nick !== oldSettings.nick) {
logger.log('Changing nick to', newSettings.nick);
ircClient.send('NICK', newSettings.nick);
ircClient.opt.nick = newSettings.nick;
}
// Channels
oldSettings.channels.forEach(function(oldChan) {
if (newSettings.channels.indexOf(oldChan) === -1) {
logger.log('Leaving', oldChan);
ircClient.part(oldChan);
}
});
newSettings.channels.forEach(function(newChan) {
if (oldSettings.channels.indexOf(newChan) === -1) {
logger.log('Joining', newChan);
ircClient.join(newChan);
}
});
});
};
{
"name": "corsica-irc",
"version": "0.1.0",
"version": "0.2.0",
"description": "A Corsica plugin to provide IRC messaging.",

@@ -5,0 +5,0 @@ "main": "index.js",