MarinosBot
Originally, MarinosBot was created so my friends and I could easily play music on our Discord server as background noise while we were talking, as we didn’t want to rely on 3rd-party solutions, or have to deal with daily limits. The first prototype was rushed and written entirely in JavaScript, which led to frequent crashes due to poor error handling.
These issues were mainly caused by the DisTube library itself, as yt-dlp exposed warnings on stdout that weren’t handled correctly. To work around this, I initially used patch-package and patched it, and then submitted an issue on GitHub, to help resolve it upstream.
Yesterday, I decided it was finally time to re-write the project completely. This time, I’m writing it using TypeScript, and I’m trying to make it feel more like an actual, proper bot than something random.
Today, I finished the barebones of the new project. So far, I’ve added the initial typings, event handling system and the first of many-commands-to-come, the /play command.
To keep the codebase organised, I also created a custom AudioManager that interfaces DisTube. It currently has few methods and no accessors, but it will gradually evolve as more functionality is needed.
My long-term goal is to make MarinosBot an all-in-one Discord bot. Instead of relying on multiple bots that each handle a small subset of features, I want a single bot that can provide music playback, moderation tools, utility, fun commands…. and whatever else in one place. I currently host it locally on my Raspberry Pi.
I’m attaching the current tree of the project, the start of it anyway.
Comments 0
No comments yet. Be the first!
Sign in to join the conversation.