-
Notifications
You must be signed in to change notification settings - Fork 1
Home
Wiki is currently under construction!
In short, this is simply a Discord bot.
The longer version: This Discord bot is written in Python using the py-cord package. It has been programmed to solve quite a few functionality and usability problems for the members of our community which were not covered by any open-source bots available on the internet. One of the requirements in our community is simply privacy, that means no third-party bots are fit for the job. We simply don't know what happens with our conversations, member data and attachments having a bot in our server that can't be screened.
Years ago, our community (like many others) was using WhatsApp and a forum to keep in touch with eachother. Our administrators were managing several dozens of group chats and it became very tedious. The idea was to migrate the community to Discord and have a better experience managing and setting up everything. However, Discord was missing some functionality as I (Matts) wanted text-channels to only show up when a member subscribes to them. A quick search learned this functionality did not exist in any existing bot, and so the idea of a custom bot was born.
The first iteration of the bot was written in Node.js using the Discord.js library. It was built solely for letting members subscribe to text-channel topics by choosing their own role through reactions in a settings channel. The bot would pick up the reaction and assign the role with rights to the chosen text-channel.
Soon after, the second iteration included another piece of functionality, the automatic scaling of voice-channels. As I got fed up creating a dozen of voice-channels during a community event and cleaning them all up afterwards because nobody used that many and it clutters up the view. A nice extra was configured to automatically rename the voice-channel to the most played game amongst people in the voice-channel.
A lot of small functionality was added over time, the biggest change came when Rutger decided to rewrite the bot in Python using the Discord.py library. This allowed us to start using the (at the time very beta) button functionality in favor of reactions. Another new feature was the fancy poll functionality with custom designs. This version has run for about a year.
The latest iteration is yet another rewrite, because we all know what happened to the Discord.py project. We are now running on py-cord instead.
The bot currently has the following main functions:
- Text-Channel subscriptions (self-role)
- Voice-Channel AutoScaler
- Voice-Channel AutoRename
- Poll function
- Generic commands
The recommended way to run this bot is as a container on a container platform of choice. Do keep in mind that our automated build process is on linux\amd64, if you require an arm based image please clone the repo and build it yourself. Simply use the supplied docker-compose.yml or Kubernetes files to get started. Don't forget your persistent storage!
It's also possible to run this bot locally from the project folder. Make sure all the requirements are fulfilled as that usually generates an error if you run into one. Make sure you are one level into the project directory as the top level is for container environments only.