From 40af0f23590b14e27638165d29a3db5e955817f0 Mon Sep 17 00:00:00 2001 From: Dragory <2606411+Dragory@users.noreply.github.com> Date: Fri, 11 Oct 2019 22:56:34 +0300 Subject: [PATCH] Automod logging improvements --- src/data/DefaultLogMessages.json | 2 +- src/plugins/Automod.ts | 9 +++++++-- src/plugins/Logs.ts | 13 +++++-------- src/utils.ts | 13 +++++++++++++ 4 files changed, 26 insertions(+), 11 deletions(-) diff --git a/src/data/DefaultLogMessages.json b/src/data/DefaultLogMessages.json index 56300459..623f0278 100644 --- a/src/data/DefaultLogMessages.json +++ b/src/data/DefaultLogMessages.json @@ -59,5 +59,5 @@ "BOT_ALERT": "⚠ {tmplEval(body)}", "AUTOMOD_ALERT": "{text}", - "AUTOMOD_ACTION": "\uD83E\uDD16 Automod rule **{rule}** triggered by {userMention(user)}, actions taken: {actionsTaken}\n{matchSummary}" + "AUTOMOD_ACTION": "\uD83E\uDD16 Automod rule **{rule}** triggered by {userMention(user)}. Actions taken: **{actionsTaken}**\n{matchSummary}" } diff --git a/src/plugins/Automod.ts b/src/plugins/Automod.ts index e91cb220..5f13e0cd 100644 --- a/src/plugins/Automod.ts +++ b/src/plugins/Automod.ts @@ -13,6 +13,7 @@ import { SECONDS, stripObjectToScalars, tNullable, + verboseChannelMention, } from "../utils"; import { decorators as d } from "knub"; import { mergeConfig } from "knub/dist/configUtils"; @@ -1025,10 +1026,14 @@ export class AutomodPlugin extends ZeppelinPlugin { const archiveId = await this.archives.createFromSavedMessages(savedMessages, this.guild); const baseUrl = this.knub.getGlobalConfig().url; const archiveUrl = this.archives.getUrl(baseUrl, archiveId); - matchSummary = `Deleted messages: <${archiveUrl}>`; + matchSummary = `Matched messages: <${archiveUrl}>`; } else if (matchedMessageIds.length === 1) { const message = await this.savedMessages.find(matchedMessageIds[0]); - matchSummary = `Deleted message:\n${messageSummary(message)}`; + const channel = this.guild.channels.get(message.channel_id); + const channelMention = channel ? verboseChannelMention(channel) : `\`#${message.channel_id}\``; + matchSummary = `Matched message in ${channelMention} (originally posted at **${ + message.posted_at + }**):\n${messageSummary(message)}`; } if (matchResult.type === "username") { diff --git a/src/plugins/Logs.ts b/src/plugins/Logs.ts index 4aa1d2dc..c8135961 100644 --- a/src/plugins/Logs.ts +++ b/src/plugins/Logs.ts @@ -13,6 +13,9 @@ import { stripObjectToScalars, UnknownUser, useMediaUrls, + verboseChannelMention, + verboseUserMention, + verboseUserName, } from "../utils"; import DefaultLogMessages from "../data/DefaultLogMessages.json"; import moment from "moment-timezone"; @@ -193,17 +196,11 @@ export class LogsPlugin extends ZeppelinPlugin { const memberConfig = this.getMatchingConfig({ member, userId: user.id }) || ({} as any); - if (memberConfig.ping_user) { - // Ping/mention the user - return `<@!${user.id}> (**${user.username}#${user.discriminator}**, \`${user.id}\`)`; - } else { - // No ping/mention - return `**${user.username}#${user.discriminator}** (\`${user.id}\`)`; - } + return memberConfig.ping_user ? verboseUserMention(user) : verboseUserName(user); }, channelMention: channel => { if (!channel) return ""; - return `<#${channel.id}> (**#${channel.name}**, \`${channel.id}\`)`; + return verboseChannelMention(channel); }, messageSummary: (msg: SavedMessage) => { if (!msg) return ""; diff --git a/src/utils.ts b/src/utils.ts index 7dae65a7..dee6b8d9 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -7,6 +7,7 @@ import { Guild, GuildAuditLog, GuildAuditLogEntry, + GuildChannel, Member, MessageContent, TextableChannel, @@ -792,3 +793,15 @@ export function messageSummary(msg: SavedMessage) { return result; } + +export function verboseUserMention(user: User | UnknownUser): string { + return `<@!${user.id}> (**${user.username}#${user.discriminator}**, \`${user.id}\`)`; +} + +export function verboseUserName(user: User | UnknownUser): string { + return `**${user.username}#${user.discriminator}** (\`${user.id}\`)`; +} + +export function verboseChannelMention(channel: GuildChannel): string { + return `<#${channel.id}> (**#${channel.name}**, \`${channel.id}\`)`; +}