discord-visionario

[![Discord](https://img.shields.io/discord/555474311637499955?label=discord)](https://discord.gg/visionario) [![npm](https://img.shields.io/npm/dw/discord-html-transcripts)](https://www.npmjs.com/package/discord-visionario)

ム Visionários

Discord
npm

Discord Visionários é um módulo Node.js para gerar transcrições HTML com boa aparência. Processa a formatação de markdown do Discord como negrito, itálico, riscado, e muito mais. Formata de maneira agradável os anexos e embeds. Proteção XSS incorporada, impedindo que os usuários insiram tags HTML arbitrárias.

Este módulo pode formatar o seguinte:

  • Markdown com sintaxe do Discord
    • Usa discord-visionario
    • Permite que sintaxes complexas de markdown sejam processadas corretamente
  • Embeds
  • Mensagens do sistema
    • Mensagens de entrada
    • Mensagens fixadas
    • Mensagens de boost
  • Comandos Slash
    • Exibe o nome do comando no mesmo estilo do Discord
  • Botões
  • Reações
  • Anexos
    • Imagens, vídeos, áudios e arquivos genéricos
  • Respostas
  • Menções
  • Tópicos

Este módulo foi projetado para funcionar com discord.js v14/v15 somente. Se você precisa de suporte para v13, faça o downgrade para v2.X.X

Estilos de @MatproDEVV/discord-visionario.
Nos bastidores, este pacote usa React SSR para gerar um site estático.

👋 Suporte

Por favor, não me envie DM solicitando suporte para este pacote, eu não responderei.
Em vez disso, abra um tópico no este servidor.

🖨️ Exemplo de Saída

output

📝 Uso

Exemplo de uso com o fetcher de mensagens embutido.

const discordTranscripts = require('discord-visionario');
// ou (se estiver usando TypeScript) import * as discordTranscripts from 'ム Visionários';

const channel = message.channel; // ou da maneira que você obtém o TextChannel

// Deve ser aguardado
const attachment = await discordTranscripts.createTranscript(channel);

channel.send({
  files: [attachment],
});

Ou, se preferir, você pode passar suas próprias mensagens.

const discordTranscripts = require('discord-visionario');
// ou (se estiver usando TypeScript) import * as discordTranscripts from 'discord-visionario';

const messages = someWayToGetMessages(); // Deve ser Collection ou Message[]
const channel = someWayToGetChannel(); // Usado para nome do ticket, ícone do servidor e nome do servidor

// Deve ser aguardado
const attachment = await discordTranscripts.generateFromMessages(messages, channel);

channel.send({
  files: [attachment],
});

⚙️ Configuração

Ambos os métodos para gerar uma transcrição permitem um objeto de opções como o último parâmetro. Todas as opções de configuração são opcionais!

Fetcher de Mensagens embutido

const attachment = await discordTranscripts.createTranscript(channel, {
    limit: -1, // Quantidade máxima de mensagens a serem buscadas. `-1` busca recursivamente.
    returnType: 'attachment', // Opções válidas: 'buffer' | 'string' | 'attachment' Padrão: 'attachment' OU use o enum ExportReturnType
    filename: 'transcript.html', // Só válido quando returnType é 'attachment'. Nome do anexo.
    saveImages: false, // Baixar todas as imagens e incluir os dados da imagem no HTML (permite visualizar a imagem mesmo após ser excluída) (! AUMENTARÁ O TAMANHO DO ARQUIVO !)
    footerText: "Exportado {number} mensagem{s}", // Alterar texto no rodapé, não se esqueça de colocar {number} para mostrar quantas mensagens foram exportadas, e {s} para plural
    callbacks: {
      // registrar callbacks personalizados para os seguintes:
      resolveChannel: (channelId: string) => Awaitable<Channel | null>,
      resolveUser: (userId: string) => Awaitable<User | null>,
      resolveRole: (roleId: string) => Awaitable<Role | null>
    },
    poweredBy: true, // Se inclui o rodapé "Powered by ム Visionários"
    hydrate: true, // Se hidratar o HTML no lado do servidor
    filter: (message) => true // Filtrar mensagens, ex: (message) => !message.author.bot
});

Fornecendo suas próprias mensagens

const attachment = await discordTranscripts.generateFromMessages(messages, channel, {
  // Mesma coisa que createTranscript, exceto sem limite ou filtro
});

🤝 Gostou do pacote?

Dê uma estrela ⭐