-
Notifications
You must be signed in to change notification settings - Fork 22
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #24 from claabs/develop
Version 2.0.0
- Loading branch information
Showing
33 changed files
with
11,099 additions
and
1,793 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,7 +1,5 @@ | ||
# Ignore everything | ||
**/* | ||
|
||
# Allow files and directories | ||
!*.js | ||
!*.json | ||
!*.ts | ||
config | ||
dist | ||
node_modules | ||
img | ||
docs |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
name: Publish Typedoc to Github Pages | ||
on: | ||
push: | ||
branches: | ||
- master | ||
paths: | ||
- Readme.md | ||
- src/config/classes.ts | ||
- .github/workflows/typedoc.yml | ||
- package.json | ||
jobs: | ||
publish: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v2 | ||
- name: Setup Node.js for use with actions | ||
uses: actions/setup-node@v2 | ||
with: | ||
node-version: 'lts/*' | ||
cache: 'npm' | ||
|
||
- name: NPM install | ||
run: npm ci | ||
|
||
# Runs a single command using the runners shell | ||
- name: Build and lint | ||
run: npm run docs | ||
|
||
- name: Deploy | ||
uses: peaceiris/actions-gh-pages@v3 | ||
with: | ||
github_token: ${{ secrets.GITHUB_TOKEN }} | ||
publish_dir: ./docs |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
16 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,4 @@ | ||
module.exports = { | ||
printWidth: 100, | ||
singleQuote: true, | ||
trailingComma: 'es5' | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,101 @@ | ||
# Changelog | ||
|
||
All notable changes to this project will be documented in this file. | ||
|
||
## Versions | ||
|
||
### 2.0.0 | ||
|
||
#### Breaking Changes | ||
|
||
* Config option `prefix` renamed to `messageCommandPrefix` | ||
* Config option `game` renamed to `activity` | ||
* Config option `role` renamed to `userRoleIds`. 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` to `node`. 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. | ||
|
||
#### New Features | ||
|
||
* 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](https://json5.org/) (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 | ||
|
||
### 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 `./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. | ||
|
||
### 0.5.0 | ||
|
||
* 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. | ||
|
||
### 0.4.0 | ||
|
||
* 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. | ||
|
||
### 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. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,49 +1,55 @@ | ||
######## | ||
# BASE | ||
######## | ||
FROM keymetrics/pm2:12-alpine as base | ||
WORKDIR /usr/src/markbot | ||
FROM node:16-alpine3.15 as base | ||
|
||
COPY package*.json ./ | ||
# Install build tools for erlpack, then install prod deps only, then remove build tools | ||
RUN apk add --no-cache make gcc g++ python && \ | ||
npm ci --only=production && \ | ||
apk del make gcc g++ python | ||
WORKDIR /usr/app | ||
|
||
RUN apk add --no-cache tini | ||
|
||
######## | ||
# BUILD | ||
######## | ||
FROM base as build | ||
|
||
# Copy all *.json, *.js, *.ts | ||
COPY . . | ||
# Prod deps already installed, add dev deps | ||
RUN npm i | ||
COPY package*.json ./ | ||
# Install build tools for erlpack, then install prod deps only | ||
RUN apk add --no-cache make gcc g++ python3 \ | ||
&& npm ci --only=production | ||
|
||
# Copy all jsons | ||
COPY package*.json tsconfig.json ./ | ||
|
||
# Add dev deps | ||
RUN npm ci | ||
|
||
# Copy source code | ||
COPY src src | ||
|
||
RUN npm run build | ||
|
||
######## | ||
# DEPLOY | ||
######## | ||
FROM keymetrics/pm2:12-alpine as deploy | ||
WORKDIR /usr/src/markbot | ||
FROM base as deploy | ||
|
||
ENV NPM_CONFIG_LOGLEVEL warn | ||
USER node | ||
|
||
# Steal node_modules from base image | ||
COPY --from=base /usr/src/markbot/node_modules ./node_modules/ | ||
COPY --from=build /usr/app/node_modules node_modules | ||
|
||
# Steal compiled code from build image | ||
COPY --from=build /usr/src/markbot/dist ./ | ||
COPY --from=build /usr/app/dist dist | ||
|
||
# Copy package.json for version number | ||
COPY package*.json ./ | ||
COPY package*.json ormconfig.js ./ | ||
|
||
# Copy PM2 config | ||
COPY ecosystem.config.js . | ||
# RUN mkdir config | ||
|
||
RUN mkdir config | ||
ARG COMMIT_SHA="" | ||
|
||
# RUN ls -al | ||
ENV NODE_ENV=production \ | ||
COMMIT_SHA=${COMMIT_SHA} | ||
|
||
CMD [ "pm2-runtime", "start", "ecosystem.config.js" ] | ||
ENTRYPOINT ["/sbin/tini", "--"] | ||
CMD [ "node", "/usr/app/dist/index.js" ] |
Oops, something went wrong.