From e523b5402e6a34400fd6762b1e82bbe8103e7b78 Mon Sep 17 00:00:00 2001 From: bignutty <3515180-bignutty@users.noreply.gitlab.com> Date: Thu, 26 Dec 2024 23:17:46 +0100 Subject: [PATCH] standardize error messages --- index.js | 7 +++---- labscore/client.js | 6 +++--- labscore/logging.js | 5 +++++ labscore/utils/message.js | 8 ++++---- 4 files changed, 15 insertions(+), 11 deletions(-) diff --git a/index.js b/index.js index a617e53..b7fc504 100644 --- a/index.js +++ b/index.js @@ -1,7 +1,7 @@ const { ClusterManager } = require('detritus-client'); const superagent = require('superagent') -const { basecamp } = require('#logging'); +const { basecamp, formatErrorMessage } = require('#logging'); // Configure environment require('dotenv').config(); @@ -27,11 +27,10 @@ const manager = new ClusterManager(client, token, { // Logging manager.on("clusterProcess", ({ clusterProcess }) => { clusterProcess.on('close', ({code, signal}) => { - basecamp(`<:ico_w4:1086624964284788787>\`[${process.env.HOSTNAME || "labscore"}]\` **\` CLUSTER_CLOSED \`** Cluster ${clusterProcess.clusterId} closed with code \`${code}\` and signal \`${signal}\` @ \`${Date.now()}\``) + basecamp(formatErrorMessage(4, "CLUSTER_CLOSED", `Cluster ${clusterProcess.clusterId} closed with code \`${code}\` and signal \`${signal}\``)); }); clusterProcess.on('warn', async ({error}) => { - await basecamp(`<:ico_w2:1086624961025810485>\`[${process.env.HOSTNAME || "labscore"}]\` **\` CLUSTER_WARNING \`** Cluster ${clusterProcess.clusterId} issued warning @ \`${Date.now()}\``) - await basecamp(`\`\`\`js\n${error}\`\`\``) + await basecamp(formatErrorMessage(2, "CLUSTER_WARNING", `Cluster ${clusterProcess.clusterId} issued warning\n\`\`\`js\n${error}\`\`\``)); }); }) diff --git a/labscore/client.js b/labscore/client.js index 2773508..6002a8f 100644 --- a/labscore/client.js +++ b/labscore/client.js @@ -85,7 +85,7 @@ const interactionClient = new InteractionCommandClient(cluster, { useClusterClient: true }) -const { maintower, basecamp, ingest } = require('#logging'); +const { maintower, basecamp, ingest, formatErrorMessage } = require('#logging'); const { createEmbed } = require('#utils/embed'); const { icon, highlight } = require('#utils/markdown'); @@ -230,14 +230,14 @@ interactionClient.on('commandRunError', async ({context, error}) => { const message = `Shard #${shard.shardId}: (NOT OK) ${response.statusCode} ${response.request.method}-${response.request.url} (${route.path})`; console.log(message); console.log(await response.text()); - await basecamp(`<:ico_w3:1086624963047460874>\`[${process.env.HOSTNAME}]\` **\` SHARD_REST_ERROR \`** \`[Shard ${shard.shardId}]\` Shard request error: \`${response.statusCode}\` @ \`${Date.now()}\`\n**\` ${response.request.method} \`** \`${response.request.url}\` (${route.path})\n\`\`\`js\n${await response.text()}\`\`\``) + await basecamp(formatErrorMessage(3, "SHARD_REST_ERROR", `\`[Shard ${shard.shardId}]\` Shard request error: \`${response.statusCode}\`\n**\` ${response.request.method} \`** \`${response.request.url}\` (${route.path})\n\`\`\`js\n${await response.text()}\`\`\``)); } } }); cluster.on(ClientEvents.WARN, async ({error}) => { if(!process.env.MAINTOWER_URL) { console.warn(error); return; } - await basecamp(`<:ico_w2:1086624961025810485>\`[${process.env.HOSTNAME}]\` **\` CLUSTER_WARNING \`** Cluster ${cluster.manager.clusterId} reported warning @ \`${Date.now()}\`:\n\`\`\`${error}\`\`\``) + await basecamp(formatErrorMessage(2, "CLUSTER_WARNING", `\`Cluster ${cluster.manager.clusterId} reported warning\`:\n\`\`\`${error}\`\`\``)); }); try{ diff --git a/labscore/logging.js b/labscore/logging.js index b65ce8d..1e66837 100644 --- a/labscore/logging.js +++ b/labscore/logging.js @@ -1,3 +1,4 @@ +const { icon } = require('#utils/markdown') const superagent = require('superagent') const MAINTOWER_BASE_URL = process.env.MAINTOWER_URL @@ -5,6 +6,10 @@ const MAINTOWER_BASE_URL = process.env.MAINTOWER_URL let maintowerClient = "1fepg2wdk-prod" if(process.env.MAINTOWER_OVERRIDE) maintowerClient = process.env.MAINTOWER_OVERRIDE +module.exports.formatErrorMessage = (sev = 0, code, content) => { + return `${icon("webhook_exclaim_" + parseInt(sev))} \`[${Date.now()}]\` @ \`[${process.env.HOSTNAME}]\` **\` ${code} \`** | ${content}` +} + module.exports.maintower = async function (packages, type){ if(!MAINTOWER_BASE_URL) { console.warn("No maintower url configured."); return; } try{ diff --git a/labscore/utils/message.js b/labscore/utils/message.js index 08eb5be..1a7a9a9 100644 --- a/labscore/utils/message.js +++ b/labscore/utils/message.js @@ -1,5 +1,5 @@ const { Permissions, MessageFlags } = require("detritus-client/lib/constants") -const { basecamp } = require("../logging") +const { basecamp, formatErrorMessage } = require("../logging") const { COLORS, MESSAGE_BLOCK_REASONS } = require("#constants") const { icon, link } = require("./markdown") @@ -28,7 +28,7 @@ module.exports.editOrReply = function(context, message, disableReference = false if(context.editOrRespond){ if(context._meta?.replacementMessageId){ return context.editMessage(context._meta.replacementMessageId, message).catch((e)=>{ - basecamp(`<:ico_w3:1086624963047460874>\`[${process.env.HOSTNAME}]\` **\` SHARD_MESSAGE_ERROR \`** \`[Shard ${context.client.shardId}]\` Command \`${context.command.name}\` failed to respond: @ \`${Date.now()}\`\nGuild: \`${context.guild?.id}\`\nChannel: \`${context.channel?.id}\`\nUser: \`${context.user?.id}\`\`\`\`js\n${e}\`\`\``, message) + basecamp(formatErrorMessage(3, "SHARD_MESSAGE_ERROR", `\`[Shard ${context.client.shardId}]\` Command \`${context.command.name}\` failed to respond:\nGuild: \`${context.guild?.id}\`\nChannel: \`${context.channel?.id}\`\nUser: \`${context.user?.id}\`\`\`\`js\n${e}\`\`\``), message); }); } @@ -76,13 +76,13 @@ module.exports.editOrReply = function(context, message, disableReference = false return replacementMessage; } - basecamp(`<:ico_w3:1086624963047460874>\`[${process.env.HOSTNAME}]\` **\` SHARD_MESSAGE_ERROR \`** \`[Shard ${context.client.shardId}]\` Command \`${context.command.name}\` failed to respond: @ \`${Date.now()}\`\nGuild: \`${context.guild?.id}\`\nChannel: \`${context.channel?.id}\`\nUser: \`${context.user?.id}\`\`\`\`js\n${e}\`\`\``, message) + basecamp(formatErrorMessage(3, "SHARD_MESSAGE_ERROR", `\`[Shard ${context.client.shardId}]\` Command \`${context.command.name}\` failed to respond: @ \`${Date.now()}\`\nGuild: \`${context.guild?.id}\`\nChannel: \`${context.channel?.id}\`\nUser: \`${context.user?.id}\`\`\`\`js\n${e}\`\`\``), message); }) } // Only respond if the command is still available and we have permissions to respond. if(!context.message.deleted && context.channel.can(Permissions.SEND_MESSAGES)) return context.editOrReply(message).catch((e)=>{ console.log(e.status) - basecamp(`<:ico_w3:1086624963047460874>\`[${process.env.HOSTNAME}]\` **\` SHARD_MESSAGE_ERROR \`** \`[Shard ${context.client.shardId}]\` Command \`${context.message?.content}\` failed to reply: @ \`${Date.now()}\`\nGuild: \`${context.guild?.id}\`\nChannel: \`${context.channel?.id}\`\nUser: \`${context.user?.id}\`\`\`\`js\n${e}\`\`\``, message) + basecamp(formatErrorMessage(3, "SHARD_MESSAGE_ERROR", `\`[Shard ${context.client.shardId}]\` Command \`${context.message?.content}\` failed to respond:\nGuild: \`${context.guild?.id}\`\nChannel: \`${context.channel?.id}\`\nUser: \`${context.user?.id}\`\`\`\`js\n${e}\`\`\``), message); }) } \ No newline at end of file