Sometimes when someone isn't feeling very well, they want someone to notice and put subtle hints of it in their language. Not everyone picks it up. Emotion Bot is the attentive companion who is always looking out for others and does its best to track anyone who might not be doing their best.

What it does

If someone posts something in a Discord server that might indicate poor mental health, Emotion Bot picks it up and alerts the moderators of that server.

How we built it

Using Node, Javascript, and Discord.js- the library to build Discord bots! Discord.js uses websockets to have a constant channel of data of messages that are posted on a Discord server. Every post that goes through (posts that are within 5 seconds of each other will be concatenated and treated as one message) will be passed in as data to IBM Watson's tone analyzer, who will then in turn send feedback regarding what someone wrote. Any severe tones of anger, fear, or sadness (These emotions can easily be changed to look out for other things), if picked up, will alert moderators of the Discord server.

Challenges we ran into

Parsing through Discord's hierarchy of objects and understanding the different types of properties attributed to servers was tricky. Also it so happens that Watson doesn't detect slang or cultural references so it can't detect everything

Accomplishments that we're proud of

We managed to finish!

What we learned

Using Discord.js for the first time was definitely interesting. We also happened to learn about Javascript's callstack and how it handles it. (From a queue to a stack to actually calling the functions!- had to understand it more in detail because of some issues with timeout)

What's next for Emotion Bot

Bot for other services! (like Slack, Facebook, or even SMS texting)

Built With

Share this project: