Skip to content

Tsug07/DisBot_Canella

Repository files navigation

Discord Bot Platform

DisBot Canella

Plataforma modular para gerenciamento de múltiplos bots Discord

Python 3.8+ discord.py License MIT Status Active Platform

Google Sheets Async


Sobre o Projeto

DisBot Canella é uma plataforma modular e escalável para gerenciar múltiplos bots Discord, onde cada bot opera de forma independente com suas próprias configurações, credenciais e arquivos isolados.

Principais Recursos

Recurso Descrição
Isolamento Completo Cada bot possui configurações, credenciais e logs independentes
Integração Google Sheets Conexão nativa com planilhas Google para gerenciamento de dados
Logs Estruturados Sistema de logging robusto com arquivos separados por bot
Backups Automáticos Sistema de backup integrado para dados críticos
Fácil Escalabilidade Adicione novos bots com um único comando

Estrutura do Projeto

DisBot_Canella/
├── Bot_Gerson/                 # Bot principal
│   ├── config/
│   │   ├── .env                # Configurações sensíveis
│   │   ├── .env.example        # Template de configuração
│   │   └── credentials.json    # Credenciais Google
│   ├── data/
│   │   └── estado_empresas.json
│   ├── logs/
│   │   └── bot_logs.log
│   ├── backups/
│   └── main.py
│
├── Bot_[NovoBot]/              # Estrutura para novos bots
│   ├── config/
│   ├── data/
│   ├── logs/
│   ├── backups/
│   └── main.py
│
├── create_bot.py               # Script de criação de bots
├── .gitignore
└── README.md

Instalação

Pré-requisitos

  • Python 3.8 ou superior
  • Conta Discord Developer
  • Credenciais Google Cloud (para integração com Sheets)

Dependências

pip install discord.py python-dotenv gspread google-auth

Início Rápido

1. Clone o repositório

git clone https://github.com/seu-usuario/DisBot_Canella.git
cd DisBot_Canella

2. Configure o bot existente

cp Bot_Gerson/config/.env.example Bot_Gerson/config/.env

Edite o arquivo .env com suas credenciais:

# Discord Bot Token
DISCORD_TOKEN=seu_token_aqui

# Discord Channel ID
DISCORD_CHANNEL_ID=id_do_canal

# Google Sheets
GOOGLE_SHEET_ID=id_da_planilha

# Google Credentials File
GOOGLE_CREDENTIALS_FILE=credentials.json

# Discord General Channel ID
DISCORD_CHANNEL_GENERAL=id_do_canal_geral

3. Execute o bot

python Bot_Gerson/main.py

Criando Novos Bots

Método Automatizado (Recomendado)

python create_bot.py Bot_NomeDoBot

O script cria automaticamente:

  • Estrutura completa de diretórios
  • Arquivos de configuração (.env e .env.example)
  • Template main.py configurado
  • README específico do bot

Método Manual

Clique para expandir

1. Criar estrutura de diretórios

mkdir -p Bot_NomeDoBot/config
mkdir -p Bot_NomeDoBot/data
mkdir -p Bot_NomeDoBot/logs
mkdir -p Bot_NomeDoBot/backups

2. Configurar credenciais

cp Bot_Gerson/config/.env.example Bot_NomeDoBot/config/.env

3. Template base do bot

import discord
import os
from pathlib import Path
from dotenv import load_dotenv
import logging

# === CONFIGURAÇÃO DE CAMINHOS ===
BOT_DIR = Path(__file__).parent.resolve()
CONFIG_DIR = BOT_DIR / "config"
DATA_DIR = BOT_DIR / "data"
LOGS_DIR = BOT_DIR / "logs"
BACKUPS_DIR = BOT_DIR / "backups"

# Cria diretórios se não existirem
for directory in [CONFIG_DIR, DATA_DIR, LOGS_DIR, BACKUPS_DIR]:
    directory.mkdir(parents=True, exist_ok=True)

# Carrega variáveis de ambiente
load_dotenv(dotenv_path=CONFIG_DIR / ".env")

# === CONFIGURAÇÃO DE LOGGING ===
logging.basicConfig(
    level=logging.INFO,
    format='%(asctime)s - %(levelname)s - %(message)s',
    handlers=[
        logging.FileHandler(LOGS_DIR / 'bot_logs.log', encoding='utf-8'),
        logging.StreamHandler()
    ]
)
logger = logging.getLogger(__name__)

# === CONFIGURAÇÕES ===
DISCORD_TOKEN = os.getenv('DISCORD_TOKEN')

# === SEU CÓDIGO AQUI ===

Executando Múltiplos Bots

Execute cada bot em um terminal separado:

Terminal 1:

python Bot_Gerson/main.py

Terminal 2:

python Bot_Vendas/main.py

Segurança

Arquivos Protegidos pelo Git

Os seguintes arquivos são automaticamente ignorados:

Padrão Descrição
Bot_*/config/.env Tokens e credenciais
Bot_*/config/*.json Credenciais Google
Bot_*/data/ Dados persistentes
Bot_*/logs/ Arquivos de log
Bot_*/backups/ Backups automáticos

Importante: Nunca commite arquivos contendo tokens, senhas ou credenciais.


Arquitetura

┌─────────────────────────────────────────────────────────┐
│                    DisBot Canella                       │
├─────────────────────────────────────────────────────────┤
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐     │
│  │  Bot_Gerson │  │  Bot_Vendas │  │  Bot_[...]  │     │
│  │  ─────────  │  │  ─────────  │  │  ─────────  │     │
│  │  config/    │  │  config/    │  │  config/    │     │
│  │  data/      │  │  data/      │  │  data/      │     │
│  │  logs/      │  │  logs/      │  │  logs/      │     │
│  │  backups/   │  │  backups/   │  │  backups/   │     │
│  │  main.py    │  │  main.py    │  │  main.py    │     │
│  └──────┬──────┘  └──────┬──────┘  └──────┬──────┘     │
│         │                │                │             │
│         └────────────────┼────────────────┘             │
│                          │                              │
│                   ┌──────▼──────┐                       │
│                   │   Discord   │                       │
│                   │     API     │                       │
│                   └─────────────┘                       │
└─────────────────────────────────────────────────────────┘

Vantagens

  • Isolamento: Cada bot opera independentemente, sem conflitos
  • Segurança: Credenciais isoladas e protegidas pelo .gitignore
  • Escalabilidade: Adicione quantos bots precisar
  • Organização: Estrutura padronizada e intuitiva
  • Manutenção: Fácil debugging com logs separados

Contribuindo

Contribuições são bem-vindas! Sinta-se à vontade para:

  1. Fazer um fork do projeto
  2. Criar uma branch para sua feature (git checkout -b feature/NovaFeature)
  3. Commit suas mudanças (git commit -m 'Adiciona NovaFeature')
  4. Push para a branch (git push origin feature/NovaFeature)
  5. Abrir um Pull Request

Licença

Este projeto está licenciado sob a Licença MIT - veja o arquivo LICENSE para detalhes.


Autor

Hugo L. Almeida
Desenvolvedor

Feito com 💜 usando Python e Discord.py

Voltar ao topo

About

Projeto que contem os bots do Discord da Canella e Santos

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors