Implemented automatic OP
This commit is contained in:
parent
e15cb27d57
commit
f36f278c20
194
app.js
194
app.js
|
@ -3,15 +3,63 @@ var config = {
|
||||||
irc: {
|
irc: {
|
||||||
server: 'irc.elisa.fi',
|
server: 'irc.elisa.fi',
|
||||||
nick: 'Ookami-dev',
|
nick: 'Ookami-dev',
|
||||||
channels: ['#kulmapaikka-dev', '#hi-tech', '#kulmapaikka']
|
channels: ['#kulmapaikka-dev']
|
||||||
|
}
|
||||||
|
};
|
||||||
|
var members = {
|
||||||
|
'lanxu': {
|
||||||
|
user: /julankin$/,
|
||||||
|
host: /^jumi\.lut\.fi$/
|
||||||
|
},
|
||||||
|
'asdfas': {
|
||||||
|
user: /asdfas$/,
|
||||||
|
host: /(.*)\.ssp\.fi$/
|
||||||
|
},
|
||||||
|
'asdfas2': {
|
||||||
|
user: /Asdfas$/,
|
||||||
|
host: /(.*)\.elisa-mobile\.fi$/
|
||||||
|
},
|
||||||
|
'cbd': {
|
||||||
|
user: /cbd$/,
|
||||||
|
host: /kapsi\.fi$/
|
||||||
|
},
|
||||||
|
'fitzhood': {
|
||||||
|
user: /Fitzhood$/,
|
||||||
|
host: /(.*)ssp\.fi$/
|
||||||
|
},
|
||||||
|
'mindflayer': {
|
||||||
|
user: /mindflaye$/,
|
||||||
|
host: /(.*)opintanner\.fi$/
|
||||||
|
},
|
||||||
|
'pariah': {
|
||||||
|
user: /rautia$/,
|
||||||
|
host: /mozart\.cc\.tut\.fi$/
|
||||||
|
},
|
||||||
|
'zoid': {
|
||||||
|
user: /jolaakso$/,
|
||||||
|
host: /kapsi\.fi$/
|
||||||
|
},
|
||||||
|
'palin': {
|
||||||
|
user: /Palin$/,
|
||||||
|
host: /(.*)\.elisa-mobile\.fi$/
|
||||||
|
},
|
||||||
|
'rootmer': {
|
||||||
|
user: /ror$/,
|
||||||
|
host: /(.*)\.inet\.fi$/
|
||||||
|
},
|
||||||
|
'masaKapsi': {
|
||||||
|
user: /maruohon$/,
|
||||||
|
host: /kapsi\.fi$/
|
||||||
|
},
|
||||||
|
'masaJumi': {
|
||||||
|
user: /maruohon$/,
|
||||||
|
host: /jumi\.lut\.fi$/
|
||||||
|
},
|
||||||
|
'masaAura': {
|
||||||
|
user: /masa$/,
|
||||||
|
host: /(.*)\.ssp\.fi$/
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
var members = [
|
|
||||||
{
|
|
||||||
nick: 'lanxu',
|
|
||||||
hostmask: ''
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
var irc = require('irc');
|
var irc = require('irc');
|
||||||
var penaapi = require('./penaapi')();
|
var penaapi = require('./penaapi')();
|
||||||
|
@ -23,6 +71,28 @@ var owmCityIds = {
|
||||||
Lappeenranta: 648900
|
Lappeenranta: 648900
|
||||||
};
|
};
|
||||||
|
|
||||||
|
var iconCodeToText = {
|
||||||
|
'01d': 'selkeää',
|
||||||
|
'02d': 'puolipilvistä',
|
||||||
|
'03d': 'pilvistä',
|
||||||
|
'04d': 'pilvipeite rakoilee',
|
||||||
|
'09d': 'sadekuuroja',
|
||||||
|
'10d': 'vesisadetta',
|
||||||
|
'11d': 'ukkostaa',
|
||||||
|
'13d': 'lumisadetta',
|
||||||
|
'50d': 'sumua',
|
||||||
|
'01n': 'selkeää',
|
||||||
|
'02n': 'puolipilvistä',
|
||||||
|
'03n': 'pilvistä',
|
||||||
|
'04n': 'pilvipeite rakoilee',
|
||||||
|
'09n': 'sadekuuroja',
|
||||||
|
'10n': 'vesisadetta',
|
||||||
|
'11n': 'ukkostaa',
|
||||||
|
'13n': 'lumisadetta',
|
||||||
|
'50n': 'sumua'
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
var getTemperatureString = function() {
|
var getTemperatureString = function() {
|
||||||
var Promise = require('promise');
|
var Promise = require('promise');
|
||||||
var promise = new Promise(function(resolve, reject) {
|
var promise = new Promise(function(resolve, reject) {
|
||||||
|
@ -32,26 +102,20 @@ var getTemperatureString = function() {
|
||||||
penaapi.getTemperatures()
|
penaapi.getTemperatures()
|
||||||
]).then(function(results) {
|
]).then(function(results) {
|
||||||
var resultString = '';
|
var resultString = '';
|
||||||
//console.log(results);
|
|
||||||
// OWM
|
// OWM
|
||||||
results[0].list.forEach(function(data) {
|
results[0].list.forEach(function(data) {
|
||||||
//console.log('' + data.name + ': ' +(data.main.temp-273.15).toFixed(1));
|
|
||||||
var city = data.name;
|
var city = data.name;
|
||||||
var temp = (data.main.temp-273.15).toFixed(1);
|
var temp = (data.main.temp-273.15).toFixed(1);
|
||||||
|
var code = data.weather[0].icon;
|
||||||
|
|
||||||
resultString += '' + city + ' ('+temp+' °C), ';
|
resultString += '' + city + ' ('+temp+' °C, '+iconCodeToText[code]+'), ';
|
||||||
});
|
});
|
||||||
|
|
||||||
if(results[1].length > 0) {
|
if(results[1].length > 0) {
|
||||||
//console.log(result[0].temp);
|
|
||||||
var temp = Number(results[1][0].temp).toFixed(1);
|
var temp = Number(results[1][0].temp).toFixed(1);
|
||||||
resultString += 'Aura (' + temp + ' °C)';
|
resultString += 'Aura (' + temp + ' °C)';
|
||||||
}
|
}
|
||||||
//console.log('Temp:', resultString);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Pena
|
|
||||||
resolve(resultString);
|
resolve(resultString);
|
||||||
|
|
||||||
});
|
});
|
||||||
|
@ -59,7 +123,7 @@ var getTemperatureString = function() {
|
||||||
return promise;
|
return promise;
|
||||||
};
|
};
|
||||||
var getDiceString = function(numThrows, sides) {
|
var getDiceString = function(numThrows, sides) {
|
||||||
|
|
||||||
var total = 0;
|
var total = 0;
|
||||||
var totalThrows = [];
|
var totalThrows = [];
|
||||||
|
|
||||||
|
@ -84,23 +148,26 @@ var getDiceString = function(numThrows, sides) {
|
||||||
totalThrows.forEach(function(value) {
|
totalThrows.forEach(function(value) {
|
||||||
resultString += value + ', ';
|
resultString += value + ', ';
|
||||||
});
|
});
|
||||||
|
|
||||||
resultString = resultString.substring(0, resultString.length - 2);
|
resultString = resultString.substring(0, resultString.length - 2);
|
||||||
resultString += ' (yhteensä: ' + total + '. '+ (total/numThrows).toFixed(2) + ' per heitto)';
|
resultString += ' (yhteensä: ' + total + '. '+ (total/numThrows).toFixed(2) + ' per heitto)';
|
||||||
|
|
||||||
return resultString;
|
return resultString;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
getTemperatureString().then(function(result) {
|
||||||
|
console.log(result);
|
||||||
|
});
|
||||||
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
var res = null;
|
var res = null;
|
||||||
var message= '.heita 4d6';
|
var message= '.heita 4d6';
|
||||||
if (res = message.match(/^\.heita ([0-9]+)d([0-9]+)$/i)) {
|
if (res = message.match(/^\.heita ([0-9]+)d([0-9]+)$/i)) {
|
||||||
console.log(getDiceString(res[1], res[2]));
|
console.log(getDiceString(res[1], res[2]));
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
/*
|
/*
|
||||||
var message = '.saa Tampere'; var res = null;
|
var message = '.saa Tampere'; var res = null;
|
||||||
if (res = message.match(/^\.saa ([^0-9 ]+)$/i)) {
|
if (res = message.match(/^\.saa ([^0-9 ]+)$/i)) {
|
||||||
|
@ -112,15 +179,25 @@ if (res = message.match(/^\.heita ([0-9]+)d([0-9]+)$/i)) {
|
||||||
console.log('Eioo');
|
console.log('Eioo');
|
||||||
} else {
|
} else {
|
||||||
var city = result.name;
|
var city = result.name;
|
||||||
|
var country = result.sys.country;
|
||||||
var temp = (result.main.temp-273.15).toFixed(1);
|
var temp = (result.main.temp-273.15).toFixed(1);
|
||||||
console.log(city, temp);
|
var sunriseDate = new Date(result.sys.sunrise*1000);
|
||||||
|
var sunsetDate = new Date(result.sys.sunset*1000);
|
||||||
|
|
||||||
|
var sunrise = sunriseDate.getHours() + '.' + sunriseDate.getMinutes();
|
||||||
|
var sunset = sunsetDate.getHours() + '.' + sunsetDate.getMinutes();
|
||||||
|
|
||||||
|
var humidity = result.main.humidity;
|
||||||
|
var pressure = result.main.pressure;
|
||||||
|
|
||||||
|
console.log(city, temp, country, sunrise, sunset, humidity, pressure);
|
||||||
}
|
}
|
||||||
}, function(error) {
|
}, function(error) {
|
||||||
console.log('fas',error);
|
console.log('fas',error);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
var client = new irc.Client(config.irc.server, config.irc.nick, {
|
var client = new irc.Client(config.irc.server, config.irc.nick, {
|
||||||
debug: true,
|
debug: true,
|
||||||
|
@ -145,9 +222,22 @@ client.addListener('message', function (from, to, message) {
|
||||||
client.say(to, 'Eioo: ' + res[2]);
|
client.say(to, 'Eioo: ' + res[2]);
|
||||||
} else {
|
} else {
|
||||||
var city = result.name;
|
var city = result.name;
|
||||||
|
var country = result.sys.country;
|
||||||
var temp = (result.main.temp-273.15).toFixed(1);
|
var temp = (result.main.temp-273.15).toFixed(1);
|
||||||
//console.log(city, temp);
|
var code = result.weather[0].icon;
|
||||||
client.say(to, 'Sää: '+city+' ('+temp+' °C)');
|
var sunriseDate = new Date(result.sys.sunrise*1000);
|
||||||
|
var sunsetDate = new Date(result.sys.sunset*1000);
|
||||||
|
|
||||||
|
var sunrise = sunriseDate.getHours() + '.' + sunriseDate.getMinutes();
|
||||||
|
var sunset = sunsetDate.getHours() + '.' + sunsetDate.getMinutes();
|
||||||
|
|
||||||
|
var humidity = result.main.humidity;
|
||||||
|
var pressure = result.main.pressure;
|
||||||
|
|
||||||
|
var windspeed = result.wind.speed;
|
||||||
|
|
||||||
|
//console.log(city, temp, code);
|
||||||
|
client.say(to, 'Sää: '+city+', '+country+' ('+temp+' °C, '+ iconCodeToText[code] +', ilmankosteus: '+humidity+' %, ilmanpaine: '+pressure+' hPa, tuulen nopeus: '+windspeed+' m/s)');
|
||||||
}
|
}
|
||||||
}, function(error) {
|
}, function(error) {
|
||||||
console.log('ERROR ',error);
|
console.log('ERROR ',error);
|
||||||
|
@ -162,11 +252,53 @@ client.addListener('message', function (from, to, message) {
|
||||||
if (message.match(/^\.heit(a|ä) voltti homo$/i)) {
|
if (message.match(/^\.heit(a|ä) voltti homo$/i)) {
|
||||||
client.say(to, 'steam://run/1250');
|
client.say(to, 'steam://run/1250');
|
||||||
}
|
}
|
||||||
|
if (message.match(/^\.op$/i)) {
|
||||||
|
client.send('NAMES', to);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
client.addListener('join', function(channel, who) {
|
client.addListener('join', function(channel, who) {
|
||||||
|
client.whois(who, function(result) {
|
||||||
|
console.log(result);
|
||||||
|
|
||||||
|
for(var memberNick in members) {
|
||||||
|
var member = members[memberNick];
|
||||||
|
|
||||||
|
if(result.host.match(member.host) && result.user.match(member.user)) {
|
||||||
|
client.send('MODE', channel, '+o', result.nick);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
setTimeout(function() {
|
setTimeout(function() {
|
||||||
// client.say(channel, 'Moi ' + who + '!');
|
// client.say(channel, 'Moi ' + who + '!');
|
||||||
}, 4000);
|
}, 4000);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
client.addListener('error', function(message) {
|
||||||
|
console.log('error: ', message);
|
||||||
|
});
|
||||||
|
|
||||||
|
client.addListener('names', function(channel, nicks) {
|
||||||
|
console.log('names', channel, nicks);
|
||||||
|
if(typeof nicks[config.irc.nick] !== 'undefined' && nicks[config.irc.nick] === '@') {
|
||||||
|
// go through nicks
|
||||||
|
for(var nick in nicks) {
|
||||||
|
if(nicks[nick] !== '@') {
|
||||||
|
client.whois(nick, function(result) {
|
||||||
|
for(var memberNick in members) {
|
||||||
|
var member = members[memberNick];
|
||||||
|
|
||||||
|
if(result.host.match(member.host) && result.user.match(member.user)) {
|
||||||
|
console.log('testing', channel, result.nick);
|
||||||
|
client.send('MODE', channel, '+o', result.nick);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
Loading…
Reference in New Issue
Block a user