Pular para o conteúdo principal

Guia do Pacote Python

O módulo oficial do BotGate para Python (botgate-stats-reporter-py) simplifica a integração de bots Discord com a nossa plataforma. Ele automatiza o envio de estatísticas, monitora votos em tempo real e gerencia o plano do seu bot com facilidade usando discord.py.

📦 Instalação

Abra o terminal no diretório do seu projeto e execute:

pip install botgate-stats-reporter-py

🚀 Como utilizar

A biblioteca foi projetada para ser "configure e esqueça". Ela gerencia automaticamente o intervalo de postagem com base no seu plano (Tier).

Exemplo com discord.py

import discord
from discord.ext import commands
from botgate_reporter import BotGateReporter

class MyBot(commands.Bot):
def __init__(self):
super().__init__(command_prefix="!", intents=discord.Intents.default())

# Inicializa o Reporter
self.reporter = BotGateReporter(
bot_id="SEU_BOT_ID",
api_key="SUA_API_KEY",
enable_webhooks=True, # Ativa o servidor interno para receber votos
lang="pt-BR", # Opcional: "pt-BR" (padrão) ou "en-US"
debug=True # Opcional: True para logs detalhados
)

# Evento disparado sempre que alguém votar no seu bot
@self.reporter.on("vote")
async def on_bot_vote(vote):
print(f"🎁 Recompensa para {vote['username']} por votar!")
# Sua lógica de cargos ou moedas aqui

async def setup_hook(self):
# Inicia o loop automático de estatísticas e heartbeats
self.reporter.start(self)

bot = MyBot()
bot.run("SEU_TOKEN_DISCORD")

⚙️ Configuração

O construtor BotGateReporter aceita as seguintes opções:

PropriedadeTipoPadrãoDescrição
bot_idstringObrigatórioO ID do seu bot no Discord.
api_keystringObrigatórioSua API Key obtida no painel do BotGate.
enable_webhooksbooleanFalseAtiva o servidor HTTP interno para receber votos em tempo real.
langstring"pt-BR"Idioma dos logs e respostas da API (pt-BR ou en-US).
debugbooleanFalseAtiva logs detalhados no console para depuração.

🛠️ Métodos Principais

MétodoDescrição
start(client)Inicia o loop automático de estatísticas e heartbeats.
stop()Interrompe todos os processos em segundo plano.
handle_shard_message(msg)Processa mensagens IPC para emitir eventos em Shards.
get_bot_info()Obtém dados completos do perfil do bot e do plano atual.
get_bot_votes(limit?)Consulta os últimos eleitores e estatísticas de votação.
get_api_usage()Verifica o consumo mensal da sua cota de API.
send_heartbeat()Envia um sinal de vida manual (Exclusivo para o plano Business).
send_stats()Força um envio manual imediato de estatísticas.

⚡ Monitoramento de Sharding

No Python (discord.py), se você estiver usando AutoShardedBot, o reporter detecta automaticamente o Shard Líder (ID 0) para realizar o reporte global, evitando duplicação de dados.

Para repassar votos entre processos (se usar sharding multi-processual), use o método:

# Ao receber uma mensagem IPC/Rede com o voto
reporter.handle_shard_message(message_data)

🧠 Sincronização Inteligente

O botgate-stats-reporter-py é reativo. Se você fizer um upgrade de plano no painel do BotGate, o bot detectará os novos limites na próxima comunicação com o servidor e ajustará o intervalo de postagem automaticamente.

  • Auto-Configuração: Tenta detectar seu IP (Local, Público ou Cloud Run) e configurar o Webhook no painel automaticamente.
  • Hot-Swap: Acelera o intervalo de envio conforme o novo Tier sem precisar reiniciar o bot.
  • Gestão de Heartbeat: O monitoramento de uptime (sinal de vida) é ativado ou desativado em tempo real conforme as permissões do seu Tier.