-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlogger.js
37 lines (31 loc) · 896 Bytes
/
logger.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
const tmi = require('tmi.js');
const fs = require('fs');
const process = require('process');
const {tIdentity, tOptions, tChannels, filterRegex, prefix, suffix} = require('./config.json');
const writeStreams = new Map();
const client = new tmi.Client({
options: tOptions,
identity: tIdentity,
channels: tChannels
});
tChannels.forEach(e => {
e = e.replace('#','');
let stream = fs.createWriteStream('./'+ e +'.txt', {flags:'a'});
writeStreams.set(e, stream);
})
const filter = new RegExp(filterRegex);
client.connect().catch(console.error);
client.on('message', (channel, tags, message, self) => {
if(self) return;
if(filter.test(message))
{
let stream = writeStreams.get(channel.replace('#',''));
stream.write(prefix + message + suffix + '\n');
}
});
//Possibly redundant, better safe than sorry
process.on('exit', function(){
writeStreams.forEach(e => {
e.close();
})
})