O projeto "Ademir" é um bot criado para melhorar a experiência de comunidades focadas em bem-estar. Ele permite reproduzir músicas, contabilização de XP, criar macros, efetuar ações de moderação em massa e conversar com a API do ChatGPT.
- ✅ Falar com o bot apenas mencionando o mesmo
- ✅ Reprodução/download de músicas/playlists em canal de audio
- ✅ Suporte a links de vídeo do YouTube
- ✅ Suporte a links de musicas do Spotify
- ✅ Suporte a links de albuns do Spotify
- ✅ Suporte a links de playlists públicas do Spotify
- ✅ Suporte a links de playlists públicas do YouTube
- ✅ Suporte a contabilização de eventos participados
- ✅ Suporte a contabilização de bumps efetuados
- ✅ Suporte a contabilização de XP por envio de mensagens
- ✅ Suporte a proteção de flood
- ✅ Suporte a blacklist de padrão de mensagens
- ✅ Suporte a auto banimento de menores de idade por cargo
- ✅ Suporte a contabilização de XP por tempo de call
- ✅ Suporte a contabilização de XP por bump no server
- ✅ Multiplicador de XP ao participar de eventos
- ✅ Multiplicador de XP por canal de texto
- ✅ Importação de informações de level de outro bot (Lurkr)
- ✅ Listar os comandos por módulo com
/help
- ✅ Obter card de XP através do comando
/rank
- ✅ Denunciar um usuário através do comando
/denunciar
- ✅ Visualizar avatar com o comando
/avatar
- ✅ Visualizar banner com o comando
/banner
- ✅ Definir a cor principal do card de xp com
/colour
- ✅ Definir o fundo do card de xp com
/background
- ✅ Sincronizar recompensas de nível com
/syncrolerewards
- ✅ Visualizar ranking com
/leaderboard
- ✅ Visualizar contagem de membros com
/membercount
- ✅ Visualizar evolução de membros com
/membergraph
- ✅ Visualizar o delta diário de membros com
/growthchange
- ✅ Prever quando o server vai ter n membros com
/predict
- ✅ Verificar memória do servidor com
/memory
- ✅ Criar um hash MD5 de um texto com
/md5
- ✅ Criar um GUID com
/guid
- ✅ Denunciar uma mensagem com o menu de contexto
- ✅ Falar com o bot em uma thread com o comando
/thread
- ✅ Reiniciar a sua thread com o Ademir com
/restart-thread
- ✅ Gerar imagens com o comando
/dall-e
- ✅ Gerar texto com o comando
/completar
- ✅ Configurar o Canal de Denúncias: Comando
/config-denuncias
- ✅ Criar macros através do comando
/macro
- ✅ Listar macros: comando
/listar-macros
- ✅ Editar macros: comando
/editar-macro
- ✅ Excluir macro: comando
/excluir-macro
- ✅ Banir: comando
/ban
- ✅ Expulsar: comando
/kick
- ✅ Banir em massa: comando
/massban
- ✅ Expulsar em massa: comando
/masskick
- ✅ Bloquear a chegada de novos membros: comando
/lock-server
- ✅ Desloquear a chegada de novos membros: comando
/unlock-server
- ✅ Habilitar módulo de cargos: comando
/togglerolerewards
- ✅ Importar levels de outro bot (Lurkr): comando
/importlevelinfo
- ✅ Definir XP de um membro: comando
/xp set
- ✅ Adicionar XP a um membro: comando
/xp add
- ✅ Remover XP de um membro: comando
/xp remove
- ✅ Remover uma certa quantidade de mensagens de um canal: comando
/purge
- ✅ Importar histórico de mensagens: comando
/importar-historico-mensagens
- ✅ Configurar cargo de participação ativa: comando
/set-activetalker-role
- ✅ Configurar cargo de convite para eventos: comando
/set-eventinvite-role
- ✅ Define o canal de eventos de voz padrão: comando
/set-voice-event-channel
- ✅ Define o canal de eventos de palco padrão: comando
/set-stage-event-channel
- ✅ Extrair lista de usuarios por atividade no servidor
/usuarios-inativos
- ✅ Configurar cargo extra para falar com o bot: comando
/config-cargo-ademir
- Criar Evento de Voz: Cria um evento de voz no servidor a partir da mensagem (reconhece data/hora)
- Criar Evento Palco: Cria um evento de palco no servidor a partir da mensagem (reconhece data/hora)
- Denunciar: Denuncia uma mensagem para a staff
- Blacklist: Coloca o padrão da mensagem na lista negra (para apagar)
- ✅
/play <link/track/playlist/album/artista>
: Reproduz uma música, playlist, artista ou álbum. - ✅
/skip
: Pula para a próxima música da fila. - ✅
/back
: Pula para a música anterior da fila. - ✅
/replay
: Reinicia a música atual. - ✅
/pause
: Pausa/Retoma a reprodução da música atual. - ✅
/stop
: Interrompe completamente a reprodução de música. - ✅
/remove member <membro>
: Remove as músicas de um membro da playlist. - ✅
/remove index <posicao>
: Remove uma musica da playlist na posição fornecida. - ✅
/remove range <inicio> <fim>
: Remove musicas de playlist no intervalor de inicio e fim. - ✅
/remove last
: Remove a última música da playlist. - ✅
/loop
: Habilita/Desabilita o modo de repetição de faixa. - ✅
/loopqueue
: Habilita/Desabilita o modo de repetição de playlist. - ✅
/queue
: Mostra a lista de reprodução. - ✅
/join
: Puxa o bot para o seu canal de voz. - ✅
/quit
: Remove o bot da chamada de voz. - ✅
/volume <valor>
: Ajusta o volume da música.
Para utilizar todos os recursos desenvolvidos nesse projeto é necessário:
- Criar um aplicativo no Developer Portal do Discord
- Criar um aplicativo no Developer Console do Spotify
- Criar uma conta (paga) no OpenAI e criar uma API Key
- Criar uma instância MongoDB para o Bot guardar os dados de configuração
Para utilizar o bot "Ademir" em seu servidor do Discord, siga as etapas abaixo:
- Clone este repositório em sua máquina local.
- Instale as dependências necessárias executando o comando
pip install -r requirements.txt
. - Defina as seguintes varáveis de ambiente:
SpotifyApiClientId
: Client ID do Aplicativo Spotify.SpotifyApiClientSecret
: Client Secret do Aplicativo SpotifyPremiumGuilds
: IDs dos Servers permitidos para utilizar o ChatGPTAdemirAuth
: Token de autenticação do bot do DiscordMongoServer
: String de conexão do Mongo DBChatGPTKey
: Token de autenticação da conta de API do ChatGPT
- Execute o bot utilizando o comando
python main.py
.
Rode o seguintes comandos para iniciar o Ademir no docker:
Para construir a imagem:
docker build -t ademir .
Para iniciar o container:
docker run -e SpotifyApiClientId=<Client ID do Aplicativo Spotify> \
-e SpotifyApiClientSecret=<Client Secret do Aplicativo Spotify> \
-e PremiumGuilds=<IDs dos Servers permitidos para utilizar o ChatGPT> \
-e AdemirAuth=<Token de autenticação do bot do Discord> \
-e MongoServer=<String de conexão do Mongo DB> \
-e ChatGPTKey=<Token de autenticação da conta de API do ChatGPT> \
ademir
Este projeto está licenciado sob a licença MIT. Consulte o arquivo LICENSE.txt para obter mais informações.
Se você tiver alguma dúvida ou sugestão sobre o projeto "Ademir", sinta-se à vontade para entrar em contato: