From ae8b121d03cbdd957fda626d79fa7eb582605f45 Mon Sep 17 00:00:00 2001 From: Essem Date: Tue, 29 Jun 2021 14:10:22 -0500 Subject: [PATCH] Added server/user count to stats, fixed message not showing on tenor/large image errors --- classes/imageCommand.js | 2 +- commands/general/stats.js | 11 +++++++++++ shard.js | 2 +- utils/database/postgresql.js | 3 +-- utils/imagedetect.js | 11 +++++++++-- 5 files changed, 23 insertions(+), 6 deletions(-) diff --git a/classes/imageCommand.js b/classes/imageCommand.js index 9ba8d47..70800f8 100644 --- a/classes/imageCommand.js +++ b/classes/imageCommand.js @@ -58,7 +58,7 @@ class ImageCommand extends Command { return this.constructor.noImage; } else if (image.type === "large") { collections.runningCommands.delete(this.message.author.id); - return "That image is too large!"; + return "That image is too large (>= 25MB)! Try using a smaller image."; } else if (image.type === "tenorlimit") { collections.runningCommands.delete(this.message.author.id); return "I've been rate-limited by Tenor. Please try uploading your GIF elsewhere."; diff --git a/commands/general/stats.js b/commands/general/stats.js index d00df01..cd1bc3c 100644 --- a/commands/general/stats.js +++ b/commands/general/stats.js @@ -57,11 +57,22 @@ class StatsCommand extends Command { { "name": "Shard", "value": this.message.channel.guild ? this.client.guildShardMap[this.message.channel.guild.id] : "N/A", + "inline": true }, { "name": "Cluster", "value": this.cluster, "inline": true + }, + { + "name": "Servers", + "value": collections.stats.guilds ? collections.stats.guilds : `${this.client.guilds.size} (for this cluster only)`, + "inline": true + }, + { + "name": "Users (approximation)", + "value": collections.stats.users ? collections.stats.users : `${this.client.users.size} (for this cluster only)`, + "inline": true } ] } diff --git a/shard.js b/shard.js index 0a76e60..ab7a0ff 100644 --- a/shard.js +++ b/shard.js @@ -141,7 +141,7 @@ connected_workers ${image.connections.size} }); this.ipc.register("restart", async () => { - await this.bot.editStatus("dnd", { + this.bot.editStatus("dnd", { name: "esmBot is restarting, please stand by." }); process.exit(1); diff --git a/utils/database/postgresql.js b/utils/database/postgresql.js index 9224278..e3ef488 100644 --- a/utils/database/postgresql.js +++ b/utils/database/postgresql.js @@ -3,10 +3,9 @@ const logger = require("../logger.js"); const misc = require("../misc.js"); const { Pool } = require("pg"); -const pool = new Pool({ +const connection = new Pool({ connectionString: process.env.DB }); -const connection = pool; exports.getGuild = async (query) => { return (await connection.query("SELECT * FROM guilds WHERE guild_id = $1", [query])).rows[0]; diff --git a/utils/imagedetect.js b/utils/imagedetect.js index a1acc73..08599f9 100644 --- a/utils/imagedetect.js +++ b/utils/imagedetect.js @@ -30,7 +30,7 @@ const gfycatURLs = [ "giant.gfycat.com" ]; -const imageFormats = ["image/jpeg", "image/png", "image/webp", "image/gif"]; +const imageFormats = ["image/jpeg", "image/png", "image/webp", "image/gif", "large"]; const videoFormats = ["video/mp4", "video/webm", "video/mov"]; // gets the proper image paths @@ -48,7 +48,14 @@ const getImage = async (image, image2, video, extraReturnTypes, gifv = false) => // Note that MP4 conversion requires an ImageMagick build that supports MPEG decoding if (process.env.TENOR !== "") { const data = await fetch(`https://g.tenor.com/v1/gifs?ids=${image2.split("-").pop()}&media_filter=minimal&limit=1&key=${process.env.TENOR}`); - if (data.status === 429) return extraReturnTypes ? "tenorlimit" : null; + if (data.status === 429) { + if (extraReturnTypes) { + payload.type = "tenorlimit"; + return payload; + } else { + return; + } + } const json = await data.json(); payload.path = json.results[0].media[0].gif.url; } else {