Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/pyar/pycamp_bot
Voting system for the PyCamp
https://github.com/pyar/pycamp_bot
Last synced: about 1 month ago
JSON representation
Voting system for the PyCamp
- Host: GitHub
- URL: https://github.com/pyar/pycamp_bot
- Owner: PyAr
- Created: 2018-03-05T21:34:25.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2024-06-23T02:42:14.000Z (6 months ago)
- Last Synced: 2024-06-24T04:45:07.243Z (6 months ago)
- Language: Python
- Size: 3.26 MB
- Stars: 6
- Watchers: 13
- Forks: 24
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Este es el bot del Pycamp
## Documentación del módulo
Puede encontrar una documentación mas detallada para programadores en [https://pyar.github.io/PyCamp_Bot](https://pyar.github.io/PyCamp_Bot)
## Variables de entorno
* TOKEN: Token del bot generado con BotFather.
* PYCAMP_BOT_MASTER_KEY: Password para agregar nuevos admins.## Development
Si queres contribuir en este proyecto lo primero que vas a necesitar es crearte un bot para hacer
las pruebas.Esto lo podes hacer hablandole a @BotFather que es el "Bot padre de todos los bots" de telegram.
Él te a a guiar para que puedas hacer tu propio bot.Una vez creado el bot, deberías tener un TOKEN\_PERSONAL (BotFather te lo da en el mismo proceso de
creación).Despues instala el paquete en modo desarrollo en un virtualenv
~~~bash
virtualenv -p python3 venv
source venv/bin/activate
pip install -e '.[dev]'
~~~y estas listo para trabajar.
`pip install freezegun` para correr los tests.
## Testeo
Para correr el bot ejecutá (desde el virtualenv):
~~~bash
TOKEN='TOKEN_PERSONAL' PYCAMP_BOT_MASTER_KEY='KEY' python bin/run_bot.py
~~~Y listo! Tu bot está corriendo en tu máquina, esperando que alguien le escriba por telegram.
Podés probarlo mandandole un `/start`## ¿Cómo usar el bot en un nuevo pycamp?
Primero es necesario setear las siguientes variables de entorno:
* `TOKEN`: token del bot que se usará durante el pycamp (gestionar desde telegram con BotFather)
* `PYCAMP_BOT_MASTER_KEY`: con alguna password secreta que se va a usar para acceder a comandos de superuserUna vez creadas las variables de entorno, correr el bot con el comando `python bin/run_bot.py`
En este momento ya se puede hablar con el bot. ¿Qué le digo?
* `/start` para chequear que esté andando bien
### Flujo admin
* `/su ` para reclamar permisos de admin, reemplazando `` por la contraseña que hayamos
elegido en la envvar `PYCAMP_BOT_MASTER_KEY`
* `/empezar_pycamp ` inicia el flujo de creación de un pycamp. Lo carga en la db, pide fecha de inicio y duración. Lo deja activo.
* `/activar_pycamp ` activa un pycamp
* `/empezar_carga_proyectos` habilita la carga de los proyectos. En este punto los pycampistas pueden cargar sus proyectos,
enviandole al bot el comando `/cargar_proyecto`
* `/terminar_carga_proyectos` termina carga proyectos
* `/empezar_votacion_proyectos` activa la votacion (a partir de ahora los pycampistas pueden votar con `/votar`)
* `/terminar_votacion_proyectos` termina la votacionPara generar el schedule:
* `/cronogramear` te va a preguntar cuantos dias queres cronogramear y cuantos slots por dia tenes y hacer el cronograma.
* `/cambiar_slot` toma un nombre de proyecto y un slot; y te cambia ese proyecto a ese slot.Para agendar los magos:
1. Todos los candidatos tienen que haberse registrado con `/ser_magx`
2. Tiene que estar creado el schedule de presentaciones de proyectos (`/cronogramear`)* `/agendar_magx` Asigna un mago por hora durante todo el PyCamp.
* De 9 a 13 y de 14 a 19.
* El primer día arranca después del almuerzo (14hs).
* El último día termina al almuerzo (13hs).### Flujo pycampista
* `/cargar_proyecto` carga un proyecto (si está habilitada la carga)
* `/votar` envia opciones para votar (si está habilitada la votacion)
* `/ver_cronograma` te muestra el cronograma!
* `/ser_magx` te registra como mago.
* `/ver_magx` Lista los magos registrados.
* `/evocar_magx` llama al mago de turno para pedirle ayuda.
* `/ver_agenda_magx completa` te muestra la agenda de magos del PyCamp. El parámetro `completa` es opcional, si se omite solo muestra los turnos pendientes.