Commit 39284896cb92dff66494b82b55fb39d84116297e

Authored by Adhidarma Hadiwinoto
1 parent 124c24ccc9
Exists in master

echi gw blacklist

Showing 1 changed file with 3 additions and 0 deletions Inline Diff

1 var fs = require('fs'); 1 var fs = require('fs');
2 var ini = require('ini'); 2 var ini = require('ini');
3 var config = ini.parse(fs.readFileSync(__dirname + '/config.ini', 'utf-8')); 3 var config = ini.parse(fs.readFileSync(__dirname + '/config.ini', 'utf-8'));
4 var redis = require('redis'); 4 var redis = require('redis');
5 5
6 var irc = require('irc'); 6 var irc = require('irc');
7 var options = { 7 var options = {
8 userName: config.globals.irc_nick, 8 userName: config.globals.irc_nick,
9 password: config.globals.nickserv_password, 9 password: config.globals.nickserv_password,
10 sasl: true, 10 sasl: true,
11 stripColors: true, 11 stripColors: true,
12 channels: [config.globals.aaa_pull_channel, config.globals.topup_message_channel] 12 channels: [config.globals.aaa_pull_channel, config.globals.topup_message_channel]
13 }; 13 };
14 var client = new irc.Client(config.globals.irc_server, config.globals.irc_nick, options); 14 var client = new irc.Client(config.globals.irc_server, config.globals.irc_nick, options);
15 15
16 var redisClient = redis.createClient(config.globals.redis_port, config.globals.redis_host); 16 var redisClient = redis.createClient(config.globals.redis_port, config.globals.redis_host);
17 17
18 client.addListener('message', function (from, to, message) { 18 client.addListener('message', function (from, to, message) {
19 console.log('MESSAGE ' + from + ' => ' + to + ': ' + message); 19 console.log('MESSAGE ' + from + ' => ' + to + ': ' + message);
20 }); 20 });
21 21
22 client.addListener('registered', function () { 22 client.addListener('registered', function () {
23 console.log('Connected'); 23 console.log('Connected');
24 //client.say('NickServ', 'identify ' + config.globals.nickserv_password); 24 //client.say('NickServ', 'identify ' + config.globals.nickserv_password);
25 }); 25 });
26 26
27 client.addListener('join', function (channel, nick, message) { 27 client.addListener('join', function (channel, nick, message) {
28 console.log('JOIN ' + channel); 28 console.log('JOIN ' + channel);
29 29
30 if (channel == config.globals.aaa_pull_channel) { 30 if (channel == config.globals.aaa_pull_channel) {
31 redisClient.psubscribe('kimochi.*.text'); 31 redisClient.psubscribe('kimochi.*.text');
32 } 32 }
33 else if (channel == config.globals.topup_message_channel) { 33 else if (channel == config.globals.topup_message_channel) {
34 redisClient.psubscribe('echi.topup_report.*.message'); 34 redisClient.psubscribe('echi.topup_report.*.message');
35 } 35 }
36 }); 36 });
37 37
38 client.addListener('notice', function (from, to, message) { 38 client.addListener('notice', function (from, to, message) {
39 console.log('NOTICE ' + from + ' => ' + to + ': ' + message); 39 console.log('NOTICE ' + from + ' => ' + to + ': ' + message);
40 return; 40 return;
41 41
42 if (from == 'NickServ' && message.match('You are now identified for')) { 42 if (from == 'NickServ' && message.match('You are now identified for')) {
43 console.log('Joining ' + config.globals.aaa_pull_channel); 43 console.log('Joining ' + config.globals.aaa_pull_channel);
44 client.join(config.globals.aaa_pull_channel); 44 client.join(config.globals.aaa_pull_channel);
45 45
46 console.log('Joining ' + config.globals.topup_message_channel); 46 console.log('Joining ' + config.globals.topup_message_channel);
47 client.join(config.globals.topup_message_channel); 47 client.join(config.globals.topup_message_channel);
48 } 48 }
49 }); 49 });
50 50
51 client.addListener('pm', function (from, message) { 51 client.addListener('pm', function (from, message) {
52 console.log('PM ' + from + ' => ME: ' + message); 52 console.log('PM ' + from + ' => ME: ' + message);
53 }); 53 });
54 54
55 redisClient.on("pmessage", function (pattern, channel, message) { 55 redisClient.on("pmessage", function (pattern, channel, message) {
56 if (channel.match(/^kimochi/)) { 56 if (channel.match(/^kimochi/)) {
57 var gateway = channel.match(/gw:(.*)\.text/)[1]; 57 var gateway = channel.match(/gw:(.*)\.text/)[1];
58 client.say(config.globals.aaa_pull_channel, message + ' (' + gateway + ')'); 58 client.say(config.globals.aaa_pull_channel, message + ' (' + gateway + ')');
59 } 59 }
60 else if (channel.match(/^echi/)) { 60 else if (channel.match(/^echi/)) {
61 var gateway = channel.match(/gw:(.*)\.message$/)[1]; 61 var gateway = channel.match(/gw:(.*)\.message$/)[1];
62 if (gateway == config.globals.echi_gw_blacklist) {
63 return;
64 }
62 client.say(config.globals.topup_message_channel, message + ' (' + gateway + ')'); 65 client.say(config.globals.topup_message_channel, message + ' (' + gateway + ')');
63 } 66 }
64 }); 67 });
65 68