Commit 31772ff5dbe4be4b5bf78b3b0426a0fd1f55df51

Authored by Adhidarma Hadiwinoto
1 parent d001364575
Exists in master

subscibe epic

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