Inspiration
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
- discord
- ibm-watson
- javascript
Log in or sign up for Devpost to join the conversation.