Skip to content

petengcomp/petbot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

56 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Introdução

Um bot de Discord feito no Node.js para auxiliar as reuniões remotas do PET Engenharia de Computação da Ufes.

📒 Índice

🔰 Sobre

O bot foi elaborado seguindo a estrutura das reuniões do grupo PET EngComp. Isso significa, por exemplo, que os pontos de pauta permanecem de uma reunião para outra.
Sua construção foi um primeiro contato com a biblioteca Discord.js, portanto podem haver alguns bugs. Caso isso ocorra (como spam em algum canal), é sugerido que o bot seja removido do servidor do Discord e o bug seja reportado à equipe de desenvolvimento.
Não utilize este código como referência para o desenvolvimento de um bot para Discord. Em vez disso referencie Desenvolvimento!

📣 Comandos

!help - Envia os comandos do bot, com explicações sobre cada um.
!bday <DD/MM/AAAA> - Salva a data de nascimento escrita como o aniversário de quem mandou a mensagem. Quando for aniversário da pessoa, o bot enviará uma mensagem de feliz aniversário com a idade (por isso o ano deve ser passado também).
!vote <título> - Inicia uma votação com as opções "Sim", "Não" e "Abstensão". A votação durará uma quantidade de segundos pré determinada.
!poll <título>, <número de votos por pessoa>, <opção 1>, <opção 2>, ... - Inicia uma votação com as opções passadas (máximo de 10 opções). Também é possível definir em quantas opções cada um pode votar em (número de votos por pessoa). A votação durará uma quantidade de segundos pré determinada.
!settings - Configura aspectos do bot no servidor. Deve ser usado como alguma das opções abaixo:
      !settings maxtime <tempo em segundos> - Altera o tempo máximo para os 2 tipos de votação. O limite é 600 segundos.
      !settings maxmsg <número de mensagens> - Altera o máximo de mensagens enviadas durante uma reunião até que a pauta seja reenviada pelo bot, a fim de que ela não fique perdida no canal de texto. O padrão é 10 mensagens.

!meeting - Inicia a reunião. Para usar o comando, a pessoa deve estar em um canal de voz. A pauta salva será enviada (e fixada no canal) assim como os encaminhamentos salvos. Os pontos de pauta poderão ser navegados usando as reações na mensagem (🔼, 🔽) e ❌ finaliza a reunião.
      !meeting <nome de um cargo do servidor> - Inicia a reunião como o comando anterior, mas desta vez verificando se todos com o cargo estão no canal de voz. O cargo não pode conter espaços.

👉🏼 Dica: Dê um cargo com o nome Petiano a todos e use esse comando para verificar se todos estão presentes!

!reminder <encaminhamento1> ; <encaminhamento2> ; ... - Adiciona encaminhamentos para serem verificados na próxima reunião. Toda vez que esse comando é usado os encaminhamentos são sobrepostos, então para alterar algo basta usá-lo novamente. Lembre-se de separá-los usado ponto-e-vírgula (diferente dos comandos anteriores).

👉🏼 Dica: Após a revisão da ata, peça para que a escreveu apenas copiar e colar os encaminhamentos no comando, colocando ponto-e-vírgula no final de cada ponto.

!mktopic <topico 1>, <topico 2>, ... - Adiciona os tópicos na pauta. Todos os pontos são substituidos quando esse comando é usado.

!mksubtopic <topico 1>, <subtopico 1.1>, <subtopico 1.2>...; <topico 2>, <subtopico 2.1>, <subtopico 2.2>,... - Adiciona os subtópicos no tópico especificado da pauta (case sensitive).

!rmtopic <topico 1>, <topico 2>, ... - Remove os tópicos citados da pauta.
      !rmtopic * - Remove todos os pontos, esvaziando a pauta.

!rmsubtopic <topico 1>, <subtopico 1.1>, <subtopico 1.2>, ...; <topico 2>, <subtopico 2.1>, <subtopico 2.2>, ... - Remove os subtópicos no tópico especificado da pauta (case insensitive).       !rmsubtopic <topico 1>, *; <topico 2>, * - Remove todos subtópicos de determinado tópico.       !rmtopic * Remove todos os subtópicos, deixando os tópicos vazios.

⚡ Uso do código

ATENÇÃO: Este projeto não pode ser executado localmente, por enquanto. Há variáveis de ambiente no arquivo .env necessárias para seu funcionamento correto e que não devem ser adicionadas ao git. Com a formalização do ambiente de execução do bot e criação de contas adequadas, elas ficarão disponíveis.

🔌 Instalação

  1. Clone o repositório como preferir
git clone [email protected]:petengcomp/petbot.git

ou

git clone https://github.com/petengcomp/petbot.git
  1. Acesse a pasta e instale as dependências necessárias
cd petbot
npm i

📦 Ativação

  1. Primeiro crie o banco de dados usando
node .\data\dbInit.js
  1. Ative o bot
  • Indefinidamente
node index.js
  • Em ambiente de desenvolvimento
npm run dev

🔧 Desenvolvimento

📓 Pré-Requisitos

É necessário conhecimento de javascript para trabalhar neste bot. O conhecimento específico sobre o módulo Discord.js pode ser encontrado em sua documentação e um guia geral e detalhado sobre a criação de bots pode ser achado aqui.

🔩 Ambiente de Desenvolvimento

É apenas necessário ter Node.js instalado. O ambiente inicial é bem explicado no guia.

🔥 Contribuição

Para participar da produção do bot.

  1. Reportar a bug
    Se você encontrou um bug durante a utilização do bot, faça uma issue aqui, coloque "Bug" em Labels.

  2. Sugerir uma adição
    Se você sugerir uma nova função para o bot, faça uma issue aqui, coloque "Enhancement" em Labels.

🌟 Créditos

Produzido pelo PET EngComp Ufes

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •