- Notifications
You must be signed in to change notification settings - Fork19
ishwi/Chuu
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Chuu is a Discord bot that integrates Last.fm with Discord. Highlycustomizable at the user and server level. It also has some unique integrations with RateYourMusic.com. There are a tonof available commands like:
- Your top of albums that were released in a given year
- Image charts of both albums and artists
- Play and scrobble music directly from Discord using Youtube,Bandcamp,Soundcloud,Twitch...
- Artist, albums and songs leaderboards (crowns)
- Unique artists within a server
- Genre information about your artist/albums
- 200+ more commands!
- Full support for slash commands
You can invite the bot to your discord serverusingthis link:
There is also a support server if you want to ask any questions directly.Join here:
You can also build the bot and install it on your own. In order to do that you need:
Java 19+
MariaDB 10.5+
Postgresql 14+
- DC_KY
- DC_SC
- client_ID
- client_Secret
- LASTFM_APIKEY
- LASTFM_APISECRET (If you want to enable scrobbling)
- LASTFM_BOT_SESSION_KEY (If you want to log what the bot scrobbles to a last.fm account)
- DISCORD_TOKEN
OS
- WALLPAPER_FOLDER (Directory with images to source backgrounds)
- CACHE_FOLDER (Where to cache images)
- IPV6_BLOCK (A ipv6 block used to avoid getting ip banned by YT)
OTHER
- MODERATION_CHANNEL_ID (A discord channel where the bot will dump some info)
- MODERATION_CHANNEL_2_ID (Another discord channel where the bot will dump some info)
Then you should set all those properties in thefileall.properties
In MariaDB you should first create a database within MariaDB, and then inside that database run firstthefollowing SQL script, andthen all the sql scriptsundermigrations sequentially
Finally adjustthedatasource.propertieswith the corresponding properties.
For Postgres first checkthe Musicbrainz section. Once that is done you should runthefollowing SQL scriptand adjust thembiz.properties with thecorresponding properties.
If you are interested in posting info of the bot to a given botlist, fill thefilebotlists.properties. The keysare specifiedinBotLists.java
For Postgresql I would recommend you to usembdata to set up the musicbrainzdatabase. Then adjustthembiz.properties with thecorresponding properties. WARNING: It's like a 30GB database, so take note. It's recommended to set normal and lowercaseindexes on artist and album names to optimize some queries. Also, the pg_trgm extension should be enabled.
You have two options if you don't want to set up the whole musicbrainz instance:
- Use a mock musicbrainz instance as explained inhere
- ModifytheMusicBrainzServiceProviderwiththedummy instancethat does nothing. Uncommenting line 14 and commenting line 13.
Both this options will result on a lot of commands misbehaving and these options are not fully supported and a lot oferrors can be produced because of that so please be aware of that!.
After all that is installed you can run the task shadowjar of gradle and then you can execute, withexecutable
beingthe name of the jar that is onbuild/libs
java -jar executable.jar
and the bot should begin running.
If you were to do testing you should also fill the equivalent all.properties of the test module and also fillthetester.properties with a newDiscord bot token that will be used for testing, the ID of the Discord server where the testing will take place and theID of a user present in that server.