Bot de Telegram para organizar y gestionar PyCamps: carga de proyectos, votación, cronogramas y asignación de magos.
Encontrá documentación más detallada para programadores en https://pyar.github.io/PyCamp_Bot
Para contribuir necesitás tu propio bot de Telegram:
- Hablale a @BotFather en Telegram
- Seguí las instrucciones para crear tu bot
- Guardá el TOKEN que te da (lo vas a necesitar)
python3 -m venv venv
source venv/bin/activate
pip install -e '.[dev]'TOKEN='TU_TOKEN_AQUI' PYCAMP_BOT_MASTER_KEY='TU_CLAVE' python bin/run_bot.py-
Crear el archivo de configuración:
cp .env.example .env
-
Editar
.envcon tus valores:TOKEN=tu_token_aqui PYCAMP_BOT_MASTER_KEY=tu_clave_secreta SENTRY_DATA_SOURCE_NAME=tu_sentry_dsn # Opcional -
Ejecutar:
python bin/run_bot.py
make # Construye la imagen (si no existe) y ejecuta el bot¡Listo! Tu bot está corriendo. Probalo mandándole /start por Telegram.
Ejecutar todos los tests:
pytestEjecutar un test específico:
pytest test/test_wizard.pyCon variables de entorno inline:
TOKEN='TOKEN_TEST' PYCAMP_BOT_MASTER_KEY='KEY_TEST' pytestmake test| Variable | Descripción | Requerida |
|---|---|---|
TOKEN |
Token del bot generado con BotFather | ✅ Sí |
PYCAMP_BOT_MASTER_KEY |
Password para comandos de admin | ✅ Sí |
SENTRY_DATA_SOURCE_NAME |
ID de proyecto de Sentry para monitoreo | ❌ No |
- Configurar las variables de entorno (ver tabla arriba)
- Ejecutar el bot:
python bin/run_bot.py - Verificar que funciona enviándole
/start
| Comando | Descripción |
|---|---|
/su <password> |
Reclamar permisos de admin con la clave de PYCAMP_BOT_MASTER_KEY |
/empezar_pycamp <nombre> |
Crear el PyCamp (pide fecha de inicio y duración) |
/activar_pycamp <nombre> |
Activar un PyCamp específico (si hace falta) |
| Comando | Descripción |
|---|---|
/empezar_carga_proyectos |
Habilitar la carga de proyectos |
/terminar_carga_proyectos |
Cerrar la carga de proyectos |
/empezar_votacion_proyectos |
Activar la votación |
/terminar_votacion_proyectos |
Cerrar la votación |
/cronogramear |
Generar el cronograma (pide días y slots) |
/cambiar_slot <proyecto> <slot> |
Mover un proyecto de horario |
| Comando | Descripción |
|---|---|
/agendar_magx |
Asignar magos automáticamente (9-13 y 14-19hs) |
Nota: Los magos deben registrarse primero con
/ser_magx
| Comando | Descripción |
|---|---|
/cargar_proyecto |
Cargar tu proyecto (si la carga está habilitada) |
/votar |
Votar proyectos de tu interés |
/ver_cronograma |
Ver el cronograma del evento |
| Comando | Descripción |
|---|---|
/ser_magx |
Registrarte como mago |
/ver_magx |
Ver la lista de magos registrados |
/evocar_magx |
Llamar al mago de turno para pedir ayuda |
/ver_agenda_magx [completa] |
Ver la agenda de magos (usa completa para ver todos los turnos) |