Bem, imagino eu que todos saibam o que é o discord, ou para o que serve ele, mas caso não saibam, o discord é um aplicativo de chat, com focos em chamados “servidores”, que são grupos repartidos em diferentes chat e cargos, que fazem as pessoas terem permissão ou não em determinado chat; Além de chat de voz que podem ter limitações de pessoas ou não, e separa-las em salas de bate papo.
Com essa pequena explicação, esses ditos servidores possuem um atrativo que são bots. os bots no discord geralmente servem ou para moderação ou para entretenimento, seja banir as pessoas automaticamente, apagar uma grande escala de mensagem, ou atribuir cargos automatizados, exibir fotos de perfil e etc.
Mas então, de todas as possibilidades de bot, o que eu fiz? bem, ter uma ideia do que fazer é algo um pouco complicado, até porque suas limitações são um bot de "envia comando, bot responde comando", mas já vi gente criando jogo dentro disso, então pensei comigo mesmo, por que não tentar algo diferente e que ninguém nunca fez? ou que eu pelo menos nunca vi.
Duas coisas que me impediam desse grande trunfo, a primeira sendo o que fazer, e a segunda sendo como fazer, por que não adiantava eu saber um e não ter o outro ou visse versa. O bot precisava de um propósito, ou uma necessidade de existência, existir não só para que eu pudesse aprender, queria que ele funcionasse, e que as pessoas usassem ele mesmo que indiretamente.
Então uma das primeiras ideias foi um modo de colocar as imagens em um canal só para imagens, inicialmente a ideia era ter uma maneira de controlar o fluxo de conversa, mas pensando bem, os moderadores já deveriam ser capaz de fazer esse tipo de coisa, então, por que não colocar algo a mais no canal de texto? tipo, por que não ao invés de diminuir a interatividade no lugar que é feito para colocar imagens, por que não melhorar a experiência de modo passivo?
Eu já havia feito algo assim no passado, algo simples, a ideia é ficar ouvindo aquele chat que o ADM aplicou, então já tinha um objetivo, e agora era o que fazer. Como queria testar e aprender, pensei em usar o básico que eu já sabia dos bots do discord, como cog, banco de dados e demais. Eu pedi pro chatGPT criar essa primeira versão do meu bot, porque eu queria entender o que eu poderia fazer, e como eu poderia fazer aquele tipo de coisa, e acabou que me deu uma ajudinha no banco de dados, já que aconteceu que uma hora eu precisei converter os dados do banco de dados em objetos do discord, então eu tive uma outra ideia!
Sabendo que eu poderia guardar uma lista de id's de algo, como server, chat ou ate mesmo outros usuarios, e depois converter em algo para interação, me surgiu uma segunda ideia, uma criação de um segundo bot, então combinei comigo mesmo, o primeiro bot sendo uma especie de teste com uma I.A, e o segundo bot sendo oficialmente, mas depois que eu acabei o primeiro bot eu fiquei me perguntando se realmente o tanto de redundância que o chat fazia era realmente necessário.
Outro problema também que me encontrei foi fazendo esse tipo de coisa depois de um tempo, por que eu não iria saber o que estava acontecendo, não saberia também atualizar ou dar manutenção, então meus objetivos estavam traçados, criar um bot com I.A para ver se conseguia depois criar um bot do 0 sem auxilio dela.
E depois de criado esse bot faria uma atualização no antigo para ver se conseguiria mexer em um código que eu não fiz, e saberia criar uma funcionalidade que eu já tinha feito antes com I.A só que desta vez sem ajuda.
Então fui de mãos a obras, escolhi Python porque sabia que existia um lugar que eu poderia ter uma luz do que fazer caso a I.A começasse a alucinar, e também sabia que eu iria encontrar mais resposta para errors em python do que javascript usando a biblioteca, apesar de que eu prefiro javascript, precisava aprender um pouco de python, então com a biblioteca sqlalchemy eu criei o banco de dados do meu bot, separando ela em funções de classe para que eu só precisasse passar os dados, e acabou que no final eu percebi que eu praticamente criei uma API que fazia o GET, PUT, POST e por fim o DELETE, e única coisa que o bot fazia era validar os dados como um services, já o discord ficava como as rotas e os comandos slash suas url's.
Passados as informações, meu primeiro bot no final está com as seguintes funcionalidades:

  • Conseguir um histórico de avatar de determinado user: No caso você usa um comando e consegue extrair a foto de perfil da pessoa e salvar uma espécie de print dela, assim vai mostrar uma lista caso a pessoa tenha mudado de foto de perfil.
  • Atribuir cargos aleatoriamente: Se você tiver administrador vai aparecer um comando especial, que você atribuiu um cargo a uma lista de cargo, então todo mundo que entra vai receber uma daqueles cargos aleatórios.
  • Atribuir mensagens de reações a chat específicos: a pessoa consegue colocar uma lista de chat nos servidor para que quando for enviado uma imagem o bot coloque espécies de like, dislike e alguns outros emojis.
  • Enviar imagem aleatória: Ao enviar uma imagem o bot armazena essa imagem no banco dele, e pode aleatoriamente devolver uma imagem aleatória se o user desejar, outra coisa também é que o perfil de quem enviou a imagem fica salvo mostrando que foi ele que registrou aquela imagem, além de mostrar para todos os chats que o bot está registrado, ele envia globalmente essa imagem para diversos servidores. Observação: essa mecânica surgiu porque minha ideia no final do dia seria reutilizar essa mecânica no outro bot que iria enviar espécies de publicações para divulgar o trabalho das pessoas, então assim que eu terminei esse bot, coloquei essa funcionalidade como principal da minha aplicação. A ideia do segundo bot foi simples, um bot que envia mensagem para todo mundo que seguir a pessoa que enviou o post, a ideia era criar uma sub rede social ou de e-mails, no qual quando a pessoa enviar um post, o outro usuário possa seguir a pessoa através do botão sem ao menos estar no mesmo servidor, assim criando uma rede de interesses. Pois se você é artista e segue outro, se a pessoa enviar um post novo, o bot iria notificar que tem um novo post desse artista na sua dm, já que você pediu para que mostrasse esse conteúdo dessa pessoa.

Feito agora, um bot 100% sem código de I.A retornando as vezes para entender o que a I.A tinha feito e modificando para tentar melhorar aquilo, pensei em um projeto que havia abandonado, o jogo de adivinhação de personagens.
O projeto havia sido abandonado por que a maneira que eu refiz ele foi a seguinte, da primeira vez, havia um bot que guarda todos os personagens que poderia aparecer e pelo próprio bot em um server especifico com um cargo especifico você poderia adicionar, mas minha ideia dessa vez foi a seguinte.
Para agilizar a criação de uma nova lista de personagem, e garantir que se meu bot fosse excluído eu não perderia as imagens tão fácil assim, já que antes estava em um bot, e agora a ideia era uma API que retornasse imagens aleatórias, de personagens aleatórios, e com a Api pronta conectado a um front end básico para que meus amigos pudessem cadastrar os personagens eu conectei ao bot e foi um sucesso. Com as requisições funcionando perfeitamente, e o sistema de salvar personagens também rodando melhor do que a primeira vez, eu estava genuinamente orgulhoso do que havia feito.
Dito isso, acho interessante a maneira que podemos criar alguma coisa, a maneira que podemos procurar soluções ou formas que ensinam a gente criar o que tanto sonhamos é interessante, criei esse bot com I.a, um pouco de tutorial de youtube, e muitas pesquisa de erros que eu não entendia o por que estava acontecendo.