Bot Pomodoro para Discord: 25 minutos de foco, pausas de 5 minutos e uma pausa longa de 10 minutos a cada quatro rodadas.
- Python 3.10 ou mais recente
- FFmpeg disponível no
PATH - Uma aplicação/bot criada no Discord Developer Portal
- Permissões para ler e enviar mensagens e para conectar e falar em canais de voz
-
Crie e ative um ambiente virtual:
python -m venv .venv # Windows (PowerShell) .venv\Scripts\Activate.ps1 # Linux/macOS source .venv/bin/activate
-
Instale as dependências:
python -m pip install -r requirements.txt
-
Copie
.env.examplepara.enve informe o token do bot:BOT_TOKEN=seu_token_aqui
-
No Developer Portal, em Bot > Privileged Gateway Intents, habilite Message Content Intent. Ele é necessário porque o FocoBot preserva os comandos tradicionais com prefixo
!.Em Installation, mantenha também o escopo
applications.commandspara que os comandos de barra sejam registrados. -
Inicie o bot a partir da raiz do projeto:
python -m FocoBot
/comecar,!começar,!comecarou!foco: inicia os ciclos no canal de voz atual!parar: interrompe o ciclo sem zerar as rodadas!encerrar: interrompe o ciclo e zera as rodadas!pausar: congela a etapa e preserva o tempo restante!retomar: continua uma etapa pausada!pular: avança para a próxima etapa do ciclo!tempo: mostra etapa, estado, tempo restante e tempo decorrido!configuracao: mostra os tempos configurados no servidor!configurar 25 5 10 4: altera foco, pausa curta, pausa longa e ciclos!ajuda: lista os comandos disponíveis
Todos os comandos canônicos acima também estão disponíveis com /. Na primeira
execução após uma atualização, o Discord pode levar alguns minutos para exibir
os comandos globais de barra.
Durante cada etapa, o FocoBot mantém uma mensagem animada com indicador de atividade, barra de progresso, tempo restante e decorrido. A mensagem é editada a cada cinco segundos para acompanhar o cronômetro sem poluir o canal.
Os tempos são configurados separadamente por servidor e permanecem ativos até o bot ser reiniciado. Apenas membros com Gerenciar Servidor podem alterá-los.
Cada servidor possui uma sessão independente, então o FocoBot pode atender vários servidores e canais de voz simultaneamente. Dentro do mesmo servidor, o Discord permite apenas uma conexão de voz do bot por vez.
Execute os testes com:
python -m pip install -r requirements-dev.txt
python -m pytest
ruff check .O código foi migrado da API 1.7 do discord.py para a API assíncrona 2.x. Os
comandos antigos foram mantidos, portanto o rollback consiste em restaurar a
versão anterior do código e do requirements.txt; não há migração de dados.
