Skip to content
pedrograngeiroPublic

About

The FocoBot is a project created to be a discord bot pomodoro, the idea was to be simple, weightless and functional

Topics

Resources

Stars

4 stars

Watchers

1 watching

Forks

Repository files navigation

FocoBot

FocoBot

Bot Pomodoro para Discord: 25 minutos de foco, pausas de 5 minutos e uma pausa longa de 10 minutos a cada quatro rodadas.

Requisitos

  • 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

Configuração

  1. Crie e ative um ambiente virtual:

    python -m venv .venv
    # Windows (PowerShell)
    .venv\Scripts\Activate.ps1
    # Linux/macOS
    source .venv/bin/activate
  2. Instale as dependências:

    python -m pip install -r requirements.txt
  3. Copie .env.example para .env e informe o token do bot:

    BOT_TOKEN=seu_token_aqui
  4. 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.commands para que os comandos de barra sejam registrados.

  5. Inicie o bot a partir da raiz do projeto:

    python -m FocoBot

Comandos

  • /comecar, !começar, !comecar ou !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.

Desenvolvimento

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.

About

The FocoBot is a project created to be a discord bot pomodoro, the idea was to be simple, weightless and functional

Topics

Resources

Stars

4 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages