Skip to content

weszzy/hikariBot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

117 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

hikariBot's logo

📚 hikariBot

wakatime

Sumário

Sobre o Projeto

O HikariBot nasceu da necessidade de centralizar e facilitar a gestão de livros e atividades relacionadas a um clube do livro no Discord. Ele visa automatizar tarefas, prover informações relevantes e criar uma experiência interativa para os amantes da leitura.

Funcionalidades Principais

  • Exploração Detalhada da Biblioteca: * Navegue por categorias de livros pré-definidas. * Filtre livros por autor e visualize todas as obras disponíveis de um autor específico.
  • Acesso Fácil a Livros Digitais: * Gere links diretos para download ou leitura de livros armazenados no Google Drive. * Cache de Links: Links gerados são armazenados em cache para otimizar o desempenho e evitar recriações desnecessárias.
  • Interface Intuitiva com Menus Interativos: * Utiliza os componentes de interface do Discord (menus de seleção, botões) para uma navegação simples e amigável.
  • Informações sobre Autores: * Obtenha resumos biográficos e informações sobre autores utilizando a API da Wikipedia.
  • Busca de Versículos Bíblicos: * Encontre rapidamente versículos específicos da Bíblia através de uma API dedicada.
  • Notificações de Eventos: * Notifica automaticamente os membros quando um usuário designado como "Apresentador" (ou líder da discussão) entra em um canal de voz específico.
  • Recomendações Inteligentes: * Receba sugestões de livros baseadas em categorias e palavras-chave preestabelecidas, utilizando a Google Books API. * Inclui um sistema de recomendação automática semanal.
  • Acompanhamento de Leitura e Gamificação: * Registro de Progresso: Permite que os membros marquem seu progresso de leitura em livros específicos. * Ranking de Leitores: Exibe um ranking dos membros que mais leram, incentivando a participação.
  • Gerenciamento Colaborativo de Sugestões: * Adicionar Sugestões: Membros podem sugerir novos livros para a biblioteca do clube. * Listar Sugestões: Visualize todas as sugestões de livros feitas pela comunidade. * Sortear Sugestões: Realize sorteios para escolher o próximo livro a ser lido a partir da lista de sugestões.

Tecnologias Utilizadas

  • Node.js: Ambiente de execução JavaScript no lado do servidor.
  • Discord.js: Biblioteca principal para interação com a API do Discord.
  • Google Drive API: Para acessar e gerenciar arquivos de livros no Google Drive.
  • Google Books API: Para buscar informações de livros e enriquecer as recomendações.
  • Wikipedia API: Para fornecer informações contextuais sobre autores.
  • API REST da Bíblia (Bible API): Para consulta rápida de versículos bíblicos.
  • dotenv: Para gerenciar variáveis de ambiente de forma segura.
  • JSON: Utilizado para armazenamento leve de dados como cache, progresso de leitura e sugestões.

Comandos

O HikariBot responde a comandos de barra (slash commands) no Discord:

  • /biblioteca: Exibe as categorias de livros disponíveis. Permite selecionar uma categoria e, em seguida, um autor para listar seus livros.
  • /recomendacao: Sugere um livro aleatório para leitura, podendo ser filtrado por categorias ou palavras-chave.
  • /autor [nome do autor]: Fornece informações biográficas sobre o autor especificado, obtidas da Wikipedia.
  • /biblia [livro] [capítulo:versículo(s)]: Busca e exibe o versículo ou intervalo de versículos bíblicos especificado.
  • /progresso: Permite registrar e atualizar seu progresso de leitura em um livro.
  • /rank: Exibe o ranking de leitura dos membros do servidor.
  • /addsugestao [nome do livro] [autor (opcional)]: Adiciona uma sugestão de livro à lista colaborativa do servidor.
  • /listarsugestoes: Mostra todas as sugestões de livros feitas pelos membros.
  • /sortearlivros: Sorteia um livro da lista de sugestões para ser o próximo a ser lido.

Detalhes do Desenvolvimento

O desenvolvimento do HikariBot foi focado em modularidade e na utilização eficiente das APIs do Discord e de serviços externos.

  • Arquitetura de Comandos: Utiliza o sistema de comandos de barra (slash commands) do Discord, com cada comando encapsulado em seu próprio módulo dentro da pasta commands/.
  • Manipulação de Eventos: Eventos do Discord como ready, interactionCreate e voiceStateUpdate são gerenciados em módulos dedicados na pasta events/, permitindo uma lógica organizada para diferentes interações e gatilhos.
  • Integração com APIs Externas: O bot consome diversas APIs (Google Drive, Google Books, Wikipedia, Bible API) para fornecer funcionalidades ricas e dinâmicas. O tratamento de respostas e erros dessas APIs é uma parte crucial da lógica.
  • Cache: Para otimizar o desempenho e reduzir o número de chamadas a APIs externas (especialmente Google Drive), um sistema de cache simples baseado em arquivos JSON foi implementado para links compartilháveis e recomendações.
  • Persistência de Dados: Dados como progresso de leitura e sugestões de livros são armazenados em arquivos JSON na pasta database/.
  • Configuração: A configuração principal, como categorias de livros e mapeamentos, é centralizada na pasta config/, facilitando a personalização do bot para diferentes bibliotecas e preferências.

Licença

Este projeto está licenciado sob a Licença MIT. Veja o arquivo LICENSE para mais detalhes.

Contato

G-mail Instagram Discord

About

Bot de Discord feito pra auxiliar um servidor de clube do livro!

Resources

License

Stars

Watchers

Forks

Contributors