discord-v2-transcript
v1.0.0
Published
Discord Ticket Transcript renderer with Components V2 support (container/section/text/divider/media/buttons).
Maintainers
Readme
📄 discord-v2-transcript
A solução definitiva para gerar transcripts HTML modernos do Discord, com suporte exclusivo aos novos Components V2.
Muitas bibliotecas de transcript ficaram paradas no tempo. O discord-v2-transcript foi criado para preencher essa lacuna, renderizando fielmente elementos como Containers, Sections e Text Displays que outras libs simplesmente ignoram.
🔥 Por que usar esta biblioteca?
Diferente de outros pacotes, nós focamos na fidelidade visual e no suporte aos componentes mais recentes do Discord:
- ✅ Components V2 Full Support: Renderiza perfeitamente os Types 17 (Container), 9 (Section), 10 (Text), 14 (Divider), 11 (Media), além de botões e action rows.
- ✅ Alta Performance: Gerado em puro HTML/CSS, sem dependências pesadas no cliente.
- ✅ Totalmente Customizável: Altere cores, fontes, títulos e até a lógica de menções.
- ✅ Pronto para Produção: Ideal para sistemas de tickets, logs de auditoria e arquivamento de canais.
🚀 Começando
Instalação
npm install discord-v2-transcriptRequisitos: Node.js 18 ou superior.
📖 Guia de Uso Detalhado
1. Usando com Discord.js (O jeito mais fácil)
O adapter integrado cuida de todo o trabalho sujo: busca as mensagens, processa anexos e gera o arquivo.
import { createTranscriptFromChannel } from 'discord-v2-transcript/discordjs';
// Dentro de um comando ou evento
const result = await createTranscriptFromChannel(interaction.channel, interaction.user, {
limit: 100, // Quantidade de mensagens a buscar
saveJson: true, // Salva um arquivo .json extra com os dados brutos
outDir: './logs', // Onde os arquivos serão salvos
filterOnlyThisBot: false // Se deve filtrar apenas mensagens deste bot (default: true)
});
console.log(`HTML gerado em: ${result.htmlPath}`);2. Uso Manual (Para maior controle)
Se você já tem os dados das mensagens ou quer usar fora do Discord.js:
import { renderTranscriptHTML } from 'discord-v2-transcript';
const payload = {
serverId: '123456789',
channelName: 'suporte-vip',
userAvatar: 'https://cdn.discordapp.com/...',
messageCount: 1,
messages: [
{
id: '001',
content: 'Olá, como posso ajudar?',
author: {
username: 'Pit',
avatar: '...',
color: '#ff0000',
bot: true
},
timestamp: new Date().toISOString(),
embeds: [],
attachments: [],
components: [] // Aqui você pode passar os componentes V2 brutos do Discord
}
]
};
const html = renderTranscriptHTML(payload, {
title: 'Log de Atendimento',
maxWidth: 800
});🛠️ Customização Avançada
🎨 Temas e Estilização (CSS)
Você pode personalizar o visual usando variáveis CSS ou injetando um estilo completo.
| Variável | Descrição | Valor Padrão |
| :--- | :--- | :--- |
| --bg | Fundo principal da página | #313338 |
| --card | Fundo de cada mensagem | #2b2d31 |
| --text | Cor do texto principal | #dbdee1 |
| --button-bg | Cor de fundo dos botões | #5865f2 |
Exemplo de Tema Claro:
const lightTheme = `
:root {
--bg: #ffffff;
--text: #2e3338;
--card: #f2f3f5;
--border: rgba(0,0,0,0.1);
}
`;
const html = renderTranscriptHTML(payload, { themeCss: lightTheme });⚙️ Opções de Renderização
| Opção | Tipo | Descrição |
| :--- | :--- | :--- |
| title | string | O título que aparece no topo do documento. |
| maxWidth | number | Largura máxima da página (em pixels). |
| panelMaxWidth | number | Largura máxima dos containers de componentes V2. |
| resolveMention | function | Função para converter IDs de menção em texto legível. |
🏗️ Publicação e Distribuição
Além do NPM, você pode encontrar ou publicar esta lib em:
- JSR: Para projetos Deno/TypeScript modernos.
- GitHub: Para contribuir com o código fonte.
- Discord: Em comunidades de desenvolvedores como a do
discord.js.
🤝 Suporte e Contato
Desenvolvido com ❤️ por desenvolvedores para desenvolvedores.
Se você encontrar algum bug, tiver uma sugestão ou precisar de ajuda para implementar em seu bot, não hesite em entrar em contato:
💬 Discord: @invejos0s.
📄 Licença
Este projeto está sob a licença MIT. Veja o arquivo [LICENSE](file:///C:/Users/Pit First/Desktop/Nova pasta/discord-v2-transcript/LICENSE) para mais detalhes.
