From ae603ddad63a85a380cb9322a035deef620b06ae Mon Sep 17 00:00:00 2001
From: knotteye <knotteye@airmail.cc>
Date: Sat, 4 Jul 2020 03:09:32 -0500
Subject: [PATCH 1/2] Normalize discord messages into human-readable plaintext.

---
 src/chat.ts | 44 ++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 42 insertions(+), 2 deletions(-)

diff --git a/src/chat.ts b/src/chat.ts
index 11993d1..af9d5f5 100644
--- a/src/chat.ts
+++ b/src/chat.ts
@@ -18,11 +18,11 @@ async function init() {
 	if(config['chat']['discord']['enabled']){
 		discordClient = new discord.Client();
 		discordClient.once('ready', ()=>{ console.log('Discord bot ready')});
-		discordClient.on('message', (msg) => {
+		discordClient.on('message', async (msg) => {
 			if(msg['author']['bot']) return;
 			var lu = getUsr(msg['channel']['name'], 'discord')
 			for(var i=0;i<lu.length;i++){
-				sendAll(lu[i], [msg['author']['username'], msg['content']], "discord")
+				sendAll(lu[i], [msg['author']['username'], await normalizeDiscordMsg(msg)], "discord");
 			}
 		});
 		discordClient.login(config['chat']['discord']['token']);
@@ -184,4 +184,44 @@ async function updateTwitchChan() {
 	}
 }
 
+async function normalizeDiscordMsg(msg): Promise<string>{
+	var nmsg: string=msg['content'];
+	
+	//normalize user mentions
+	var uarray = await msg['mentions']['users'].array();
+	var karray = await msg['mentions']['users'].keyArray();
+	for(var i=0;i<karray.length;i++){
+		var usr = uarray[i];
+		nmsg = nmsg.replace(new RegExp('<@!'+karray[i]+'>', 'g'), '@'+usr['username']);
+	}
+	
+	//normalize emoji
+	var e = nmsg.match(new RegExp('<:\\w+:[0-9]+>', 'g'));
+		//<:.+:.+>
+	if(e !== null)
+	for (var i=0;i<e.length;i++){
+		nmsg = nmsg.replace(e[i], e[i].match(new RegExp(':\\w+:', 'g'))[0]);
+	}
+	//in 10 minutes, I will have forgot what all of this regex does.
+	
+	//normalize role mentions
+	var uarray = await msg['mentions']['roles'].array();
+	var karray = await msg['mentions']['roles'].keyArray();
+	for(var i=0;i<karray.length;i++){
+		var role = uarray[i];
+		nmsg = nmsg.replace(new RegExp('<@&'+karray[i]+'>', 'g'), '@'+role['name']);
+	}
+	
+	//normalize channel mentions
+	var c = nmsg.match(new RegExp('<#[0-9]+>', 'g'));
+	if(c !== null)
+	for(var i=0;i<c.length;i++){
+		nmsg = nmsg.replace(c[i], '#'+discordClient.channels.get(c[i].match(new RegExp('[0-9]+', 'g'))[0])['name']);
+	}
+
+	//fuck me this better work
+
+	return nmsg;
+}
+
 export { init, sendAll };
\ No newline at end of file

From ec57e23e9cf181ee97c22dc50bd2db93aaea38dc Mon Sep 17 00:00:00 2001
From: knotteye <knotteye@airmail.cc>
Date: Sat, 4 Jul 2020 03:14:46 -0500
Subject: [PATCH 2/2] Increment package version

---
 package.json | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/package.json b/package.json
index bb5def9..eeb5699 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
 {
 	"name": "satyr",
-	"version": "0.7.0",
+	"version": "0.7.1",
 	"description": "A livestreaming server.",
 	"license": "AGPL-3.0",
 	"author": "knotteye",