Code.py Logo

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.

Ver Exemplo Completo

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.

Ver Exemplo Completo

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.

Ver Wiki Completa

Como Contribuir

A Code.py é open-source e feita pela comunidade brasileira. Junte-se a nós!

  1. Faça um fork do repositório: github.com/LucasDesignerF/code-py
  2. Clone: git clone https://github.com/SEU_USUARIO/code-py.git
  3. Crie uma branch: git checkout -b sua-funcionalidade
  4. Commit: git commit -m "Adiciona funcionalidade X"
  5. Push: git push origin sua-funcionalidade
  6. 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).

Diretrizes de Contribuição

Contato e Comunidade

Entre em contato ou junte-se à nossa comunidade vibrante: