mirror of
https://github.com/pacnpal/markov-discord.git
synced 2025-12-20 11:01:04 -05:00
typeorm 0.3, Dockerfile optmizations
This commit is contained in:
@@ -4,6 +4,11 @@ All notable changes to this project will be documented in this file.
|
||||
|
||||
## Versions
|
||||
|
||||
### 2.1.0
|
||||
|
||||
* Update dependencies (typeorm 0.3)
|
||||
* Dockerfile optimization
|
||||
|
||||
### 2.0.1
|
||||
|
||||
* Add a filter to ensure the bot doesn't just post exact previous messages.
|
||||
|
||||
15
Dockerfile
15
Dockerfile
@@ -7,6 +7,17 @@ WORKDIR /usr/app
|
||||
|
||||
RUN apk add --no-cache tini
|
||||
|
||||
############
|
||||
# PROD DEPS
|
||||
############
|
||||
|
||||
FROM base as prodDeps
|
||||
|
||||
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
|
||||
|
||||
########
|
||||
# BUILD
|
||||
########
|
||||
@@ -36,13 +47,13 @@ FROM base as deploy
|
||||
USER node
|
||||
|
||||
# Steal node_modules from base image
|
||||
COPY --from=build /usr/app/node_modules node_modules
|
||||
COPY --from=prodDeps /usr/app/node_modules node_modules
|
||||
|
||||
# Steal compiled code from build image
|
||||
COPY --from=build /usr/app/dist dist
|
||||
|
||||
# Copy package.json for version number
|
||||
COPY package*.json ormconfig.js ./
|
||||
COPY package.json ./
|
||||
|
||||
# RUN mkdir config
|
||||
|
||||
|
||||
39
ormconfig.js
39
ormconfig.js
@@ -1,39 +0,0 @@
|
||||
const devConfig = {
|
||||
type: 'better-sqlite3',
|
||||
database: process.env.CONFIG_DIR
|
||||
? `${process.env.CONFIG_DIR}/db/db.sqlite3`
|
||||
: 'config/db/db.sqlite3',
|
||||
synchronize: true,
|
||||
migrationsRun: false,
|
||||
// logging: 'all',
|
||||
enableWAL: true,
|
||||
entities: ['src/entity/**/*.ts'],
|
||||
migrations: ['src/migration/**/*.ts'],
|
||||
subscribers: ['src/subscriber/**/*.ts'],
|
||||
cli: {
|
||||
entitiesDir: 'src/entity',
|
||||
migrationsDir: 'src/migration',
|
||||
},
|
||||
};
|
||||
|
||||
const prodConfig = {
|
||||
type: 'better-sqlite3',
|
||||
database: process.env.CONFIG_DIR
|
||||
? `${process.env.CONFIG_DIR}/db/db.sqlite3`
|
||||
: 'config/db/db.sqlite3',
|
||||
synchronize: false,
|
||||
logging: false,
|
||||
enableWAL: true,
|
||||
entities: ['dist/entity/**/*.js'],
|
||||
migrations: ['dist/migration/**/*.js'],
|
||||
migrationsRun: true,
|
||||
subscribers: ['dist/subscriber/**/*.js'],
|
||||
cli: {
|
||||
entitiesDir: 'dist/entity',
|
||||
migrationsDir: 'dist/migration',
|
||||
},
|
||||
};
|
||||
|
||||
const finalConfig = process.env.NODE_ENV !== 'production' ? devConfig : prodConfig;
|
||||
|
||||
module.exports = finalConfig;
|
||||
192
package-lock.json
generated
192
package-lock.json
generated
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "markov-discord",
|
||||
"version": "2.0.2",
|
||||
"version": "2.1.0",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "markov-discord",
|
||||
"version": "2.0.2",
|
||||
"version": "2.1.0",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@discordjs/builders": "^0.12.0",
|
||||
@@ -23,13 +23,13 @@
|
||||
"erlpack": "github:discord/erlpack",
|
||||
"fs-extra": "^10.0.1",
|
||||
"json5": "^2.2.1",
|
||||
"markov-strings-db": "^4.1.5",
|
||||
"markov-strings-db": "^4.2.0",
|
||||
"pino": "^7.9.2",
|
||||
"pino-pretty": "^7.6.0",
|
||||
"reflect-metadata": "^0.1.13",
|
||||
"simple-eta": "^3.0.2",
|
||||
"source-map-support": "^0.5.21",
|
||||
"typeorm": "^0.2.45",
|
||||
"typeorm": "^0.3.3",
|
||||
"utf-8-validate": "^5.0.9",
|
||||
"zlib-sync": "^0.1.7"
|
||||
},
|
||||
@@ -59,7 +59,7 @@
|
||||
"version": "0.8.0",
|
||||
"resolved": "https://registry.npmjs.org/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz",
|
||||
"integrity": "sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==",
|
||||
"dev": true,
|
||||
"devOptional": true,
|
||||
"engines": {
|
||||
"node": ">= 12"
|
||||
}
|
||||
@@ -68,7 +68,7 @@
|
||||
"version": "0.7.0",
|
||||
"resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.7.0.tgz",
|
||||
"integrity": "sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA==",
|
||||
"dev": true,
|
||||
"devOptional": true,
|
||||
"dependencies": {
|
||||
"@cspotcode/source-map-consumer": "0.8.0"
|
||||
},
|
||||
@@ -494,25 +494,25 @@
|
||||
"version": "1.0.8",
|
||||
"resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz",
|
||||
"integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==",
|
||||
"dev": true
|
||||
"devOptional": true
|
||||
},
|
||||
"node_modules/@tsconfig/node12": {
|
||||
"version": "1.0.9",
|
||||
"resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz",
|
||||
"integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==",
|
||||
"dev": true
|
||||
"devOptional": true
|
||||
},
|
||||
"node_modules/@tsconfig/node14": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz",
|
||||
"integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==",
|
||||
"dev": true
|
||||
"devOptional": true
|
||||
},
|
||||
"node_modules/@tsconfig/node16": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz",
|
||||
"integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==",
|
||||
"dev": true
|
||||
"devOptional": true
|
||||
},
|
||||
"node_modules/@types/fs-extra": {
|
||||
"version": "9.0.13",
|
||||
@@ -562,11 +562,6 @@
|
||||
"@types/node": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/zen-observable": {
|
||||
"version": "0.8.3",
|
||||
"resolved": "https://registry.npmjs.org/@types/zen-observable/-/zen-observable-0.8.3.tgz",
|
||||
"integrity": "sha512-fbF6oTd4sGGy0xjHPKAt+eS2CrxJ3+6gQ3FGcBoIJR2TLAyCkCyI8JqZNy+FeON0AhVgNJoUumVoZQjBFUqHkw=="
|
||||
},
|
||||
"node_modules/@typescript-eslint/eslint-plugin": {
|
||||
"version": "5.16.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.16.0.tgz",
|
||||
@@ -755,7 +750,7 @@
|
||||
"version": "8.7.0",
|
||||
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz",
|
||||
"integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==",
|
||||
"dev": true,
|
||||
"devOptional": true,
|
||||
"bin": {
|
||||
"acorn": "bin/acorn"
|
||||
},
|
||||
@@ -776,7 +771,7 @@
|
||||
"version": "8.2.0",
|
||||
"resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz",
|
||||
"integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==",
|
||||
"dev": true,
|
||||
"devOptional": true,
|
||||
"engines": {
|
||||
"node": ">=0.4.0"
|
||||
}
|
||||
@@ -899,7 +894,7 @@
|
||||
"version": "4.1.3",
|
||||
"resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
|
||||
"integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
|
||||
"dev": true
|
||||
"devOptional": true
|
||||
},
|
||||
"node_modules/argparse": {
|
||||
"version": "2.0.1",
|
||||
@@ -1554,7 +1549,7 @@
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
|
||||
"integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==",
|
||||
"dev": true
|
||||
"devOptional": true
|
||||
},
|
||||
"node_modules/croner": {
|
||||
"version": "4.1.97",
|
||||
@@ -1725,7 +1720,7 @@
|
||||
"version": "4.0.2",
|
||||
"resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
|
||||
"integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
|
||||
"dev": true,
|
||||
"devOptional": true,
|
||||
"engines": {
|
||||
"node": ">=0.3.1"
|
||||
}
|
||||
@@ -3503,7 +3498,7 @@
|
||||
"version": "1.3.6",
|
||||
"resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
|
||||
"integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
|
||||
"dev": true
|
||||
"devOptional": true
|
||||
},
|
||||
"node_modules/marked": {
|
||||
"version": "4.0.12",
|
||||
@@ -3518,15 +3513,15 @@
|
||||
}
|
||||
},
|
||||
"node_modules/markov-strings-db": {
|
||||
"version": "4.1.5",
|
||||
"resolved": "https://registry.npmjs.org/markov-strings-db/-/markov-strings-db-4.1.5.tgz",
|
||||
"integrity": "sha512-p37FSQxXFUnHQfdp4OOljxs+aomNHK8avGVzZZy8Xjl4HEy7JB/v8f+isbhddyjSXewSjqyFwwcoh4TuZj2NTQ==",
|
||||
"version": "4.2.0",
|
||||
"resolved": "https://registry.npmjs.org/markov-strings-db/-/markov-strings-db-4.2.0.tgz",
|
||||
"integrity": "sha512-KlPmvQC5s/lonqn5syB1d+KYs1eREmc3BswSRQCPJARZJzu/zqVbEMB9FoKd6PvlAFiJE9LH15z3kJg0GijLBA==",
|
||||
"dependencies": {
|
||||
"reflect-metadata": "^0.1.13",
|
||||
"typeorm": "^0.2.41"
|
||||
"typeorm": "^0.3.3"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
"node": ">=14"
|
||||
}
|
||||
},
|
||||
"node_modules/merge2": {
|
||||
@@ -5214,7 +5209,7 @@
|
||||
"version": "10.7.0",
|
||||
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.7.0.tgz",
|
||||
"integrity": "sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A==",
|
||||
"dev": true,
|
||||
"devOptional": true,
|
||||
"dependencies": {
|
||||
"@cspotcode/source-map-support": "0.7.0",
|
||||
"@tsconfig/node10": "^1.0.7",
|
||||
@@ -5401,30 +5396,35 @@
|
||||
}
|
||||
},
|
||||
"node_modules/typeorm": {
|
||||
"version": "0.2.45",
|
||||
"resolved": "https://registry.npmjs.org/typeorm/-/typeorm-0.2.45.tgz",
|
||||
"integrity": "sha512-c0rCO8VMJ3ER7JQ73xfk0zDnVv0WDjpsP6Q1m6CVKul7DB9iVdWLRjPzc8v2eaeBuomsbZ2+gTaYr8k1gm3bYA==",
|
||||
"version": "0.3.3",
|
||||
"resolved": "https://registry.npmjs.org/typeorm/-/typeorm-0.3.3.tgz",
|
||||
"integrity": "sha512-01gesp6ikGMLGUxBDzEn4qcIiVW3gWzZsUPE6ETqzSRuHL4pCAWHvTPELN1agirBJrZNxhxiVFUXCmnPXYNfrg==",
|
||||
"dependencies": {
|
||||
"@sqltools/formatter": "^1.2.2",
|
||||
"app-root-path": "^3.0.0",
|
||||
"buffer": "^6.0.3",
|
||||
"chalk": "^4.1.0",
|
||||
"cli-highlight": "^2.1.11",
|
||||
"debug": "^4.3.1",
|
||||
"dotenv": "^8.2.0",
|
||||
"glob": "^7.1.6",
|
||||
"js-yaml": "^4.0.0",
|
||||
"date-fns": "^2.28.0",
|
||||
"debug": "^4.3.3",
|
||||
"dotenv": "^16.0.0",
|
||||
"glob": "^7.2.0",
|
||||
"js-yaml": "^4.1.0",
|
||||
"mkdirp": "^1.0.4",
|
||||
"reflect-metadata": "^0.1.13",
|
||||
"sha.js": "^2.4.11",
|
||||
"tslib": "^2.1.0",
|
||||
"tslib": "^2.3.1",
|
||||
"uuid": "^8.3.2",
|
||||
"xml2js": "^0.4.23",
|
||||
"yargs": "^17.0.1",
|
||||
"zen-observable-ts": "^1.0.0"
|
||||
"yargs": "^17.3.1"
|
||||
},
|
||||
"bin": {
|
||||
"typeorm": "cli.js"
|
||||
"typeorm": "cli.js",
|
||||
"typeorm-ts-node-commonjs": "cli-ts-node-commonjs.js",
|
||||
"typeorm-ts-node-esm": "cli-ts-node-esm.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 12.9.0"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://opencollective.com/typeorm"
|
||||
@@ -5444,6 +5444,7 @@
|
||||
"redis": "^3.1.1",
|
||||
"sql.js": "^1.4.0",
|
||||
"sqlite3": "^5.0.2",
|
||||
"ts-node": "^10.7.0",
|
||||
"typeorm-aurora-data-api-driver": "^2.0.0"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
@@ -5489,6 +5490,9 @@
|
||||
"sqlite3": {
|
||||
"optional": true
|
||||
},
|
||||
"ts-node": {
|
||||
"optional": true
|
||||
},
|
||||
"typeorm-aurora-data-api-driver": {
|
||||
"optional": true
|
||||
}
|
||||
@@ -5517,14 +5521,6 @@
|
||||
"ieee754": "^1.2.1"
|
||||
}
|
||||
},
|
||||
"node_modules/typeorm/node_modules/dotenv": {
|
||||
"version": "8.6.0",
|
||||
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz",
|
||||
"integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==",
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
}
|
||||
},
|
||||
"node_modules/typeorm/node_modules/uuid": {
|
||||
"version": "8.3.2",
|
||||
"resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
|
||||
@@ -5543,7 +5539,7 @@
|
||||
"version": "4.6.3",
|
||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz",
|
||||
"integrity": "sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==",
|
||||
"dev": true,
|
||||
"devOptional": true,
|
||||
"bin": {
|
||||
"tsc": "bin/tsc",
|
||||
"tsserver": "bin/tsserver"
|
||||
@@ -5630,7 +5626,7 @@
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.0.tgz",
|
||||
"integrity": "sha512-mpSYqfsFvASnSn5qMiwrr4VKfumbPyONLCOPmsR3A6pTY/r0+tSaVbgPWSAIuzbk3lCTa+FForeTiO+wBQGkjA==",
|
||||
"dev": true
|
||||
"devOptional": true
|
||||
},
|
||||
"node_modules/validator": {
|
||||
"version": "13.7.0",
|
||||
@@ -5937,25 +5933,11 @@
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
|
||||
"integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
|
||||
"dev": true,
|
||||
"devOptional": true,
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/zen-observable": {
|
||||
"version": "0.8.15",
|
||||
"resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz",
|
||||
"integrity": "sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ=="
|
||||
},
|
||||
"node_modules/zen-observable-ts": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-1.1.0.tgz",
|
||||
"integrity": "sha512-1h4zlLSqI2cRLPJUHJFL8bCWHhkpuXkF+dbGkRaWjgDIG26DmzyshUMrdV/rL3UnR+mhaX4fRq8LPouq0MYYIA==",
|
||||
"dependencies": {
|
||||
"@types/zen-observable": "0.8.3",
|
||||
"zen-observable": "0.8.15"
|
||||
}
|
||||
},
|
||||
"node_modules/zlib-sync": {
|
||||
"version": "0.1.7",
|
||||
"resolved": "https://registry.npmjs.org/zlib-sync/-/zlib-sync-0.1.7.tgz",
|
||||
@@ -5979,13 +5961,13 @@
|
||||
"version": "0.8.0",
|
||||
"resolved": "https://registry.npmjs.org/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz",
|
||||
"integrity": "sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==",
|
||||
"dev": true
|
||||
"devOptional": true
|
||||
},
|
||||
"@cspotcode/source-map-support": {
|
||||
"version": "0.7.0",
|
||||
"resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.7.0.tgz",
|
||||
"integrity": "sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA==",
|
||||
"dev": true,
|
||||
"devOptional": true,
|
||||
"requires": {
|
||||
"@cspotcode/source-map-consumer": "0.8.0"
|
||||
}
|
||||
@@ -6314,25 +6296,25 @@
|
||||
"version": "1.0.8",
|
||||
"resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz",
|
||||
"integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==",
|
||||
"dev": true
|
||||
"devOptional": true
|
||||
},
|
||||
"@tsconfig/node12": {
|
||||
"version": "1.0.9",
|
||||
"resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz",
|
||||
"integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==",
|
||||
"dev": true
|
||||
"devOptional": true
|
||||
},
|
||||
"@tsconfig/node14": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz",
|
||||
"integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==",
|
||||
"dev": true
|
||||
"devOptional": true
|
||||
},
|
||||
"@tsconfig/node16": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz",
|
||||
"integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==",
|
||||
"dev": true
|
||||
"devOptional": true
|
||||
},
|
||||
"@types/fs-extra": {
|
||||
"version": "9.0.13",
|
||||
@@ -6382,11 +6364,6 @@
|
||||
"@types/node": "*"
|
||||
}
|
||||
},
|
||||
"@types/zen-observable": {
|
||||
"version": "0.8.3",
|
||||
"resolved": "https://registry.npmjs.org/@types/zen-observable/-/zen-observable-0.8.3.tgz",
|
||||
"integrity": "sha512-fbF6oTd4sGGy0xjHPKAt+eS2CrxJ3+6gQ3FGcBoIJR2TLAyCkCyI8JqZNy+FeON0AhVgNJoUumVoZQjBFUqHkw=="
|
||||
},
|
||||
"@typescript-eslint/eslint-plugin": {
|
||||
"version": "5.16.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.16.0.tgz",
|
||||
@@ -6486,7 +6463,7 @@
|
||||
"version": "8.7.0",
|
||||
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz",
|
||||
"integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==",
|
||||
"dev": true
|
||||
"devOptional": true
|
||||
},
|
||||
"acorn-jsx": {
|
||||
"version": "5.3.2",
|
||||
@@ -6499,7 +6476,7 @@
|
||||
"version": "8.2.0",
|
||||
"resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz",
|
||||
"integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==",
|
||||
"dev": true
|
||||
"devOptional": true
|
||||
},
|
||||
"agent-base": {
|
||||
"version": "6.0.2",
|
||||
@@ -6594,7 +6571,7 @@
|
||||
"version": "4.1.3",
|
||||
"resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
|
||||
"integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
|
||||
"dev": true
|
||||
"devOptional": true
|
||||
},
|
||||
"argparse": {
|
||||
"version": "2.0.1",
|
||||
@@ -7104,7 +7081,7 @@
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
|
||||
"integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==",
|
||||
"dev": true
|
||||
"devOptional": true
|
||||
},
|
||||
"croner": {
|
||||
"version": "4.1.97",
|
||||
@@ -7224,7 +7201,7 @@
|
||||
"version": "4.0.2",
|
||||
"resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
|
||||
"integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
|
||||
"dev": true
|
||||
"devOptional": true
|
||||
},
|
||||
"dir-glob": {
|
||||
"version": "3.0.1",
|
||||
@@ -8579,7 +8556,7 @@
|
||||
"version": "1.3.6",
|
||||
"resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
|
||||
"integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
|
||||
"dev": true
|
||||
"devOptional": true
|
||||
},
|
||||
"marked": {
|
||||
"version": "4.0.12",
|
||||
@@ -8588,12 +8565,12 @@
|
||||
"dev": true
|
||||
},
|
||||
"markov-strings-db": {
|
||||
"version": "4.1.5",
|
||||
"resolved": "https://registry.npmjs.org/markov-strings-db/-/markov-strings-db-4.1.5.tgz",
|
||||
"integrity": "sha512-p37FSQxXFUnHQfdp4OOljxs+aomNHK8avGVzZZy8Xjl4HEy7JB/v8f+isbhddyjSXewSjqyFwwcoh4TuZj2NTQ==",
|
||||
"version": "4.2.0",
|
||||
"resolved": "https://registry.npmjs.org/markov-strings-db/-/markov-strings-db-4.2.0.tgz",
|
||||
"integrity": "sha512-KlPmvQC5s/lonqn5syB1d+KYs1eREmc3BswSRQCPJARZJzu/zqVbEMB9FoKd6PvlAFiJE9LH15z3kJg0GijLBA==",
|
||||
"requires": {
|
||||
"reflect-metadata": "^0.1.13",
|
||||
"typeorm": "^0.2.41"
|
||||
"typeorm": "^0.3.3"
|
||||
}
|
||||
},
|
||||
"merge2": {
|
||||
@@ -9858,7 +9835,7 @@
|
||||
"version": "10.7.0",
|
||||
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.7.0.tgz",
|
||||
"integrity": "sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A==",
|
||||
"dev": true,
|
||||
"devOptional": true,
|
||||
"requires": {
|
||||
"@cspotcode/source-map-support": "0.7.0",
|
||||
"@tsconfig/node10": "^1.0.7",
|
||||
@@ -9993,27 +9970,27 @@
|
||||
}
|
||||
},
|
||||
"typeorm": {
|
||||
"version": "0.2.45",
|
||||
"resolved": "https://registry.npmjs.org/typeorm/-/typeorm-0.2.45.tgz",
|
||||
"integrity": "sha512-c0rCO8VMJ3ER7JQ73xfk0zDnVv0WDjpsP6Q1m6CVKul7DB9iVdWLRjPzc8v2eaeBuomsbZ2+gTaYr8k1gm3bYA==",
|
||||
"version": "0.3.3",
|
||||
"resolved": "https://registry.npmjs.org/typeorm/-/typeorm-0.3.3.tgz",
|
||||
"integrity": "sha512-01gesp6ikGMLGUxBDzEn4qcIiVW3gWzZsUPE6ETqzSRuHL4pCAWHvTPELN1agirBJrZNxhxiVFUXCmnPXYNfrg==",
|
||||
"requires": {
|
||||
"@sqltools/formatter": "^1.2.2",
|
||||
"app-root-path": "^3.0.0",
|
||||
"buffer": "^6.0.3",
|
||||
"chalk": "^4.1.0",
|
||||
"cli-highlight": "^2.1.11",
|
||||
"debug": "^4.3.1",
|
||||
"dotenv": "^8.2.0",
|
||||
"glob": "^7.1.6",
|
||||
"js-yaml": "^4.0.0",
|
||||
"date-fns": "^2.28.0",
|
||||
"debug": "^4.3.3",
|
||||
"dotenv": "^16.0.0",
|
||||
"glob": "^7.2.0",
|
||||
"js-yaml": "^4.1.0",
|
||||
"mkdirp": "^1.0.4",
|
||||
"reflect-metadata": "^0.1.13",
|
||||
"sha.js": "^2.4.11",
|
||||
"tslib": "^2.1.0",
|
||||
"tslib": "^2.3.1",
|
||||
"uuid": "^8.3.2",
|
||||
"xml2js": "^0.4.23",
|
||||
"yargs": "^17.0.1",
|
||||
"zen-observable-ts": "^1.0.0"
|
||||
"yargs": "^17.3.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"buffer": {
|
||||
@@ -10025,11 +10002,6 @@
|
||||
"ieee754": "^1.2.1"
|
||||
}
|
||||
},
|
||||
"dotenv": {
|
||||
"version": "8.6.0",
|
||||
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz",
|
||||
"integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g=="
|
||||
},
|
||||
"uuid": {
|
||||
"version": "8.3.2",
|
||||
"resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
|
||||
@@ -10047,7 +10019,7 @@
|
||||
"version": "4.6.3",
|
||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz",
|
||||
"integrity": "sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==",
|
||||
"dev": true
|
||||
"devOptional": true
|
||||
},
|
||||
"unbox-primitive": {
|
||||
"version": "1.0.1",
|
||||
@@ -10110,7 +10082,7 @@
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.0.tgz",
|
||||
"integrity": "sha512-mpSYqfsFvASnSn5qMiwrr4VKfumbPyONLCOPmsR3A6pTY/r0+tSaVbgPWSAIuzbk3lCTa+FForeTiO+wBQGkjA==",
|
||||
"dev": true
|
||||
"devOptional": true
|
||||
},
|
||||
"validator": {
|
||||
"version": "13.7.0",
|
||||
@@ -10347,21 +10319,7 @@
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
|
||||
"integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
|
||||
"dev": true
|
||||
},
|
||||
"zen-observable": {
|
||||
"version": "0.8.15",
|
||||
"resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz",
|
||||
"integrity": "sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ=="
|
||||
},
|
||||
"zen-observable-ts": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-1.1.0.tgz",
|
||||
"integrity": "sha512-1h4zlLSqI2cRLPJUHJFL8bCWHhkpuXkF+dbGkRaWjgDIG26DmzyshUMrdV/rL3UnR+mhaX4fRq8LPouq0MYYIA==",
|
||||
"requires": {
|
||||
"@types/zen-observable": "0.8.3",
|
||||
"zen-observable": "0.8.15"
|
||||
}
|
||||
"devOptional": true
|
||||
},
|
||||
"zlib-sync": {
|
||||
"version": "0.1.7",
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
{
|
||||
"name": "markov-discord",
|
||||
"version": "2.0.2",
|
||||
"version": "2.1.0",
|
||||
"description": "A conversational Markov chain bot for Discord",
|
||||
"main": "dist/index.js",
|
||||
"scripts": {
|
||||
"start": "NODE_ENV=production pm2 start --no-daemon dist/index.js",
|
||||
"start:ts": "ts-node src/index.ts",
|
||||
"build": "rimraf dist && tsc",
|
||||
"lint": "tsc --noEmit && eslint **/*.ts *.js",
|
||||
"lint": "tsc --noEmit && eslint .",
|
||||
"docker:build": "docker build . -t charlocharlie/markov-discord:latest --target deploy",
|
||||
"docker:run": "docker run --rm -ti -v $(pwd)/config:/usr/app/config charlocharlie/markov-discord:latest",
|
||||
"typeorm": "node --require ts-node/register ./node_modules/typeorm/cli.js",
|
||||
@@ -45,13 +45,13 @@
|
||||
"erlpack": "github:discord/erlpack",
|
||||
"fs-extra": "^10.0.1",
|
||||
"json5": "^2.2.1",
|
||||
"markov-strings-db": "^4.1.5",
|
||||
"markov-strings-db": "^4.2.0",
|
||||
"pino": "^7.9.2",
|
||||
"pino-pretty": "^7.6.0",
|
||||
"reflect-metadata": "^0.1.13",
|
||||
"simple-eta": "^3.0.2",
|
||||
"source-map-support": "^0.5.21",
|
||||
"typeorm": "^0.2.45",
|
||||
"typeorm": "^0.3.3",
|
||||
"utf-8-validate": "^5.0.9",
|
||||
"zlib-sync": "^0.1.7"
|
||||
},
|
||||
|
||||
12
src/index.ts
12
src/index.ts
@@ -6,7 +6,7 @@ import Markov, {
|
||||
MarkovConstructorOptions,
|
||||
AddDataProps,
|
||||
} from 'markov-strings-db';
|
||||
import { createConnection } from 'typeorm';
|
||||
import { DataSource } from 'typeorm';
|
||||
import { MarkovInputData } from 'markov-strings-db/dist/src/entity/MarkovInputData';
|
||||
import type { PackageJsonPerson } from 'types-package-json';
|
||||
import makeEta from 'simple-eta';
|
||||
@@ -27,6 +27,7 @@ import {
|
||||
trainCommand,
|
||||
} from './deploy-commands';
|
||||
import { getRandomElement, getVersion, packageJson } from './util';
|
||||
import ormconfig from './ormconfig';
|
||||
|
||||
interface MarkovDataCustom {
|
||||
attachments: string[];
|
||||
@@ -87,7 +88,7 @@ function getGuildChannelId(channel: Discord.TextBasedChannel): string | null {
|
||||
async function isValidChannel(channel: Discord.TextBasedChannel): Promise<boolean> {
|
||||
const channelId = getGuildChannelId(channel);
|
||||
if (!channelId) return false;
|
||||
const dbChannel = await Channel.findOne(channelId);
|
||||
const dbChannel = await Channel.findOneBy({ id: channelId });
|
||||
return dbChannel?.listen || false;
|
||||
}
|
||||
|
||||
@@ -97,7 +98,7 @@ function isHumanAuthoredMessage(message: Discord.Message | Discord.PartialMessag
|
||||
|
||||
async function getValidChannels(guild: Discord.Guild): Promise<Discord.TextChannel[]> {
|
||||
L.trace('Getting valid channels from database');
|
||||
const dbChannels = await Channel.find({ guild: Guild.create({ id: guild.id }), listen: true });
|
||||
const dbChannels = await Channel.findBy({ guild: { id: guild.id }, listen: true });
|
||||
L.trace({ dbChannels: dbChannels.map((c) => c.id) }, 'Valid channels from database');
|
||||
const channels = (
|
||||
await Promise.all(
|
||||
@@ -864,8 +865,9 @@ client.on('interactionCreate', async (interaction) => {
|
||||
* Loads the config settings from disk
|
||||
*/
|
||||
async function main(): Promise<void> {
|
||||
const connection = await Markov.extendConnectionOptions();
|
||||
await createConnection(connection);
|
||||
const dataSourceOptions = Markov.extendDataSourceOptions(ormconfig);
|
||||
const dataSource = new DataSource(dataSourceOptions);
|
||||
await dataSource.initialize();
|
||||
await client.login(config.token);
|
||||
}
|
||||
|
||||
|
||||
38
src/ormconfig.ts
Normal file
38
src/ormconfig.ts
Normal file
@@ -0,0 +1,38 @@
|
||||
import { DataSourceOptions } from 'typeorm';
|
||||
import { Channel } from './entity/Channel';
|
||||
import { Guild } from './entity/Guild';
|
||||
import { CreateTables1640838214672 } from './migration/1640838214672-CreateTables';
|
||||
|
||||
const ENTITIES = [Channel, Guild];
|
||||
const MIGRATIONS = [CreateTables1640838214672];
|
||||
// const SUBSCRIBERS = [];
|
||||
|
||||
const devConfig: DataSourceOptions = {
|
||||
type: 'better-sqlite3',
|
||||
database: process.env.CONFIG_DIR
|
||||
? `${process.env.CONFIG_DIR}/db/db.sqlite3`
|
||||
: 'config/db/db.sqlite3',
|
||||
synchronize: true,
|
||||
migrationsRun: false,
|
||||
// logging: 'all',
|
||||
entities: ENTITIES,
|
||||
migrations: MIGRATIONS,
|
||||
// subscribers: SUBSCRIBERS,
|
||||
};
|
||||
|
||||
const prodConfig: DataSourceOptions = {
|
||||
type: 'better-sqlite3',
|
||||
database: process.env.CONFIG_DIR
|
||||
? `${process.env.CONFIG_DIR}/db/db.sqlite3`
|
||||
: 'config/db/db.sqlite3',
|
||||
synchronize: false,
|
||||
logging: false,
|
||||
entities: ENTITIES,
|
||||
migrations: MIGRATIONS,
|
||||
migrationsRun: true,
|
||||
// subscribers: SUBSCRIBERS,
|
||||
};
|
||||
|
||||
const finalConfig = process.env.NODE_ENV !== 'production' ? devConfig : prodConfig;
|
||||
|
||||
export default finalConfig;
|
||||
Reference in New Issue
Block a user