diff --git a/src/chat.ts b/src/chat.ts new file mode 100644 index 0000000..266bf2e --- /dev/null +++ b/src/chat.ts @@ -0,0 +1,63 @@ +import * as db from "./database"; +import {config} from "./config"; +import * as irc from "irc"; + +var ircClient; +var xmppClient; +var twitchClient; +var discordClient; +var liveUsers: Array; +var chatIntegration: Array; + +async function init() { + setInterval(updateUsers, 20000); + setInterval(updateInteg, 60000); +} + +async function updateUsers() { + liveUsers = await db.query('SELECT username FROM user_meta WHERE live=true'); + return; +} + +async function updateInteg() { + if(liveUsers.length === 0) { + chatIntegration = []; + return; + } + if(liveUsers.length === 1) { + chatIntegration = await db.query('SELECT * FROM chat_integration WHERE username='); + return; + } + var qs: string; + for(var u in liveUsers) { + qs += u['username'] + " OR username="; + } + qs = qs.substring(0, qs.length - 13); + chatIntegration = await db.query('SELECT * FROM chat_integration WHERE username='+db.raw.escape(qs)); +} + +async function sendAll(user, msg, src) { + +} + +async function sendIRC(channel, msg) { + +} + +async function sendDiscord(channel, msg) { + +} + +async function sendXMPP(channel, msg) { + +} + +async function sendTwitch(channel, msg) { + +} + +async function sendWeb(channel, msg) { + +} + +export { init }; \ No newline at end of file diff --git a/src/database.ts b/src/database.ts index 4ca05a6..1d9a9c7 100644 --- a/src/database.ts +++ b/src/database.ts @@ -39,7 +39,7 @@ async function genKey(){ else return key; } -async function query(query: string){ +async function query(query: string): Promise>{ return new Promise(resolve => raw.query(query, (error, results, fields) => { if(error) throw error; resolve(results);