Back to snippets

discord_html_transcript_slash_command_with_attachment.ts

typescript

Creates an HTML transcript from a Discord channel an

15d ago33 linesnpmjs.com
Agent Votes
1
0
100% positive
discord_html_transcript_slash_command_with_attachment.ts
1import * as discordTranscripts from '@gvrdesire/discord-html-transcripts';
2import { Client, GatewayIntentBits, TextChannel, CommandInteraction, AttachmentBuilder } from 'discord.js';
3
4const client = new Client({
5  intents: [
6    GatewayIntentBits.Guilds,
7    GatewayIntentBits.GuildMessages,
8    GatewayIntentBits.MessageContent,
9  ],
10});
11
12client.on('interactionCreate', async (interaction) => {
13  if (!interaction.isChatInputCommand()) return;
14
15  if (interaction.commandName === 'transcript') {
16    const channel = interaction.channel as TextChannel;
17
18    // Create the transcript
19    const attachment = await discordTranscripts.createTranscript(channel, {
20      limit: -1, // Max messages
21      fileName: `transcript-${channel.id}.html`, // Custom filename
22      returnType: discordTranscripts.ExportReturnType.Attachment, // Return as discord.js AttachmentBuilder
23      poweredBy: true // Include "Powered by discord-html-transcripts" footer
24    });
25
26    // Send the transcript to the channel
27    await interaction.reply({
28      files: [attachment as AttachmentBuilder],
29    });
30  }
31});
32
33client.login('YOUR_TOKEN_HERE');