Added more activity messages, updated packages, allow any public Lavalink instance to be used via the "local" parameter, added clearer error message for API timeouts

This commit is contained in:
TheEssem 2021-01-04 10:29:18 -06:00
parent 9ab13f5389
commit dd114e27b5
7 changed files with 105 additions and 86 deletions

View file

@ -96,6 +96,8 @@ module.exports = async (message) => {
} catch (error) { } catch (error) {
if (error.toString().includes("Request entity too large")) { if (error.toString().includes("Request entity too large")) {
await client.createMessage(message.channel.id, `${message.author.mention}, the resulting file was too large to upload. Try again with a smaller image if possible.`); await client.createMessage(message.channel.id, `${message.author.mention}, the resulting file was too large to upload. Try again with a smaller image if possible.`);
} else if (error.toString().includes("UDP timed out")) {
await client.createMessage(message.channel.id, `${message.author.mention}, I couldn't contact the image API in time (most likely due to it being overloaded). Try running your command again.`);
} else if (error.toString().includes("Timed out")) { } else if (error.toString().includes("Timed out")) {
await client.createMessage(message.channel.id, `${message.author.mention}, the request timed out before I could download that image. Try uploading your image somewhere else.`); await client.createMessage(message.channel.id, `${message.author.mention}, the request timed out before I could download that image. Try uploading your image somewhere else.`);
} else { } else {

View file

@ -18,7 +18,7 @@
"Fortnut", "Fortnut",
"epic mashups bro", "epic mashups bro",
"Netscape Navigator", "Netscape Navigator",
"Ubuntu", "Ubuntu (worst linux)",
"Linux", "Linux",
"Hello Kitty Island Adventure", "Hello Kitty Island Adventure",
"with the Infinity Gauntlet", "with the Infinity Gauntlet",
@ -111,5 +111,10 @@
"ay yo the pizza here", "ay yo the pizza here",
"100 gecs", "100 gecs",
"with limited resources", "with limited resources",
"messages from 2018" "messages from 2018",
"&caption get real",
"Open Fortress",
"btw I use arch",
"Friday Night Funkin'",
"fgsfds"
] ]

168
package-lock.json generated
View file

@ -1,6 +1,6 @@
{ {
"name": "esmbot", "name": "esmbot",
"version": "1.3.3", "version": "1.4.0",
"lockfileVersion": 1, "lockfileVersion": 1,
"requires": true, "requires": true,
"dependencies": { "dependencies": {
@ -355,16 +355,29 @@
"dev": true "dev": true
}, },
"cheerio": { "cheerio": {
"version": "1.0.0-rc.3", "version": "1.0.0-rc.5",
"resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.3.tgz", "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.5.tgz",
"integrity": "sha512-0td5ijfUPuubwLUu0OBoe98gZj8C/AA+RW3v67GPlGOrvxWjZmBXiBCRU+I8VEiNyJzjth40POfHiz2RB3gImA==", "integrity": "sha512-yoqps/VCaZgN4pfXtenwHROTp8NG6/Hlt4Jpz2FEP0ZJQ+ZUkVDd0hAPDNKhj3nakpfPt/CNs57yEtxD1bXQiw==",
"requires": { "requires": {
"css-select": "~1.2.0", "cheerio-select-tmp": "^0.1.0",
"dom-serializer": "~0.1.1", "dom-serializer": "~1.2.0",
"entities": "~1.1.1", "domhandler": "^4.0.0",
"htmlparser2": "^3.9.1", "entities": "~2.1.0",
"lodash": "^4.15.0", "htmlparser2": "^6.0.0",
"parse5": "^3.0.1" "parse5": "^6.0.0",
"parse5-htmlparser2-tree-adapter": "^6.0.0"
}
},
"cheerio-select-tmp": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/cheerio-select-tmp/-/cheerio-select-tmp-0.1.1.tgz",
"integrity": "sha512-YYs5JvbpU19VYJyj+F7oYrIE2BOll1/hRU7rEy/5+v9BzkSo3bK81iAeeQEMI92vRIxz677m72UmJUiVwwgjfQ==",
"requires": {
"css-select": "^3.1.2",
"css-what": "^4.0.0",
"domelementtype": "^2.1.0",
"domhandler": "^4.0.0",
"domutils": "^2.4.4"
} }
}, },
"chownr": { "chownr": {
@ -548,20 +561,21 @@
} }
}, },
"css-select": { "css-select": {
"version": "1.2.0", "version": "3.1.2",
"resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", "resolved": "https://registry.npmjs.org/css-select/-/css-select-3.1.2.tgz",
"integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", "integrity": "sha512-qmss1EihSuBNWNNhHjxzxSfJoFBM/lERB/Q4EnsJQQC62R2evJDW481091oAdOr9uh46/0n4nrg0It5cAnj1RA==",
"requires": { "requires": {
"boolbase": "~1.0.0", "boolbase": "^1.0.0",
"css-what": "2.1", "css-what": "^4.0.0",
"domutils": "1.5.1", "domhandler": "^4.0.0",
"nth-check": "~1.0.1" "domutils": "^2.4.3",
"nth-check": "^2.0.0"
} }
}, },
"css-what": { "css-what": {
"version": "2.1.3", "version": "4.0.0",
"resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz", "resolved": "https://registry.npmjs.org/css-what/-/css-what-4.0.0.tgz",
"integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==" "integrity": "sha512-teijzG7kwYfNVsUh2H/YN62xW3KK9YhXEgSlbxMlcyjPNvdKJqFx5lrwlJgoFP1ZHlB89iGDlo/JyshKeRhv5A=="
}, },
"dblapi.js": { "dblapi.js": {
"version": "2.4.1", "version": "2.4.1",
@ -646,34 +660,36 @@
} }
}, },
"dom-serializer": { "dom-serializer": {
"version": "0.1.1", "version": "1.2.0",
"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.2.0.tgz",
"integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==", "integrity": "sha512-n6kZFH/KlCrqs/1GHMOd5i2fd/beQHuehKdWvNNffbGHTr/almdhuVvTVFb3V7fglz+nC50fFusu3lY33h12pA==",
"requires": { "requires": {
"domelementtype": "^1.3.0", "domelementtype": "^2.0.1",
"entities": "^1.1.1" "domhandler": "^4.0.0",
"entities": "^2.0.0"
} }
}, },
"domelementtype": { "domelementtype": {
"version": "1.3.1", "version": "2.1.0",
"resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.1.0.tgz",
"integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" "integrity": "sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w=="
}, },
"domhandler": { "domhandler": {
"version": "2.4.2", "version": "4.0.0",
"resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.0.0.tgz",
"integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", "integrity": "sha512-KPTbnGQ1JeEMQyO1iYXoagsI6so/C96HZiFyByU3T6iAzpXn8EGEvct6unm1ZGoed8ByO2oirxgwxBmqKF9haA==",
"requires": { "requires": {
"domelementtype": "1" "domelementtype": "^2.1.0"
} }
}, },
"domutils": { "domutils": {
"version": "1.5.1", "version": "2.4.4",
"resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.4.4.tgz",
"integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", "integrity": "sha512-jBC0vOsECI4OMdD0GC9mGn7NXPLb+Qt6KW1YDQzeQYRUFKmNG8lh7mO5HiELfr+lLQE7loDVI4QcAxV80HS+RA==",
"requires": { "requires": {
"dom-serializer": "0", "dom-serializer": "^1.0.1",
"domelementtype": "1" "domelementtype": "^2.0.1",
"domhandler": "^4.0.0"
} }
}, },
"dotenv": { "dotenv": {
@ -707,9 +723,9 @@
} }
}, },
"entities": { "entities": {
"version": "1.1.2", "version": "2.1.0",
"resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz",
"integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w=="
}, },
"eris": { "eris": {
"version": "0.13.4", "version": "0.13.4",
@ -1179,28 +1195,14 @@
"integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk="
}, },
"htmlparser2": { "htmlparser2": {
"version": "3.10.1", "version": "6.0.0",
"resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.0.0.tgz",
"integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", "integrity": "sha512-numTQtDZMoh78zJpaNdJ9MXb2cv5G3jwUoe3dMQODubZvLoGvTE/Ofp6sHvH8OGKcN/8A47pGLi/k58xHP/Tfw==",
"requires": { "requires": {
"domelementtype": "^1.3.1", "domelementtype": "^2.0.1",
"domhandler": "^2.3.0", "domhandler": "^4.0.0",
"domutils": "^1.5.1", "domutils": "^2.4.4",
"entities": "^1.1.1", "entities": "^2.0.0"
"inherits": "^2.0.1",
"readable-stream": "^3.1.1"
},
"dependencies": {
"readable-stream": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
"integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
"requires": {
"inherits": "^2.0.3",
"string_decoder": "^1.1.1",
"util-deprecate": "^1.0.1"
}
}
} }
}, },
"https-proxy-agent": { "https-proxy-agent": {
@ -1477,7 +1479,8 @@
"lodash": { "lodash": {
"version": "4.17.19", "version": "4.17.19",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz",
"integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==" "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==",
"dev": true
}, },
"lodash.toarray": { "lodash.toarray": {
"version": "4.4.0", "version": "4.4.0",
@ -1521,16 +1524,16 @@
} }
}, },
"mime-db": { "mime-db": {
"version": "1.42.0", "version": "1.45.0",
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.42.0.tgz", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.45.0.tgz",
"integrity": "sha512-UbfJCR4UAVRNgMpfImz05smAXK7+c+ZntjaA26ANtkXLlOe947Aag5zdIcKQULAiF9Cq4WxBi9jUs5zkA84bYQ==" "integrity": "sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w=="
}, },
"mime-types": { "mime-types": {
"version": "2.1.25", "version": "2.1.28",
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.25.tgz", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.28.tgz",
"integrity": "sha512-5KhStqB5xpTAeGqKBAMgwaYMnQik7teQN4IAzC7npDv6kzeU6prfkR67bc87J1kWMPGkoaZSq1npmexMgkmEVg==", "integrity": "sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ==",
"requires": { "requires": {
"mime-db": "1.42.0" "mime-db": "1.45.0"
} }
}, },
"mimic-response": { "mimic-response": {
@ -1732,9 +1735,9 @@
} }
}, },
"node-addon-api": { "node-addon-api": {
"version": "3.0.2", "version": "3.1.0",
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.0.2.tgz", "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.1.0.tgz",
"integrity": "sha512-+D4s2HCnxPd5PjjI0STKwncjXTUKKqm74MDMz9OPXavjsGmjkvwgLtA5yoxJUdmpj52+2u+RrXgPipahKczMKg==" "integrity": "sha512-flmrDNB06LIl5lywUz7YlNGZH/5p0M7W28k8hzd9Lshtdh1wshD2Y+U4h9LD6KObOy1f+fEVdgprPrEymjM5uw=="
}, },
"node-emoji": { "node-emoji": {
"version": "1.10.0", "version": "1.10.0",
@ -1777,11 +1780,11 @@
} }
}, },
"nth-check": { "nth-check": {
"version": "1.0.2", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.0.tgz",
"integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", "integrity": "sha512-i4sc/Kj8htBrAiH1viZ0TgU8Y5XqCaV/FziYK6TBczxmeKm3AEFWqqF3195yKudrarqy7Zu80Ra5dobFjn9X/Q==",
"requires": { "requires": {
"boolbase": "~1.0.0" "boolbase": "^1.0.0"
} }
}, },
"number-is-nan": { "number-is-nan": {
@ -1907,11 +1910,16 @@
} }
}, },
"parse5": { "parse5": {
"version": "3.0.3", "version": "6.0.1",
"resolved": "https://registry.npmjs.org/parse5/-/parse5-3.0.3.tgz", "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz",
"integrity": "sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA==", "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw=="
},
"parse5-htmlparser2-tree-adapter": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz",
"integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==",
"requires": { "requires": {
"@types/node": "*" "parse5": "^6.0.1"
} }
}, },
"path-exists": { "path-exists": {

View file

@ -4,7 +4,7 @@
"description": "A Discord bot with miscellaneous features", "description": "A Discord bot with miscellaneous features",
"main": "app.js", "main": "app.js",
"engines": { "engines": {
"node": ">=12" "node": ">=15"
}, },
"scripts": { "scripts": {
"build": "node-gyp configure build", "build": "node-gyp configure build",
@ -35,7 +35,7 @@
"lavacord": "^1.1.9", "lavacord": "^1.1.9",
"moment": "^2.29.1", "moment": "^2.29.1",
"moment-duration-format": "^2.3.2", "moment-duration-format": "^2.3.2",
"node-addon-api": "^3.0.2", "node-addon-api": "^3.1.0",
"node-emoji": "^1.10.0", "node-emoji": "^1.10.0",
"node-fetch": "^2.6.1", "node-fetch": "^2.6.1",
"node-tweet": "^0.1.4", "node-tweet": "^0.1.4",

View file

@ -1,6 +1,6 @@
{ {
"lava": [ "lava": [
{ "id": "1", "host": "localhost", "port": 2333, "password": "youshallnotpass" } { "id": "1", "host": "localhost", "port": 2333, "password": "youshallnotpass", "local": true }
], ],
"image": [ "image": [
"localhost" "localhost"

View file

@ -94,6 +94,7 @@ exports.getType = async (image) => {
}, 25000); }, 25000);
try { try {
const imageRequest = await fetch(image, { signal: controller.signal, highWaterMark: 512 }); const imageRequest = await fetch(image, { signal: controller.signal, highWaterMark: 512 });
clearTimeout(timeout);
const imageBuffer = await imageRequest.buffer(); const imageBuffer = await imageRequest.buffer();
const imageType = await fileType.fromBuffer(imageBuffer); const imageType = await fileType.fromBuffer(imageBuffer);
if (imageType && formats.includes(imageType.mime)) { if (imageType && formats.includes(imageType.mime)) {
@ -119,7 +120,7 @@ exports.run = (object, fromAPI = false) => {
const data = Buffer.concat([Buffer.from([0x1]), Buffer.from(JSON.stringify(object))]); const data = Buffer.concat([Buffer.from([0x1]), Buffer.from(JSON.stringify(object))]);
const timeout = setTimeout(() => { const timeout = setTimeout(() => {
reject("Timed out"); reject("UDP timed out");
}, 25000); }, 25000);
let jobID; let jobID;

View file

@ -55,6 +55,9 @@ exports.play = async (sound, message, music = false) => {
const player = this.players.get(message.channel.guild.id); const player = this.players.get(message.channel.guild.id);
if (!music && this.manager.voiceStates.has(message.channel.guild.id) && (player && player.type === "music")) return `${message.author.mention}, I can't play a sound effect while playing music!`; if (!music && this.manager.voiceStates.has(message.channel.guild.id) && (player && player.type === "music")) return `${message.author.mention}, I can't play a sound effect while playing music!`;
const node = this.manager.idealNodes[0]; const node = this.manager.idealNodes[0];
if (!music && !nodes.filter(obj => obj.host === node.host)[0].local) {
sound = sound.replace(/\.\//, "https://raw.githubusercontent.com/esmBot/esmBot/master/");
}
const { tracks } = await fetch(`http://${node.host}:${node.port}/loadtracks?identifier=${sound}`, { headers: { Authorization: node.password } }).then(res => res.json()); const { tracks } = await fetch(`http://${node.host}:${node.port}/loadtracks?identifier=${sound}`, { headers: { Authorization: node.password } }).then(res => res.json());
const oldQueue = this.queues.get(voiceChannel.guild.id); const oldQueue = this.queues.get(voiceChannel.guild.id);
if (tracks.length === 0) return `${message.author.mention}, I couldn't find that song!`; if (tracks.length === 0) return `${message.author.mention}, I couldn't find that song!`;