Code.py - Bots Discord do Futuro, Feitos no Brasil 🇧🇷
Biblioteca pioneira para 2025, 100% brasileira, com IA, voz avançada, OAuth2 e interações modernas. Crie bots incríveis com simplicidade!
Como Instalar a Code.py
Instalar a Code.py é tão fácil quanto um comando no terminal! Siga os passos abaixo para começar:
pip install code-py
Pré-requisitos:
- Python 3.12.7+: Certifique-se de ter a versão mais recente do Python instalada.
- Dependências principais: aiohttp>=3.11.17, redis>=5.2.1, pydub>=0.25.1, pyopus>=0.3.0.
- Dependências opcionais: python-vlc>=3.0.0, sounddevice>=0.4.0 (para backends VLC e áudio bruto).
Por que é tão fácil? A Code.py usa backends puros em Python (como pydub) para manipulação de áudio, eliminando a necessidade de instalar binários como FFmpeg ou VLC. Isso significa que você pode começar a criar bots imediatamente, sem complicações!
Ambiente Virtual (Recomendado):
# Criar ambiente virtual
python -m venv venv
# Ativar (Linux/Mac)
source venv/bin/activate
# Ativar (Windows)
venv\Scripts\activate
# Instalar Code.py
pip install code-py
Voz Avançada
A Code.py leva a interação por voz a outro nível, com suporte nativo a Text-to-Speech (TTS), Speech-to-Text (STT), e reprodução multimídia sem dependências externas. Crie bots que falam e ouvem como nunca antes!
- TTS com ElevenLabs: Gera fala em português com vozes realistas.
- STT com Whisper: Transcreve áudio capturado em tempo real.
- Reprodução Multimídia: Suporte a backends pydub (padrão), Opus (baixa latência), VLC, e sounddevice.
- Fila de Reprodução: Toque múltiplos áudios em sequência.
- Captura de Áudio: Grave áudio diretamente de canais de voz.
Exemplo: Fazer o Bot Falar
from codepy import Code, Inter, Cmd, Voz, Canal
bot = Code.criar_bot(prefix="!")
@bot.cmd("falar", desc="Faz o bot falar algo", opts=[{"nome": "texto", "desc": "Texto a ser falado", "tipo": "texto"}])
async def falar(inter: Inter, texto: str):
canal = Canal(inter.channel) # Obtém o canal de voz do usuário
voz = Voz(bot, canal, elevenlabs_key="SUA_CHAVE_ELEVENLABS", backend="pydub")
await voz.conectar() # Conecta ao canal de voz
await voz.falar(texto) # Gera e toca a fala
await voz.desconectar() # Desconecta
await inter.resp("Fala enviada com sucesso!")
Code.rodar(bot, "SEU_TOKEN_AQUI")
Resultado no Discord: O bot entra no canal de voz, fala o texto fornecido (ex.: "Olá, mundo!") com uma voz realista em português, e sai do canal.
Integração com IA
Com a Code.py, você pode integrar IA generativa para criar bots inteligentes. Use o Grok (xAI) para gerar respostas ou personalize com outras APIs.
- Grok (xAI): Gera texto para respostas dinâmicas.
- Extensibilidade: Conecte-se a APIs como ElevenLabs e Whisper.
- Análise de Sentimentos: Planejado para versões futuras.
Exemplo: Responder com IA
from codepy import Code, Inter, Cmd, IA
bot = Code.criar_bot(prefix="!")
@bot.cmd("perguntar", desc="Faz uma pergunta à IA", opts=[{"nome": "pergunta", "desc": "Sua pergunta", "tipo": "texto"}])
async def perguntar(inter: Inter, pergunta: str):
ia = IA(api_key="SUA_CHAVE_XAI")
resposta = await ia.gerar_texto(pergunta, modelo="grok-3")
await inter.resp(f"**Pergunta:** {pergunta}\n**Resposta:** {resposta}")
Code.rodar(bot, "SEU_TOKEN_AQUI")
Resultado no Discord: O usuário digita `/perguntar Qual é o futuro da IA?`, e o bot responde com uma resposta gerada pelo Grok, formatada em Markdown.
OAuth2 Nativo
Autentique usuários com facilidade usando o OAuth2 do Discord. A Code.py simplifica a geração de URLs de autorização e troca de tokens.
- URLs de Autorização: Gere links para autenticação.
- Troca de Tokens: Obtenha tokens de acesso automaticamente.
Exemplo: Autenticação OAuth2
from codepy import Code, Inter, Cmd, OAuth
bot = Code.criar_bot(prefix="!")
@bot.cmd("login", desc="Gera um link de login", opts=[])
async def login(inter: Inter):
oauth = OAuth(client_id="SEU_CLIENT_ID", client_secret="SEU_CLIENT_SECRET", redirect_uri="SEU_REDIRECT_URI")
url = await oauth.get_auth_url(scopes=["identify", "guilds"])
await inter.resp(f"Faça login aqui: {url}")
Code.rodar(bot, "SEU_TOKEN_AQUI")
Resultado no Discord: O usuário recebe um link clicável para autenticar via OAuth2, que redireciona para o Discord.
Comandos Modernos
Crie comandos interativos com suporte a slash commands, contextuais, e autocomplete dinâmico. A sincronização incremental otimiza o registro de comandos.
- Slash Commands: Comandos modernos com opções.
- Autocomplete: Sugestões dinâmicas para inputs.
- Sincronização Incremental: Registra apenas comandos novos.
Exemplo: Comando com Autocomplete
from codepy import Code, Inter, Cmd, InterManager
bot = Code.criar_bot(prefix="!")
manager = InterManager()
@manager.autocomplete("buscar", "termo")
async def autocomplete_buscar(inter: Inter, termo: str):
sugestoes = [
{"nome": "Python", "valor": "python"},
{"nome": "Discord", "valor": "discord"},
{"nome": "IA", "valor": "ia"}
]
return [s for s in sugestoes if termo.lower() in s["nome"].lower()]
@bot.cmd("buscar", desc="Busca algo", opts=[{"nome": "termo", "desc": "Termo a buscar", "tipo": "texto", "auto": True}])
async def buscar(inter: Inter, termo: str):
await inter.resp(f"Você buscou: {termo}")
Code.rodar(bot, "SEU_TOKEN_AQUI")
Resultado no Discord: O usuário digita `/buscar`, e o campo "termo" sugere "Python", "Discord", ou "IA" enquanto digita.
Escalabilidade e Performance
A Code.py foi projetada para bots de grande escala, com recursos avançados de cache, sharding, e monitoramento.
- Cache com Redis: Armazenamento rápido de dados com TTL.
- Sharding Automático: Suporte a servidores grandes.
- Métricas: Monitore latência, interações, e erros.
Exemplo: Configurar Cache com Redis
from codepy import Code
bot = Code.criar_bot(prefix="!", cache_conf={"redis_url": "redis://localhost:6379"})
Code.rodar(bot, "SEU_TOKEN_AQUI")
Resultado: O bot usa Redis para cache, reduzindo o tempo de resposta em servidores grandes.
Exemplos Práticos
Aqui está um exemplo completo de um bot com comandos, voz, e interações:
from codepy import Code, Inter, Embed, Cmd, Voz, Canal
bot = Code.criar_bot(prefix="!")
# Comando com embed e botão
@bot.cmd("ola", desc="Diz olá", opts=[{"nome": "user", "desc": "Usuário a saudar", "tipo": "user"}])
async def ola(inter: Inter, user: User):
embed = Embed(tit="Olá!", desc=f"Saudações, {user.nome}! 😄", cor=0x00FF00)
await inter.resp(embed=embed, btns=[{"txt": "Clicar Aqui", "id": "btn_ola"}])
@bot.btn("btn_ola")
async def btn_ola(inter: Inter):
await inter.resp("Você clicou no botão! 🎉", efemera=True)
# Comando para tocar áudio
@bot.cmd("play", desc="Toca um áudio", opts=[{"nome": "url", "desc": "URL ou caminho do áudio", "tipo": "texto"}])
async def play(inter: Inter, url: str):
canal = Canal(inter.channel)
voz = Voz(bot, canal, backend="opus")
await voz.conectar()
await voz.play_audio(url)
await voz.desconectar()
await inter.resp("Áudio tocado com sucesso!")
Code.rodar(bot, "SEU_TOKEN_AQUI")
Resultado no Discord:
- `/ola @Usuário`: Mostra um embed verde com um botão clicável.
- `/play audio.mp3`: Toca o áudio no canal de voz usando o backend Opus.
Documentação Completa
A Code.py é organizada em classes intuitivas, com métodos claros e abreviações em português. Aqui está um resumo:
Classe Code
Classe estática para criar e gerenciar bots.
-
Code.criar_bot(prefix="!", cache_conf=None, shards=1): Cria um bot com configurações personalizadas. -
Code.rodar(bot, token): Inicia o bot com o token do Discord.
Classe Bot
Gerencia comandos e interações.
-
@bot.cmd(nome, desc, opts): Registra um comando. -
@bot.btn(id): Registra um callback para botões.
Classe Voz
Manipula voz e multimídia.
-
voz.falar(texto): Gera e toca fala com ElevenLabs. -
voz.ouvir(duracao): Captura e transcreve áudio com Whisper. -
voz.play_audio(source): Toca áudio com backend configurável.
Como Contribuir
A Code.py é open-source e feita pela comunidade brasileira. Junte-se a nós!
- Faça um fork do repositório: github.com/LucasDesignerF/code-py
- Clone:
git clone https://github.com/SEU_USUARIO/code-py.git - Crie uma branch:
git checkout -b sua-funcionalidade - Commit:
git commit -m "Adiciona funcionalidade X" - Push:
git push origin sua-funcionalidade - Abra um Pull Request no GitHub.
Dicas:
- Siga o estilo PEP 8.
- Adicione testes em
tests/. - Use abreviações em português (ex.:
cmd,resp).
Contato e Comunidade
Entre em contato ou junte-se à nossa comunidade vibrante:
- Autor: Lucas Dev - RedeBots
- Email: ofc.rede@gmail.com
- GitHub: LucasDesignerF
- Discord: Code Projects by RedeBots
- PyPI: codeco2024