import { Client, EmbedBuilder, Events, GatewayIntentBits } from "discord.js"; import { db } from "./db"; import { formatSize } from "./lib"; import { StereoFile } from "./types"; const client = new Client({ intents: [GatewayIntentBits.Guilds, GatewayIntentBits.GuildMessages, GatewayIntentBits.MessageContent] }); client.once(Events.ClientReady, (c) => { console.log(c.user.tag); }); client.on(Events.MessageCreate, async (message) => { if (message.author.bot) return; if (client.user && message.mentions.has(client.user)) { let files = await db.all`SELECT * FROM files WHERE owner = ${message.author.id}`; let totalSize = files.reduce((a, b) => a + b.size, 0); const embed = new EmbedBuilder() .setColor(0xff264e) .setAuthor({ name: `${message.author.globalName || "user"} on stereo`, iconURL: message.author.avatarURL({ size: 512 }) || "" }) .setDescription("here's your overview:") .addFields( { name: "Uploads", value: `${files.length} files`, inline: true }, { name: "Uploaded", value: `${formatSize(totalSize)} / 15 GB`, inline: true }, { name: "Plan", value: `Free`, inline: true } ) .setFooter({ text: "powered by stereo" }) .setTimestamp(); await message.reply({ embeds: [embed] }); } }); client.login(process.env.TOKEN).catch((err) => { console.error("Failed to login:", err) process.exit(1) });