Bump lodash from 4.17.19 to 4.17.21
MarkBot for Discord
A Markov chain bot using markov-strings.
Usage
- Train the bot in a lengthy text channel:
- User:
!mark train - Markbot:
@User, Finished training from past 76394 messages.
- User:
- Ask the bot to say something:
- User:
!mark - Markbot:
This Shopko has a Linux release
- User:
Setup
First, create a Discord bot application.
Windows
Windows Requirements
- Node.js 12.0+ (Current)
- Installing with build tools is recommended
Windows Setup
-
Install Node.js 12.0 or newer.
-
Download this repository using git in a command prompt
git clone https://github.com/charlocharlie/markov-discord.gitor by just downloading and extracting the project zip from GitHub.
-
Open a command prompt in the
markov-discordfolder.# Install Windows build tools (if you didn't install build tools with Node) npm install --global windows-build-tools # NPM install non-development packages npm install # Build the Typescript npm run build -
Create a file called
config.jsonin the project directory with the contents:{ "prefix":"!mark", "game":"\"!mark help\" for help", "token":"k5NzE2NDg1MTIwMjc0ODQ0Nj.DSnXwg.ttNotARealToken5p3WfDoUxhiH" }Feel free to change the command prefix, game display. Add your bot token.
-
Run the bot:
npm start
Debian Linux
Debian Requirements
- Node.js 12.0+
- Python 2.7 (for erlpack)
- C++ build tools (for erlpack)
Download
# Clone this repository
git clone https://github.com/charlocharlie/markov-discord.git
cd markov-discord
Configure
Create a file called config.json in the project directory with the contents:
{
"prefix":"!mark",
"game":"\"!mark help\" for help",
"token":"k5NzE2NDg1MTIwMjc0ODQ0Nj.DSnXwg.ttNotARealToken5p3WfDoUxhiH"
}
Feel free to change the command prefix, game display. Add your bot token.
Install and Run
# Install Node.js if you haven't already
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
nvm install node
# NPM install non-development packages
npm install
# If you run into build errors, install the following packages:
sudo apt-get install python -y
sudo apt-get install build-essential -y
# Build the Typescript
npm run build
# Start the program
npm start
Docker
Setup with Docker Hub image
-
Install Docker for your OS.
-
Open a command prompts and run:
docker pull charlocharlie/markov-discord docker run --rm -d charlocharlie/markov-discord:latest
Setup with source
-
Install Docker for your OS.
-
Download this repository using git in a command prompt
git clone https://github.com/charlocharlie/markov-discord.gitor by just downloading and extracting the project zip from GitHub.
-
Open a command prompt in the markov-discord folder and run this one-liner:
docker run --rm -e TOKEN=YOUR.BOT.TOKEN -v config:/usr/src/markbot/config -it $(docker build -q .) # Be patient as the build output is suppressed
Changelog
0.7.3
- Fix crash when fetched messages is empty
- Update docs
- Update dependencies
0.7.2
- Fix @everyone replacement
0.7.1
- Readme updates
- Config loading fix
- Fix min score
- Add generator options to config
- Document Node 12 update
0.7.0
- Convert project to Typescript
- Optimize Docker build (smaller image)
- Load corpus from filesystem to reduce memory load
0.6.2
- Fix MarkovDB not loading on boot
0.6.1
- Fix bot crashing on scheduled regen
0.6.0
- Added Docker deploy functionality.
- Moved config and database to
./configdirectory. 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.
0.5.0
- Fixed bug where
!mark helpdidn't work. - Only admins can train.
- The bot responds when mentioned.
- The bot cannot mention @everyone.
- Added version number to help.
- Added
!mark ttsfor a quieter TTS response. - Readme overhaul.
- Simpler config loading.
0.4.0
- Huge refactor.
- Added
!mark debugwhich 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.
0.3.0
- Added TTS support and random message attachments.
- Deleted messages no longer persist in the database longer than 24 hours.
0.2.0
- Updated training algorithm and data structure.
Thanks
Thanks to BotMaker-for-Discord which I used as a reference when during development.