Skip to content

JulioLoayzaM/CroissantBot

Repository files navigation

CroissantBot

Documentation Status

Este README está disponible en Español.

CroissantBot is a Discord bot written in Python using the discord.py rewrite.

It started as a personal replacement for Dankmemer and Groovy, and grew into something I wanted to share: while my instance is not openly available, the code is. This repo aims to provide a template to help anyone* create their own bot by just cloning the repo, fill in the blanks with its documentation and run it on their machine.

*some Python experience is recommended.

Table of contents

The future of this bot

The development of discord.py ended a few months ago, due in part to the new Message.content privileged intent.

And then, it resumed!

I'll just say I am happy about Danny's return and thankful for the effort he and all the discord.py contributors made.

After months of not being able to work on this bot, I've finally updated the code. Version 3.0.0 works with discord.py v2.0.0!

Features

For a list of all commands, check the docs.

Music player

Play music from YouTube in voice chat, with support for playback on different servers simultaneously and a queue for each one.

Playlists

Save as many playlists per user as you want with a PostgreSQL database and the Playlist cog. Or use the Favourites cog to save songs to a single playlist per user without using PostgreSQL.

Memes

Get memes from Reddit and avoid duplicates by keeping track of memes sent to each server.

Kill messages

Based on Dankmemer's feature, sends a message targeting a specified server member. It also keeps count of kills in each server. Messages are not included.

Livestream status

Sometimes Twitch's notifications are unreliable, so the bot can notify users about new streams through DMs. It works with YouTube streams as well.

Logging

Outputs basic information and errors to stdout. Debug information is logged to a file. It should allow to at least pinpoint which function has caused an error.

How to run

The installation guide has been moved to the documentation site. An "offline" version can be found here and the old, incomplete version of the docs (pre-2.0.0) can be found here.

Modifying the code

The idea of this template is to allow any modification to the code. As such, and as stated further down, the code can be freely modified under one condition: the content of the LICENSE file must be included with all copies or substantial portions of the code. For more information, see the LICENSE file. For an example on how this works, see the music cog, which has code from the basic_voice example of discord.py.

Origin

I couldn't find the original video, but this meme is the inspiration for the name and croissant command: https://www.youtube.com/watch?v=s8VJ4QuVDBE.

License

This project is available under the MIT license. See the LICENSE.md file for more info.

Contributing

All contributions are welcome, see CONTRIBUTING.

Versioning

The versions of this repo follow the rules of Semantic Versioning 2.0.0.