From c46772dafca669893ffb6017fb2a2d24cbc32b78 Mon Sep 17 00:00:00 2001 From: Cyril59310 <70776486+cyril59310@users.noreply.github.com> Date: Sat, 7 Jun 2025 21:09:56 +0200 Subject: [PATCH] Add default avatar in discord notifications (#5890) --- server/notification-providers/discord.js | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/server/notification-providers/discord.js b/server/notification-providers/discord.js index 9ea260410..446784bb4 100644 --- a/server/notification-providers/discord.js +++ b/server/notification-providers/discord.js @@ -18,17 +18,28 @@ class Discord extends NotificationProvider { webhookUrl.searchParams.append("thread_id", notification.threadId); } + // Check if the webhook has an avatar + let webhookHasAvatar = true; + try { + const webhookInfo = await axios.get(webhookUrl.toString()); + webhookHasAvatar = !!webhookInfo.data.avatar; + } catch (e) { + // If we can't verify, we assume he has an avatar to avoid forcing the default avatar + webhookHasAvatar = true; + } + // If heartbeatJSON is null, assume we're testing. if (heartbeatJSON == null) { let discordtestdata = { username: discordDisplayName, content: msg, }; - + if (!webhookHasAvatar) { + discordtestdata.avatar_url = "https://github.com/louislam/uptime-kuma/raw/master/public/icon.png"; + } if (notification.discordChannelType === "createNewForumPost") { discordtestdata.thread_name = notification.postName; } - await axios.post(webhookUrl.toString(), discordtestdata); return okMsg; } @@ -61,6 +72,9 @@ class Discord extends NotificationProvider { ], }], }; + if (!webhookHasAvatar) { + discorddowndata.avatar_url = "https://github.com/louislam/uptime-kuma/raw/master/public/icon.png"; + } if (notification.discordChannelType === "createNewForumPost") { discorddowndata.thread_name = notification.postName; } @@ -98,6 +112,9 @@ class Discord extends NotificationProvider { ], }], }; + if (!webhookHasAvatar) { + discordupdata.avatar_url = "https://github.com/louislam/uptime-kuma/raw/master/public/icon.png"; + } if (notification.discordChannelType === "createNewForumPost") { discordupdata.thread_name = notification.postName;