Automação
Shiva Toolbox
Bot modular para Discord com cargos automáticos, alertas de lives, cargos por reação e configuração por servidor.
Explore o projeto
O repositório é o ponto de entrada para conhecer os módulos, os comandos disponíveis e a configuração local. A documentação também apresenta as etapas de banco de dados e execução do bot com Docker.
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
- 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.
- 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.
- 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.
- 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.