Upgrade discord.js

This commit is contained in:
Charlie Laabs
2020-10-18 16:18:51 -05:00
parent eaedaad5ff
commit 1765bb5e00
3 changed files with 117 additions and 67 deletions

View File

@@ -221,7 +221,7 @@ async function fetchMessages(message: Discord.Message): Promise<void> {
string, string,
Discord.Message Discord.Message
// eslint-disable-next-line no-await-in-loop // eslint-disable-next-line no-await-in-loop
> = await message.channel.fetchMessages({ > = await message.channel.messages.fetch({
before: oldestMessageID, before: oldestMessageID,
limit: PAGE_SIZE, limit: PAGE_SIZE,
}); });
@@ -238,10 +238,11 @@ async function fetchMessages(message: Discord.Message): Promise<void> {
return dbObj; return dbObj;
}); });
historyCache = historyCache.concat(nonBotMessageFormatted); historyCache = historyCache.concat(nonBotMessageFormatted);
if (!messages.last() || messages.size < PAGE_SIZE) { const lastMessage = messages.last();
if (!lastMessage || messages.size < PAGE_SIZE) {
keepGoing = false; keepGoing = false;
} else { } else {
oldestMessageID = messages.last().id; oldestMessageID = lastMessage.id;
} }
} }
console.log(`Trained from ${historyCache.length} past human authored messages.`); console.log(`Trained from ${historyCache.length} past human authored messages.`);
@@ -303,7 +304,7 @@ function generateResponse(message: Discord.Message, debug = false, tts = message
client.on('ready', () => { client.on('ready', () => {
console.log('Markbot by Charlie Laabs'); console.log('Markbot by Charlie Laabs');
client.user.setActivity(GAME); if (client.user) client.user.setActivity(GAME);
regenMarkov(); regenMarkov();
}); });
@@ -322,9 +323,10 @@ client.on('message', message => {
if (message.guild) { if (message.guild) {
const command = validateMessage(message); const command = validateMessage(message);
if (command === 'help') { if (command === 'help') {
const richem = new Discord.RichEmbed() const avatarURL = client.user?.avatarURL() || undefined;
.setAuthor(client.user.username, client.user.avatarURL) const richem = new Discord.MessageEmbed()
.setThumbnail(client.user.avatarURL) .setAuthor(client.user?.username, avatarURL)
.setThumbnail(avatarURL as string)
.setDescription('A Markov chain chatbot that speaks based on previous chat input.') .setDescription('A Markov chain chatbot that speaks based on previous chat input.')
.addField( .addField(
'!mark', '!mark',
@@ -353,7 +355,7 @@ client.on('message', message => {
}); });
} }
if (command === 'train') { if (command === 'train') {
if (isModerator(message.member)) { if (message.member && isModerator(message.member)) {
console.log('Training...'); console.log('Training...');
fileObj = { fileObj = {
messages: [], messages: [],
@@ -385,18 +387,19 @@ client.on('message', message => {
dbObj.attachment = message.attachments.values().next().value.url; dbObj.attachment = message.attachments.values().next().value.url;
} }
messageCache.push(dbObj); messageCache.push(dbObj);
if (message.isMentioned(client.user)) { if (client.user && message.mentions.has(client.user)) {
generateResponse(message); generateResponse(message);
} }
} }
} }
if (command === inviteCmd) { if (command === inviteCmd) {
const richem = new Discord.RichEmbed() const avatarURL = client.user?.avatarURL() || undefined;
.setAuthor(`Invite ${client.user.username}`, client.user.avatarURL) const richem = new Discord.MessageEmbed()
.setThumbnail(client.user.avatarURL) .setAuthor(`Invite ${client.user?.username}`, avatarURL)
.setThumbnail(avatarURL as string)
.addField( .addField(
'Invite', 'Invite',
`[Invite ${client.user.username} to your server](https://discordapp.com/oauth2/authorize?client_id=${client.user.id}&scope=bot)` `[Invite ${client.user?.username} to your server](https://discordapp.com/oauth2/authorize?client_id=${client.user?.id}&scope=bot)`
); );
message.channel.send(richem).catch(() => { message.channel.send(richem).catch(() => {

149
package-lock.json generated
View File

@@ -24,6 +24,21 @@
"js-tokens": "^4.0.0" "js-tokens": "^4.0.0"
} }
}, },
"@discordjs/collection": {
"version": "0.1.6",
"resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-0.1.6.tgz",
"integrity": "sha512-utRNxnd9kSS2qhyivo9lMlt5qgAUasH2gb7BEOn6p0efFh24gjGomHzWKMAPn2hEReOPQZCJaRKoURwRotKucQ=="
},
"@discordjs/form-data": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/@discordjs/form-data/-/form-data-3.0.1.tgz",
"integrity": "sha512-ZfFsbgEXW71Rw/6EtBdrP5VxBJy4dthyC0tpQKGKmYFImlmmrykO14Za+BiIVduwjte0jXEBlhSKf0MWbFp9Eg==",
"requires": {
"asynckit": "^0.4.0",
"combined-stream": "^1.0.8",
"mime-types": "^2.1.12"
}
},
"@types/eslint-visitor-keys": { "@types/eslint-visitor-keys": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", "resolved": "https://registry.npmjs.org/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz",
@@ -110,6 +125,14 @@
"tsutils": "^3.17.1" "tsutils": "^3.17.1"
} }
}, },
"abort-controller": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz",
"integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==",
"requires": {
"event-target-shim": "^5.0.0"
}
},
"acorn": { "acorn": {
"version": "7.1.1", "version": "7.1.1",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz", "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz",
@@ -234,10 +257,10 @@
"integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==",
"dev": true "dev": true
}, },
"async-limiter": { "asynckit": {
"version": "1.0.1", "version": "0.4.0",
"resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
"integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
}, },
"balanced-match": { "balanced-match": {
"version": "1.0.0", "version": "1.0.0",
@@ -329,6 +352,14 @@
"integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
"dev": true "dev": true
}, },
"combined-stream": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
"integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
"requires": {
"delayed-stream": "~1.0.0"
}
},
"concat-map": { "concat-map": {
"version": "0.0.1", "version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
@@ -401,6 +432,11 @@
"object-keys": "^1.0.8" "object-keys": "^1.0.8"
} }
}, },
"delayed-stream": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
"integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
},
"diff": { "diff": {
"version": "4.0.1", "version": "4.0.1",
"resolved": "https://registry.npmjs.org/diff/-/diff-4.0.1.tgz", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.1.tgz",
@@ -408,15 +444,18 @@
"dev": true "dev": true
}, },
"discord.js": { "discord.js": {
"version": "11.5.1", "version": "12.3.1",
"resolved": "https://registry.npmjs.org/discord.js/-/discord.js-11.5.1.tgz", "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-12.3.1.tgz",
"integrity": "sha512-tGhV5xaZXE3Z+4uXJb3hYM6gQ1NmnSxp9PClcsSAYFVRzH6AJH74040mO3afPDMWEAlj8XsoPXXTJHTxesqcGw==", "integrity": "sha512-mSFyV/mbvzH12UXdS4zadmeUf8IMQOo/YdunubG1wWt1xjWvtaJz/s9CGsFD2B5pTw1W/LXxxUbrQjIZ/xlUdw==",
"requires": { "requires": {
"long": "^4.0.0", "@discordjs/collection": "^0.1.6",
"prism-media": "^0.0.3", "@discordjs/form-data": "^3.0.1",
"snekfetch": "^3.6.4", "abort-controller": "^3.0.0",
"tweetnacl": "^1.0.0", "node-fetch": "^2.6.0",
"ws": "^6.0.0" "prism-media": "^1.2.2",
"setimmediate": "^1.0.5",
"tweetnacl": "^1.0.3",
"ws": "^7.3.1"
} }
}, },
"doctrine": { "doctrine": {
@@ -751,6 +790,11 @@
"integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
"dev": true "dev": true
}, },
"event-target-shim": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz",
"integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ=="
},
"external-editor": { "external-editor": {
"version": "3.1.0", "version": "3.1.0",
"resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz",
@@ -1157,11 +1201,6 @@
"integrity": "sha1-vyJJiGzlFM2hEvrpIYzcBlIR/Jw=", "integrity": "sha1-vyJJiGzlFM2hEvrpIYzcBlIR/Jw=",
"dev": true "dev": true
}, },
"long": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz",
"integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA=="
},
"long-timeout": { "long-timeout": {
"version": "0.1.1", "version": "0.1.1",
"resolved": "https://registry.npmjs.org/long-timeout/-/long-timeout-0.1.1.tgz", "resolved": "https://registry.npmjs.org/long-timeout/-/long-timeout-0.1.1.tgz",
@@ -1181,6 +1220,19 @@
"lodash": "^4.17.14" "lodash": "^4.17.14"
} }
}, },
"mime-db": {
"version": "1.44.0",
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz",
"integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg=="
},
"mime-types": {
"version": "2.1.27",
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz",
"integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==",
"requires": {
"mime-db": "1.44.0"
}
},
"mimic-fn": { "mimic-fn": {
"version": "2.1.0", "version": "2.1.0",
"resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
@@ -1197,18 +1249,18 @@
} }
}, },
"minimist": { "minimist": {
"version": "0.0.8", "version": "1.2.5",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
"integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
"dev": true "dev": true
}, },
"mkdirp": { "mkdirp": {
"version": "0.5.1", "version": "0.5.5",
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
"integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"minimist": "0.0.8" "minimist": "^1.2.5"
} }
}, },
"moment": { "moment": {
@@ -1253,6 +1305,11 @@
"integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
"dev": true "dev": true
}, },
"node-fetch": {
"version": "2.6.1",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
"integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw=="
},
"node-gyp-build": { "node-gyp-build": {
"version": "3.7.0", "version": "3.7.0",
"resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-3.7.0.tgz", "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-3.7.0.tgz",
@@ -1519,9 +1576,9 @@
} }
}, },
"prism-media": { "prism-media": {
"version": "0.0.3", "version": "1.2.2",
"resolved": "https://registry.npmjs.org/prism-media/-/prism-media-0.0.3.tgz", "resolved": "https://registry.npmjs.org/prism-media/-/prism-media-1.2.2.tgz",
"integrity": "sha512-c9KkNifSMU/iXT8FFTaBwBMr+rdVcN+H/uNv1o+CuFeTThNZNTOrQ+RgXA1yL/DeLk098duAeRPP3QNPNbhxYQ==" "integrity": "sha512-I+nkWY212lJ500jLe4tN9tWO7nRiBAVdMv76P9kffZjYhw20raMlW1HSSvS+MLXC9MmbNZCazMrAr+5jEEgTuw=="
}, },
"progress": { "progress": {
"version": "2.0.3", "version": "2.0.3",
@@ -1626,6 +1683,11 @@
"integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
"dev": true "dev": true
}, },
"setimmediate": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
"integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU="
},
"shebang-command": { "shebang-command": {
"version": "1.2.0", "version": "1.2.0",
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
@@ -1666,11 +1728,6 @@
} }
} }
}, },
"snekfetch": {
"version": "3.6.4",
"resolved": "https://registry.npmjs.org/snekfetch/-/snekfetch-3.6.4.tgz",
"integrity": "sha512-NjxjITIj04Ffqid5lqr7XdgwM7X61c/Dns073Ly170bPQHLm6jkmelye/eglS++1nfTWktpP6Y2bFXjdPlQqdw=="
},
"sorted-array-functions": { "sorted-array-functions": {
"version": "1.2.0", "version": "1.2.0",
"resolved": "https://registry.npmjs.org/sorted-array-functions/-/sorted-array-functions-1.2.0.tgz", "resolved": "https://registry.npmjs.org/sorted-array-functions/-/sorted-array-functions-1.2.0.tgz",
@@ -1929,9 +1986,9 @@
} }
}, },
"tweetnacl": { "tweetnacl": {
"version": "1.0.1", "version": "1.0.3",
"resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.1.tgz", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz",
"integrity": "sha512-kcoMoKTPYnoeS50tzoqjPY3Uv9axeuuFAZY9M/9zFnhoVvRfxz9K29IMPD7jGmt2c8SW7i3gT9WqDl2+nV7p4A==" "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw=="
}, },
"type-check": { "type-check": {
"version": "0.3.2", "version": "0.3.2",
@@ -2010,12 +2067,9 @@
} }
}, },
"ws": { "ws": {
"version": "6.2.1", "version": "7.3.1",
"resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", "resolved": "https://registry.npmjs.org/ws/-/ws-7.3.1.tgz",
"integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", "integrity": "sha512-D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA=="
"requires": {
"async-limiter": "~1.0.0"
}
}, },
"yn": { "yn": {
"version": "3.1.1", "version": "3.1.1",
@@ -2024,18 +2078,11 @@
"dev": true "dev": true
}, },
"zlib-sync": { "zlib-sync": {
"version": "0.1.6", "version": "0.1.7",
"resolved": "https://registry.npmjs.org/zlib-sync/-/zlib-sync-0.1.6.tgz", "resolved": "https://registry.npmjs.org/zlib-sync/-/zlib-sync-0.1.7.tgz",
"integrity": "sha512-B2XGrhlXs/izEks+705vn/aL+nWyPgnS1glyCeH8wgZdOvztRn3ZEdqclj6GoJSeA/iRSqaTlznG2KO1M/GuWg==", "integrity": "sha512-UmciU6ZrIwtwPC8noMzq+kGMdiWwNRZ3wC0SbED4Ew5Ikqx14MqDPRs/Pbk+3rZPh5SzsOgUBs1WRE0iieddpg==",
"requires": { "requires": {
"nan": "^2.14.0" "nan": "^2.14.0"
},
"dependencies": {
"nan": {
"version": "2.14.0",
"resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz",
"integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg=="
}
} }
} }
} }

View File

@@ -26,12 +26,12 @@
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"bufferutil": "^4.0.1", "bufferutil": "^4.0.1",
"discord.js": "^11.5.1", "discord.js": "^12.3.1",
"erlpack": "^0.1.3", "erlpack": "^0.1.3",
"markov-strings": "^2.1.0", "markov-strings": "^2.1.0",
"node-schedule": "^1.3.2", "node-schedule": "^1.3.2",
"source-map-support": "^0.5.16", "source-map-support": "^0.5.16",
"zlib-sync": "^0.1.6" "zlib-sync": "^0.1.7"
}, },
"engines": { "engines": {
"node": ">=12.0.0" "node": ">=12.0.0"