From 29d20905400ac0efa0b367bc6187b08cc83c4c3c Mon Sep 17 00:00:00 2001 From: knotteye Date: Sat, 27 Jun 2020 03:23:04 -0500 Subject: [PATCH] Add working IRC integration --- install/config.example.yml | 1 + src/chat.ts | 36 ++++++++++++++++++++++++++++++++++-- 2 files changed, 35 insertions(+), 2 deletions(-) diff --git a/install/config.example.yml b/install/config.example.yml index f47e9f2..7366345 100644 --- a/install/config.example.yml +++ b/install/config.example.yml @@ -35,6 +35,7 @@ chat: tls: false nickname: 'SatyrChat' username: 'SatyrChat' + realname: 'Satyr Chat Integration Bot' sasl: false password: diff --git a/src/chat.ts b/src/chat.ts index 9d4f309..af69e19 100644 --- a/src/chat.ts +++ b/src/chat.ts @@ -27,7 +27,26 @@ async function init() { discordClient.login(config['chat']['discord']['token']); } if(config['chat']['irc']['enabled']){ - + ircClient = new irc.Client(config['chat']['irc']['server'], config['chat']['irc']['nickname'], { + userName: config['chat']['irc']['username'], + realName: config['chat']['irc']['realname'], + port: config['chat']['irc']['port'], + secure: config['chat']['irc']['tls'], + sasl: config['chat']['irc']['sasl'], + password: config['chat']['irc']['password'], + }); + ircClient.addListener('error', (message) => { + console.log('IRC Client Error: ', message); + }); + ircClient.once('registered', () => { + console.log("IRC Client Ready"); + }); + ircClient.on('message', (from, to, msg) => { + var lu = getUsr(to, 'irc'); + for(var i=0;i, src: string) { @@ -72,7 +93,7 @@ async function sendAll(user: string, msg: Array, src: string) { if(user === null) return; - //if(src !== "irc") sendIRC(); + if(src !== "irc") sendIRC(getCh(user, "irc"), '['+src.toUpperCase()+']'+msg[0]+': '+msg[1]); //if(src !== "twitch") sendTwitch(); if(src !== "discord") sendDiscord(getCh(user, "discord"), '['+src.toUpperCase()+']'+msg[0]+': '+msg[1]); //if(src !== "xmpp") sendXMPP(); @@ -82,6 +103,7 @@ async function sendAll(user: string, msg: Array, src: string) { async function sendIRC(channel: string, msg: string) { if(!config['chat']['irc']['enabled']) return; if(channel === null) return; + ircClient.say(channel, msg); } async function sendDiscord(channel: string, msg: string) { @@ -123,4 +145,14 @@ function getUsr(channel: string, ctype: string): Array{ return list; } +async function updateIRCChan() { + var clist: Array = []; + for(var i=0;i