Skip to content

lucascompython/CritBot

Repository files navigation

CritBot (the discord bot)

This is a discord bot written with discord.py v2.0.
The bot has a custom i18n system.
The only translated languages for now are Portuguese and English.

Features

  • Translations - For now only English and Portuguese
  • High quality audio
  • Youtube's Dislikes - https://returnyoutubedislike.com
  • Sponsorblock - https://github.com/topi314/Sponsorblock-Plugin
  • Music AutoPlay - When enabled the bot will play music based on the music played that session
  • Downloading Music - Download anything (get's converted to mp3) that yt-dlp supports, at 320kbps. Discord limits files bigger than 25MB (around, 11min.)
  • Audio Filters - Nightcore, 8d, reverb, etc.
  • Multiple Platform Support - Youtube, YT Music, Spotify and Sondcloud
  • Reddit memes
  • Both prefixed and slash commands

Installation & Execution

This bot was only tested on Linux.
Python 3.12+ is required.
You can invite him here.
Nightly version here.
The installation steps are as follows:

I have only tested PostgreSQL >=15.2 but it should work with other versions.

Create a database and a user with the psql tool:

CREATE ROLE user WITH LOGIN PASSWORD 'yourpw';
CREATE DATABASE crit OWNER user;

And then

git clone https://github.com/lucascompython/CritBot.git
cd CritBot
# install PDM (build tool)
pip install pdm # Also, fuck PEP 668

# activate virtual environmet
eval $(pdm venv activate)

# install dependencies
pdm install

#change the appsettings.yaml file with your token and information

pdm run setup
pdm run start --help

Todo's (mostly by order)

  • add internationalization
  • add i18n to app_commands and on commands descriptions
  • add Music
  • get a real database probably PostgreSql
  • update to wavelink 3.0
  • remake the i18n system
  • update help menu on specific command
  • add support for other languages with Google Translate
  • add Docker support

Known "bugs"

  • If two translations are being processed at the same time, it might error. I know this is stupid.
  • The interaction name, description, choices, etc. are set per user locale while everything else is set per guild language.

Contributions

Feel free to help.
If you have any questions on the code you can send me a DM on my Discord (lucas_delinhares)

License

This project is licensed under the GPL3 license.

About

This is a discord bot written with discord.py v2.0

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published