Discord Bots

A collection of Discord bots designed to extend the functionality of the platform.

Tools

Discord.js, Firebase, ffmpeg, String Similarity (Dice's Coefficient)

Inspiration

Discord is a platform that I use daily to communicate with friends and family for a variety of purposes ranging from playing games to keeping up with current events. Being a very developer-friendly product, Discord provides a comprehensive set of APIs that allow users like myself to extend the platform by creating bots that enhance the functionality of the service, ultimately making it even more convenient and compelling to use.

The following is a collection of bots that were built with a focus on improving the quality of life and usability of a small Discord server that I maintain for my friends.

Highlights

Highlights from developing these bots include:

  • Automating containerized deployments to Linode using a custom CI/CD pipeline on CicleCI
  • Optimizing docker images for each bot to be as minimal as possible
  • Storing shared media and links as referencable documents in Firebase
  • Creating custom user commands and implementing generic command classes for easy reuse and consistent structure

Outcome

CheeseKimBot

Links: Source Code

A bot created to sort and archive any media (pictures, videos, tweets, etc.) shared in specific text channels. The media is automatically extracted from the message and tagged with the user that submit the content and a link to the original message to preserve context. This goal of this bot was to make it easier to find media that was shared in the past.

WaddleBot

Links: Source Code

A bot created to allow users to add custom reaction photos and GIFs to a centralized database in Firebase for use in our Discord server. Using a simple alias-based system, users can quickly access reaction photos and GIFs of much greater size and resolution compared to those typically supported by Discord.

JokBot

Links: Source Code

A bot created to provide daily updates from various sources of interest (e.g. top music charts, new music releases, birthdays, etc.). The goal of this bot was to make it easy to consume updates quickly from a variety of sources by consolidating multiple feeds into one place.

ChewyBot

Links: N/A (Source Code in Private Repo)

A bot created to allow users to stream audio from YouTube videos (both traditional uploads and livestreams) into voice chat channels. The goal of this bot was to enable and encourage sharing common experiences over voice chat.

Lil Bottie

Links: N/A (Source Code in Private Repo)

A bot that was used as a means to test the features of the Discord.js library quickly before creating more refined implementations in other bots. Some notable explorations include a soundboard (precursor to streaming audio), saving notes to Firebase (precursor to saving reaction GIFs), and data fetching (precursor to automatically tracking new music releases).