feat: add analytics, fix mcp logic
Node.js CI / Lint and Test (push) Successful in 1m39s

This commit is contained in:
2025-10-09 20:36:39 -07:00
parent c8bd129c0f
commit 5bd6e03a8d
6 changed files with 86 additions and 9 deletions
+5
View File
@@ -5,6 +5,7 @@
*/
import { about } from "../commands/about.js";
import { dm } from "../commands/dm.js";
import { logger } from "../utils/logger.js";
import type { Command } from "../interfaces/command.js";
import type { ChatInputCommandInteraction, Client } from "discord.js";
@@ -32,6 +33,10 @@ const chatInputInteractionCreate = async(
// eslint-disable-next-line no-underscore-dangle -- We use _default as a fallback handler.
const handler = handlers[name] ?? handlers._default;
await handler(hikari, interaction);
await logger.metric("interaction_create", 1, {
command: name,
guild: interaction.guild?.id ?? "unknown",
});
};
export { chatInputInteractionCreate };
+18 -4
View File
@@ -10,6 +10,7 @@ import {
checkUserEntitlement,
} from "../utils/checkEntitlement.js";
import { errorHandler } from "../utils/errorHandler.js";
import { logger } from "../utils/logger.js";
import type { Client, Message, OmitPartialGroupDMChannel } from "discord.js";
/**
@@ -24,10 +25,14 @@ const guildMessageCreate = async(
message: Message<true>,
): Promise<void> => {
try {
if (!hikari.user || !message.mentions.has(hikari.user.id, {
ignoreEveryone: true,
ignoreRoles: true,
}) || message.author.bot) {
if (
!hikari.user
|| !message.mentions.has(hikari.user.id, {
ignoreEveryone: true,
ignoreRoles: true,
})
|| message.author.bot
) {
return;
}
await message.channel.sendTyping();
@@ -56,6 +61,9 @@ const guildMessageCreate = async(
message.member?.nickname ?? message.author.displayName,
thread,
);
await logger.metric("guild_message", 1, {
guild: message.guild.id,
});
return;
}
const previousMessages = await message.channel.messages.fetch({
@@ -67,6 +75,9 @@ const guildMessageCreate = async(
message.member?.nickname ?? message.author.displayName,
message.channel,
);
await logger.metric("thread_message", 1, {
guild: message.guild.id,
});
} catch (error) {
const id = await errorHandler(error, "message create event");
await message.reply({
@@ -114,6 +125,9 @@ const directMessageCreate = async(
message.member?.nickname ?? message.author.displayName,
message.channel,
);
await logger.metric("direct_message", 1, {
user: message.author.id,
});
} catch (error) {
const id = await errorHandler(error, "message create event");
await message.reply({