blob: 4cdbdb26febf49b64f37218c61fb49ff7cc2df13 [file] [log] [blame]
export const event = "messageDelete";
export async function callback(client, message) {
try {
if (message.author.id === client.user.id) return;
if (
client.noLog.includes(
`${message.guild.id}/${message.channel.id}/${message.id}`
)
)
return;
const {
getAuditLog,
log,
NucleusColors,
entry,
renderUser,
renderDelta,
renderChannel
} = message.channel.client.logger;
const auditLog = await getAuditLog(message.guild, "MEMBER_BAN_ADD");
const audit = auditLog.entries
.filter((entry) => entry.target.id === message.author.id)
.first();
if (audit) {
if (audit.createdAt - 100 < new Date().getTime()) return;
}
message.reference = message.reference || {};
let content = message.cleanContent;
content.replace("`", "\\`");
if (content.length > 256) content = content.substring(0, 253) + "...";
const attachments =
message.attachments.size +
(
message.content.match(
/https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_+.~#?&//=]*)/gi
) ?? []
).length;
let attachmentJump = "";
const config = (await client.database.guilds.read(message.guild.id))
.logging.attachments.saved[message.channel.id + message.id];
if (config) {
attachmentJump = ` [[View attachments]](${config})`;
}
const data = {
meta: {
type: "messageDelete",
displayName: "Message Deleted",
calculateType: "messageDelete",
color: NucleusColors.red,
emoji: "MESSAGE.DELETE",
timestamp: new Date().getTime()
},
separate: {
start: content
? `**Message:**\n\`\`\`${content}\`\`\``
: "**Message:** *Message had no content*"
},
list: {
messageId: entry(message.id, `\`${message.id}\``),
sentBy: entry(message.author.id, renderUser(message.author)),
sentIn: entry(
message.channel.id,
renderChannel(message.channel)
),
deleted: entry(
new Date().getTime(),
renderDelta(new Date().getTime())
),
mentions: message.mentions.users.size,
attachments: entry(attachments, attachments + attachmentJump),
repliedTo: entry(
message.reference.messageId || null,
message.reference.messageId
? `[[Jump to message]](https://discord.com/channels/${message.guild.id}/${message.channel.id}/${message.reference.messageId})`
: "None"
)
},
hidden: {
guild: message.channel.guild.id
}
};
log(data);
} catch (e) {
console.log(e);
}
}