Carregando o site de Mateus Neiva…
Pular para o conteúdo

Automação

Shiva Toolbox

Bot modular para Discord com cargos automáticos, alertas de lives, cargos por reação e configuração por servidor.

Tecnologias

TypeScript mantém os contratos entre comandos, módulos e configuração. Discord.js oferece a integração com o Discord, enquanto Prisma organiza o acesso ao PostgreSQL. A estrutura de pacotes compartilhados e a execução com Docker dão suporte ao desenvolvimento e à operação dos módulos.

  • TypeScript
  • Discord.js
  • Prisma
  • PostgreSQL

Sobre o projeto

Shiva Toolbox reúne automações para comunidades no Discord em um bot modular escrito em TypeScript. O projeto cobre tarefas recorrentes de um servidor, como atribuição de cargos, mensagens de entrada e saída e notificações de transmissões. Cada comunidade pode configurar os recursos por meio de comandos, incluindo a escolha do idioma usado pelo bot.

A configuração é organizada por servidor e persistida em PostgreSQL. Isso conecta os comandos da interface do Discord aos módulos que executam cada tarefa, sem tratar todas as comunidades como uma única configuração global. O projeto também inclui uma estrutura de execução com Docker e migrações de banco, aproximando o desenvolvimento local da operação do bot.

O que ele faz

  1. 01

    Cargos automáticos e cargos atribuídos por reação. Os módulos oferecem maneiras diferentes de organizar a participação dos membros e associar interações a cargos dentro do servidor.

  2. 02

    Mensagens de entrada e saída configuráveis por servidor. O módulo de alertas de membros complementa a organização da comunidade com notificações relacionadas à chegada e à saída de participantes.

  3. 03

    Alertas de transmissões da Twitch e do YouTube. Os comandos dedicados conectam a configuração dessas plataformas às notificações usadas pela comunidade no Discord.

  4. 04

    Comandos de idioma e status, com configuração persistida via Prisma e PostgreSQL. O idioma é definido por servidor, e os comandos de status ajudam a consultar a execução do bot.

Como foi construído

A aplicação do bot usa discord.js para lidar com comandos e eventos. Pacotes separados concentram os contratos compartilhados e a camada de dados, com Prisma e PostgreSQL. Os módulos ficam associados aos seus casos de uso, como cargos automáticos, alertas de membros, transmissões e cargos por reação.

A integração com Twitch e YouTube utiliza as configurações dessas plataformas para habilitar os alertas. No ambiente de execução, Docker Compose organiza o banco e o bot, e as migrações são aplicadas antes da inicialização. O processo também contempla o encerramento do cliente Discord e das conexões com o banco ao receber os sinais de parada.