const fs = require('fs') const irc = require('irc'); const readline = require('readline') const model = 'user,date,message' const { dirname } = require('path'); const rootDir = dirname(require.main.filename); const settings = JSON.parse(fs.readFileSync(rootDir + '/settings.json')); let currentChannel = settings.channels[0] const client = new irc.Client(settings.server, settings.username, { channels: settings.channels, userName: 'gordown', realName: 'Gor Down', autoRejoin: true, retryCount: 100000000, retryDelay: 2*60*1000, // secure: true, // certExpired: true, // selfSigned: true }); client.addListener('registered', () => { client.addListener('error', (message) => { console.log('Error: ' + message) }) client.addListener('message', function (from, channel, message) { if (channel === settings.username) return logMessage(from, channel, message) }); client.addListener('join', (channel, nick) => { logMessage(nick, channel, "Joined the channel") if (nick === settings.username) sendMessage(channel, "# Appears as Jhenna_Hina.http://www.mermeliz.com/hina/dl/Jhenna_Hina.AVB") }) client.addListener('part', (channel, nick, reason, _message) => { console.log(channel) logMessage(nick, channel, "Parted: " + reason) }) client.addListener('quit', (nick, reason, channels, _message) => { for(channel in channels){ logMessage(nick, channel, "Left.") } }) client.addListener('kick', (channel, nick, by, reason, _message) => { logMessage(nick, channel, "Kicked by: " + by + ": " + reason) }) const rl = readline.createInterface({ input: process.stdin, output: process.stdout }); function messagePrompt(){ rl.question(settings.username + ': ', (command) => { // //si g! // const split = command.split["!"][0] // if(split === "g"){ // const terminalCommand = split[1] // switch (terminalCommand){ // case "current_channel": // } // } sendMessage(currentChannel, command) messagePrompt() }); } function logMessage(from, channel, message){ const currentDate = new Date(); ////////////////////////////////////////////////////////////////DATE FORMAT const year = currentDate.getFullYear(); const month = String(currentDate.getMonth() + 1).padStart(2, '0'); const day = String(currentDate.getDate()).padStart(2, '0'); const hours = String(currentDate.getHours()).padStart(2, '0'); const minutes = String(currentDate.getMinutes()).padStart(2, '0'); const seconds = String(currentDate.getSeconds()).padStart(2, '0'); //////////////////////////////////////////////////////////////// const formattedDate = `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`; const filename = rootDir + '/logs/' + channel + '.csv' if (!fs.existsSync(filename)){ fs.writeFileSync(filename, model) } fs.appendFileSync(filename, `\n${from},${formattedDate},"${message}"`) if(from !== settings.username)console.log(`${from}: ${message}`) } function sendMessage(channel, message){ logMessage(settings.username, channel, message) client.say(channel, message) } rl.prompt(); messagePrompt() })