Before this change, uninitialized databases would be initialized with the old
schema and then migrated to the latest version. After this change, unintialized
databases are initizialized with the latest database schema immediately, without
having to run any of the migrations. This change has no effect on existing
databases.
Before this change, Postgres database initialization was done manually using
utils/psqlinit.sh. This is inconsistent with SQLite, which the bot initializes
itself. It also requires shell access to the server running the Postgres
instance, which means it cannot be used on managed Postgres instances. After
this change, the bot initializes Postgres databases as it does with SQLite, and
utils/psqlinit.sh has been removed as it is now unecessary.
* Load commands recursively
* Sort commands
* Missed a couple of spots
* missed even more spots apparently
* Ported commands in "fun" category to new class-based format, added babel eslint plugin
* Ported general commands, removed old/unneeded stuff, replaced moment with day, many more fixes I lost track of
* Missed a spot
* Removed unnecessary abort-controller package, add deprecation warning for mongo database
* Added imagereload, clarified premature end message
* Fixed docker-compose path issue, added total bot uptime to stats, more fixes for various parts
* Converted image commands into classes, fixed reload, ignore another WS event, cleaned up command handler and image runner
* Converted music/soundboard commands to class format
* Cleanup unnecessary logs
* awful tag command class port
* I literally somehow just learned that you can leave out the constructor in classes
* Pass client directly to commands/events, cleaned up command handler
* Migrated bot to eris-sharder, fixed some error handling stuff
* Remove unused modules
* Fixed type returning
* Switched back to Eris stable
* Some fixes and cleanup
* might wanna correct this
* Implement image command ratelimiting
* Added Bot token prefix, added imagestats, added running endpoint to API
* feat: add docker-compose file
* refactor: lower docker-compose version
* feat(docker-compose): add help docs and image dir, fix lavalink
* fix(docker): missing ffmpeg dependency
* fix(docker): compile imagemagick with pango support
This fixes commands such as `meme` causing the bot to crash, since Alpine does not have a pango-enabled version of IM7 in its repos.
* feat(docker): cache npm dependencies
By copying just the `package-(lock).json` and installing dependencies, Docker will cache the deps on subsequent builds.
* fix(docker-compose): need to adjust connection addresses
The MongoDB and Chrome addresses are automatically passed through with the correct value. A separate `servers.json` file specifically for docker-compose is used with the correct container addresses.
Each container has a static ip - this is due to an unfortunate limitation of the Chrome remote debugger, which needs either an IP or `localhost`, and refuses connections to a hostname.
* refactor(docker): do not include servers.json for compose
Compose will use the normal `servers.json` and users will have to change the hostnames to `lavalink` and `api` respectively.