Discord bot que avisa quando vai ter contest no Codeforces, com reaction roles por divisão.
- Notificação automática: a cada 10 minutos o bot consulta a API do Codeforces e publica os próximos contests no canal configurado.
- Reaction roles por divisão: membros reagem às reações para escolher de quais divisões querem receber alertas, e o bot cria os cargos automaticamente.
- 🔵
Div 1/2 - 🟢
Div 3 - 🟡
Div 4
- 🔵
- Comando
/listdivs: lista os próximos contests organizados por divisão.
| Comando | Perfil | Descrição |
|---|---|---|
/setchannel #canal |
Administrador | Define o canal onde os alertas serão enviados. |
/reactionrole |
Administrador | Cria/garante os cargos e publica a mensagem de reaction roles. |
/listdivs |
Todos | Lista os próximos contests por divisão. |
- Acesse o Developer Portal e crie uma aplicação.
- Em Bot, gere o token e copie.
- Em OAuth2 → URL Generator, marque
bot+ escopos de aplicação e selecione estas permissões:Create ExpressionsSend MessagesEmbed LinksAdd ReactionsManage Roles
- Use a URL gerada para adicionar o bot ao seu servidor.
cp .env.example .env
# edite o .env e cole o tokenOu exporte direto na sessão:
export DISCORD_TOKEN="seu-token-aqui"Requer Python 3.10+.
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python main.pyO contêiner de dados (canais, contests enviados e mensagens de reação) é persistido em arquivos .json na mesma pasta.
pip install -r requirements-dev.txt
ruff check .
ruff format --check .
pytestA classificação de divisões, filtragem de contests e formatação das mensagens ficam no módulo puro contests.py, testado em tests/.
Distribuído sob a licença MIT.