Official BotGate module for reporting Discord bot stats automatically
Project description
@botgate/botgate-stats-reporter-py
O módulo oficial do BotGate para simplificar a integração de bots Discord (Python) com a nossa plataforma. Automatize o envio de estatísticas, monitore votos em tempo real e gerencie o plano do seu bot com facilidade usando discord.py.
📦 Instalação
pip install botgate-stats-reporter-py
🚀 Como usar
A biblioteca foi projetada para ser "configure e esqueça". Ela gerencia automaticamente o intervalo de postagem com base no seu plano (Tier).
Integração Simples (com Votos em Tempo Real)
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:
| Propriedade | Tipo | Padrão | Descrição |
|---|---|---|---|
bot_id |
string |
Obrigatório | O ID do seu bot no Discord. |
api_key |
string |
Obrigatório | Sua API Key obtida no painel do BotGate. |
enable_webhooks |
boolean |
False |
Ativa o servidor HTTP interno para receber votos em tempo real. |
lang |
string |
"pt-BR" |
Idioma dos logs e respostas da API (pt-BR ou en-US). |
debug |
boolean |
False |
Ativa logs detalhados no console para depuração. |
🛠️ Métodos Principais
| Método | Descriçã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.
- Dual-Webhook: Alertas de erro continuam indo para o seu Discord, enquanto os dados de voto vão direto para o código do bot.
- Hot-Swap: Acelera o intervalo de envio conforme o novo Tier sem precisar reiniciar o bot.
🔗 Links Úteis
📄 Licença
Distribuído sob a licença MIT. Veja LICENSE para mais informações.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file botgate_stats_reporter_py-1.0.5.tar.gz.
File metadata
- Download URL: botgate_stats_reporter_py-1.0.5.tar.gz
- Upload date:
- Size: 9.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5617ecddee1ed64516a44612b02a6c1a472fbb59d3783d6ba1e6921bfeceda53
|
|
| MD5 |
808d50c58becad31ab1e1be220e62996
|
|
| BLAKE2b-256 |
82211e8cf97e3e996616bae88e42b32e13ffe59e3dd5aa0690db1901610b25e0
|
File details
Details for the file botgate_stats_reporter_py-1.0.5-py3-none-any.whl.
File metadata
- Download URL: botgate_stats_reporter_py-1.0.5-py3-none-any.whl
- Upload date:
- Size: 9.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
892e806cf3bbb7f5a91339b3dbb5129ce0144738c56898567e8606bf316c81ea
|
|
| MD5 |
7cb01a14844f47eef237b5301e9cebd6
|
|
| BLAKE2b-256 |
dfb6e0c431e7aba207a52e43dd6d8b17ba9a69f2ad80f02ad1cb66b307a012be
|