2.9 KiB
discordbot
A bot that does the discord thing.
node bot.node [--token=<DiscordBotToken>] [--ytapi=<GoogleApiKey>] [--owner=<DiscordTag>] [--prefix=<Char>] [--game=<String>] [-i=<Boolen>]
The arguments are optional because the token and youtube-api-key that the bot needs to run can also be defined in the config.json in the bot's directory:
// config.json
{
"prefix": "_",
"presence": "STRING", // this will be shown when no presences are set in data/presences.txt
"presence_duration": 300000, // how long does the bot have one presence
"api": {
"botToken": "YOUR DISCORD BOT TOKEN",
"youTubeApiKey": "YOUR YOUTUBE API KEY"
},
"owners": [
"DISCORD NAME" // specify a list of bot owners that can use the owner commands
],
"music": {
"timeout": 300000, // exit timeout after noone is left in the voicechannel
"livePuffer": 20000, // the preloaded video length (see ytdl-core module)
},
"webservice": { // optional
"enabled": true, // enable the server
"port": 8080, // set the port
"graphiql": false, // switch the graphiql interface on/off,
"sessionSecret": "PROVIDE A SECURE SECRET",
"https": {
"enabled": true, //enable https
"keyFile": "PATH TO YOUR SSL KEY FILE",
"certFile": "PATH TO YOUR SSL CERTIFICATE FILE"
}
}
}
If the keys are missing from the config file, the bot exits. This behaviour can be deactivated by setting the -i
commandline flag.
You need to create a user to access the webinterface. Use ~createUser [name] [password] [scope]
to create one (Only works via PM).
Please provide a SECURE sessionSecred
.
To enable https you need a certificate and key file. Those can be generated with openssl.
Keys
You can get the API-Keys here:
Features
At the moment the bot can...
- ...play music (YouTube videos and playlists)
- ...save songs/playlists with a given name
- ...log stuff in a database
- ...transform into a cow
Presences
You can add presences to the bot either by owner command addpresence
or by providing a presences.txt file in the data directory. Each line represents a presence.
When all lines are loaded by the bot, the file gets deleted.
Ideas
- command replies saved in file (server specific file and global file)
- reddit api
- anilist api
- othercoolstuff api