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

corsica-irc

Package Overview
Dependencies
Maintainers
1
Versions
7
Alerts
File Explorer

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.1

125

index.js

@@ -24,6 +24,12 @@ /* Description:

module.exports = function (corsica) {
var corsica
var ircClient;
var oldSettings;
var settingsConfig;
module.exports = function (corsica_) {
logger.log('Starting up');
corsica = corsica_;
var settingsConfig = corsica.settings.setup('corsica-irc', {
settingsConfig = corsica.settings.setup('corsica-irc', {
server: 'irc.example.org',

@@ -35,4 +41,3 @@ port: 6667,

var ircClient;
var oldSettings;
settingsConfig.on('updated', settingUpdated);

@@ -52,65 +57,67 @@ settingsConfig.get().then(function (settings) {

ircClient.addListener('registered', function (message) {
logger.log('Connected to server.');
});
ircClient.addListener('registered', onIRCConnected);
ircClient.addListener('message', onIRCMessage);
ircClient.addListener('error', onError);
})
.catch(onError);
};
ircClient.addListener('message', function (from, to, message) {
settingsConfig.get().then(function (settings) {
var regex = new RegExp('^' + settings.nick + ': (.*)$');
var match = regex.exec(message);
function onIRCConnected() {
logger.log('Connected to server.');
}
if (match === null) {
return;
}
function onIRCMessage(from, to, message) {
settingsConfig.get().then(function (settings) {
var regex = new RegExp('^' + settings.nick + ': (.*)$');
var match = regex.exec(message);
corsica.sendMessage('command', {raw: match[1]});
});
});
if (match === null) {
return;
}
ircClient.addListener('error', function(message) {
logger.error('Something has gone wrong.');
logger.error(message.stack || message);
});
})
.catch(function (err) {
logger.error('Something has gone wrong.');
logger.error(err.stack || err);
corsica.sendMessage('command', {raw: match[1]});
});
}
settingsConfig.on('updated', function(newSettings) {
logger.log('Settings updated');
if (ircClient === undefined) {
return;
function onError(message) {
logger.error('Something has gone wrong.', message.stack || message);
}
function settingUpdated(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);
}
// 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;
});
newSettings.channels.forEach(function(newChan) {
if (oldSettings.channels.indexOf(newChan) === -1) {
logger.log('Joining', newChan);
ircClient.join(newChan);
}
});
// 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);
}
});
});
};
oldSettings = newSettings;
}
{
"name": "corsica-irc",
"version": "0.2.0",
"version": "0.2.1",
"description": "A Corsica plugin to provide IRC messaging.",

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