All notable changes to this project will be documented in this file.
- Update to Node 20 and Discord.js 14. Update a million dependencies
- Fix empty attachment bug (#61)
- Add a
clean
option flag to the/train
command to allow retraining without overwriting - Add the ability to train from file of messages (#31)
- Fix TTS not working for slash commands (with a somewhat janky solution)
- Update dependencies (discord.js 13.7)
- Update dependencies (typeorm 0.3)
- Dockerfile optimization
- Add a filter to ensure the bot doesn't just post exact previous messages.
- Config option
prefix
renamed tomessageCommandPrefix
- Config option
game
renamed toactivity
- Config option
role
renamed touserRoleIds
. Changed from string to array of strings. - Docker internal volume path moved from
/usr/src/markbot/config
to/usr/app/config
- Database changed from JSON files to a SQLite database. You'll need to re-train the bot to use it again.
- The bot must be explicitly granted permission to listen to a list of channels before using it. Configure it with
/listen
. - Docker user changed from
root
tonode
. You may need to update your mounted volume's permissions. - pm2 has been removed from the Docker container. Make sure to add
--restart=unless-stopped
to your Docker run config to ensure the same resiliency.
- Data is stored in a relational database to reduce memory and disk read/write usage, as well as to decrease latency
- The bot can be restricted to only learn/listen from a strict list of channels
- Bot responses can be seeded by a short phrase
- Discord slash command support
- Discord thread support
- Many new config options available at https://claabs.github.io/markov-discord/classes/AppConfig.html
- Owner IDs
- Log level
- Slash command name
- Config file supports JSON5 (comments, trailing commas, etc). It also may use the
.json5
file extension if you prefer. - Generated responses will now never ping a user or role, only just highlight their name
- Fix crash when fetched messages is empty
- Update docs
- Update dependencies
- Fix @everyone replacement
- Readme updates
- Config loading fix
- Fix min score
- Add generator options to config
- Document Node 12 update
- Convert project to Typescript
- Optimize Docker build (smaller image)
- Load corpus from filesystem to reduce memory load
- Fix MarkovDB not loading on boot
- Fix bot crashing on scheduled regen
- Added Docker deploy functionality.
- Moved config and database to
./config
directory. Existing configs will be migrated. - Config-less support via bot token located in an environment variable.
- Update dependencies.
- Change corpus regen time to 4 AM.
- Fixed bug where
!mark help
didn't work. - Only admins can train.
- The bot responds when mentioned.
- The bot cannot mention @everyone.
- Added version number to help.
- Added
!mark tts
for a quieter TTS response. - Readme overhaul.
- Simpler config loading.
- Huge refactor.
- Added
!mark debug
which sends debug info alongside the message. - Converted the fetchMessages function to async/await (updating the requirement to Node.js 8).
- Updated module versions.
- Added faster unique-array-by-property function
- Added linting and linted the project.
- Added TTS support and random message attachments.
- Deleted messages no longer persist in the database longer than 24 hours.
- Updated training algorithm and data structure.