diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index cf414e4..181f171 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -23,7 +23,7 @@ jobs: - name: Setup pnpm uses: pnpm/action-setup@v2 with: - version: 9 + version: 10 - name: Install Dependencies run: pnpm install diff --git a/package.json b/package.json index e8c674b..4e6d7d9 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ }, "engines": { "node": "22", - "pnpm": "9" + "pnpm": "10" }, "homepage": "https://github.com/nhcarrigan/mod-bot#readme", "devDependencies": { diff --git a/src/events/client/onReady.ts b/src/events/client/onReady.ts index a1bbc99..7c24852 100644 --- a/src/events/client/onReady.ts +++ b/src/events/client/onReady.ts @@ -3,7 +3,6 @@ import { scheduleJob } from "node-schedule"; import { ExtendedClient } from "../../interfaces/ExtendedClient"; import { maintainSecurity } from "../../modules/maintainSecurity"; import { postBirthdays } from "../../modules/postBirthdays"; -import { Prometheus } from "../../modules/prometheus"; import { registerCommands } from "../../utils/registerCommands"; import { sendDebugMessage } from "../../utils/sendDebugMessage"; @@ -15,8 +14,6 @@ import { sendDebugMessage } from "../../utils/sendDebugMessage"; export const onReady = async (bot: ExtendedClient) => { await sendDebugMessage(bot, `Logged in as ${bot.user?.tag}`); await registerCommands(bot); - bot.analytics = new Prometheus(bot); - await bot.analytics.updateEntitlements(bot); // Daily at 9am PST scheduleJob("birthdays", "0 9 * * *", async () => await postBirthdays(bot)); diff --git a/src/events/guild/onGuildCreate.ts b/src/events/guild/onGuildCreate.ts index d0fa9b8..6db0724 100644 --- a/src/events/guild/onGuildCreate.ts +++ b/src/events/guild/onGuildCreate.ts @@ -15,6 +15,4 @@ export const onGuildCreate = async function ( await bot.env.debugHook.send({ content: `JOINED GUILD: ${guild.name} (${guild.id}) - owned by ${owner?.displayName} (${owner.id})` }); - bot.analytics.updateGuilds(bot); - await bot.analytics.updateEntitlements(bot); }; diff --git a/src/events/guild/onGuildDelete.ts b/src/events/guild/onGuildDelete.ts index b801386..1aff679 100644 --- a/src/events/guild/onGuildDelete.ts +++ b/src/events/guild/onGuildDelete.ts @@ -36,8 +36,6 @@ export const onGuildDelete = async function ( await bot.db.security .deleteMany({ where: { serverId: guild.id } }) .catch(() => null); - bot.analytics.updateGuilds(bot); - await bot.analytics.updateEntitlements(bot); } catch (err) { await errorHandler(bot, "on guild delete", err); } diff --git a/src/events/interaction/onInteraction.ts b/src/events/interaction/onInteraction.ts index 9b88e78..d5c1b1d 100644 --- a/src/events/interaction/onInteraction.ts +++ b/src/events/interaction/onInteraction.ts @@ -35,7 +35,6 @@ export const onInteraction = async ( ); return; } - bot.analytics.commandUsed(); if (interaction.isChatInputCommand()) { handleChatInputCommand(bot, interaction); } diff --git a/src/events/member/onMemberAdd.ts b/src/events/member/onMemberAdd.ts index 40ac9dc..258425a 100644 --- a/src/events/member/onMemberAdd.ts +++ b/src/events/member/onMemberAdd.ts @@ -36,7 +36,6 @@ export const onMemberAdd = async (bot: ExtendedClient, member: GuildMember) => { await channel.send({ content: `${user.tag} (${user.id}) has joined the server. Total Members: ${guild.memberCount}` }); - bot.analytics.updateUsers(bot); } catch (err) { await errorHandler(bot, "on member add", err); } diff --git a/src/events/member/onMemberRemove.ts b/src/events/member/onMemberRemove.ts index a8c9f06..b795cc0 100644 --- a/src/events/member/onMemberRemove.ts +++ b/src/events/member/onMemberRemove.ts @@ -54,7 +54,6 @@ export const onMemberRemove = async ( await channel.send({ content: `${user.tag} (${user.id}) has left the server (joined at ${joinStamp}). Total Members: ${guild.memberCount}` }); - bot.analytics.updateUsers(bot); } catch (err) { await errorHandler(bot, "on member remove", err); } diff --git a/src/interfaces/ExtendedClient.ts b/src/interfaces/ExtendedClient.ts index 600b79b..d232b12 100644 --- a/src/interfaces/ExtendedClient.ts +++ b/src/interfaces/ExtendedClient.ts @@ -4,8 +4,6 @@ import { Client, WebhookClient } from "discord.js"; import { Command } from "./Command"; import { Context } from "./Context"; -import type { Prometheus } from "../modules/prometheus.js"; - export interface ExtendedClient extends Client { env: { token: string; @@ -14,7 +12,6 @@ export interface ExtendedClient extends Client { devMode: boolean; }; db: PrismaClient; - analytics: Prometheus; commands: Command[]; contexts: Context[]; configs: { [serverId: string]: Omit }; diff --git a/src/modules/prometheus.ts b/src/modules/prometheus.ts deleted file mode 100644 index 5ae87cf..0000000 --- a/src/modules/prometheus.ts +++ /dev/null @@ -1,71 +0,0 @@ -import client, { Counter, Gauge } from "prom-client"; -import type { ExtendedClient } from "../interfaces/ExtendedClient"; -import { checkEntitledGuild } from "../utils/checkEntitledGuild"; - -export class Prometheus { - private client = client; - private guilds: Gauge; - private entitled: Gauge; - private commands: Counter; - private users: Gauge; - private errors: Counter; - - constructor(bot: ExtendedClient) { - this.guilds = new Gauge({ - name: "guilds", - help: "The number of guilds the bot is in." - }); - this.entitled = new Gauge({ - name: "entitled", - help: "The number of guilds the bot is in." - }); - this.updateGuilds(bot); - this.commands = new Counter({ - name: "commands", - help: "The number of commands that have been used since last boot." - }); - this.users = new Gauge({ - name: "users", - help: "The number of users the bot knows." - }); - this.users.set( - bot.guilds.cache.reduce( - (members, guild) => members + guild.memberCount, - 0 - ) - ); - this.errors = new Counter({ - name: "errors", - help: "The number of errors handled by the process." - }); - this.client.collectDefaultMetrics(); - } - - public commandUsed() { - this.commands.inc(); - } - - public updateGuilds(bot: ExtendedClient) { - this.guilds.set(bot.guilds.cache.size); - } - - public updateUsers(bot: ExtendedClient) { - this.users.set( - bot.guilds.cache.reduce( - (members, guild) => members + guild.memberCount, - 0 - ) - ); - } - - public async updateEntitlements(bot: ExtendedClient) { - const entitled = bot.guilds.cache.filter( - async (g) => await checkEntitledGuild(bot, g) - ); - this.entitled.set(entitled.size); - } - - public errorHandled() { - this.errors.inc(); - } -} diff --git a/src/temp.ts b/src/temp.ts deleted file mode 100644 index 58964bf..0000000 --- a/src/temp.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { PrismaClient } from "@prisma/client"; -import data from "../export.json"; -import { Client, GatewayIntentBits } from "discord.js"; - -const id = "443134315778539530"; - -(async () => { - const client = new Client({ - intents: [GatewayIntentBits.Guilds, GatewayIntentBits.GuildMembers] - }); - await client.login( - "MTIzNTEyODcxOTgzNjcxMjk3MA.G46Wds.oXp5dpRKqwfwPhMiLzTgmIVEZI-G_wH2y7lFrk" - ); - const guild = client.guilds.cache.get(id); - if (!guild) { - throw new Error("Cannot find Caylus' server."); - } - const members = await guild.members.fetch(); - const existing = data - .filter((d) => members.has(d.userId)) - .map((d) => ({ - userId: d.userId, - serverId: id, - birthday: new Date(d.birthday) - })); - const db = new PrismaClient({ - datasourceUrl: - "mongodb+srv://modbot:6NriYlDECa3e9nCC@nhcarrigan.4jqem.mongodb.net/modbot?retryWrites=true&w=majority" - }); - await db.birthdays.createMany({ data: existing }); - await db.$disconnect(); -})(); diff --git a/src/utils/errorHandler.ts b/src/utils/errorHandler.ts index ae6a50a..e49b6ba 100644 --- a/src/utils/errorHandler.ts +++ b/src/utils/errorHandler.ts @@ -37,6 +37,5 @@ export const errorHandler = async ( username: bot.user?.username ?? "Mod bot" }); } - bot.analytics.errorHandled(); return id; };