UNPKG

mewwme-transcripts

Version:

Private html transcript generator for mewwme discord bot

68 lines (51 loc) 2.5 kB
## 📝 Usage ### Example usage using the built in message fetcher. ```js const discordTranscripts = require('mewwme-transcripts'); // or (if using typescript) import * as discordTranscripts from 'mewwme-transcripts'; const channel = message.channel; // or however you get your TextChannel // Must be awaited const attachment = await discordTranscripts.createTranscript(channel); channel.send({ files: [attachment], }); ``` ### Or if you prefer, you can pass in your own messages. ```js const discordTranscripts = require('mewwme-transcripts'); // or (if using typescript) import * as discordTranscripts from 'mewwme-transcripts'; const messages = someWayToGetMessages(); // Must be Collection<string, Message> or Message[] const channel = someWayToGetChannel(); // Used for ticket name, guild icon, and guild name // Must be awaited const attachment = await discordTranscripts.generateFromMessages(messages, channel); channel.send({ files: [attachment], }); ``` ## ⚙️ Configuration Both methods of generating a transcript allow for an option object as the last parameter. **All configuration options are optional!** ### Built in Message Fetcher ```js const attachment = await discordTranscripts.createTranscript(channel, { limit: -1, // Max amount of messages to fetch. `-1` recursively fetches. returnType: 'attachment', // Valid options: 'buffer' | 'string' | 'attachment' Default: 'attachment' OR use the enum ExportReturnType filename: 'transcript.html', // Only valid with returnType is 'attachment'. Name of attachment. saveImages: false, // Download all images and include the image data in the HTML (allows viewing the image even after it has been deleted) (! WILL INCREASE FILE SIZE !) footerText: "Exported {number} message{s}", // Change text at footer, don't forget to put {number} to show how much messages got exported, and {s} for plural callbacks: { // register custom callbacks for the following: resolveChannel: (channelId: string) => Awaitable<Channel | null>, resolveUser: (userId: string) => Awaitable<User | null>, resolveRole: (roleId: string) => Awaitable<Role | null> }, poweredBy: true, // Whether to include the "Powered by mewwme-transcripts" footer ssr: true // Whether to hydrate the html server-side }); ``` ### Providing your own messages ```js const attachment = await discordTranscripts.generateFromMessages(messages, channel, { // Same as createTranscript, except no limit }); ```