|
| 1 | +# LeetCode Daily Challenge Worker |
| 2 | + |
| 3 | +Este es un worker de Cloudflare que se ejecuta diariamente a las 0:10 UTC-0. Su función es obtener el reto diario de LeetCode utilizando la API de GraphQL de LeetCode. Luego, procesa los datos y los envía en formato Markdown a un punto final definido en la variable de entorno `ENDPOINT`. En nuestro caso, este punto final corresponde a un bot de Discord que crea un hilo de discusión donde los usuarios pueden debatir soluciones y enfoques para resolver el reto diario. |
| 4 | + |
| 5 | +## Funcionamiento |
| 6 | + |
| 7 | +1. El worker se activa automáticamente a las 0:10 UTC-0 gracias a un disparador de programación (schedule trigger) en Cloudflare. |
| 8 | +2. Se realiza una llamada a la API de GraphQL de LeetCode para obtener los detalles del reto diario. |
| 9 | +3. Los datos del reto se procesan y se convierten a formato Markdown. |
| 10 | +4. Se envía una solicitud POST a la API definido en la variable de entorno `ENDPOINT` con los datos del reto en formato Markdown. |
| 11 | +5. En nuestro caso, el `ENDPOINT` corresponde a un bot de Discord que crea un hilo de discusión con los detalles del reto. |
| 12 | + |
| 13 | +## Configuración |
| 14 | + |
| 15 | +### Requisitos |
| 16 | + |
| 17 | +Para construir y desplegar este proyecto, necesitarás lo siguiente: |
| 18 | + |
| 19 | +- [Rust](https://rust-lang.org) |
| 20 | +- [wrangler](https://developers.cloudflare.com/workers/wrangler/install-and-update/) |
| 21 | +- [worker-build](https://crates.io/crates/worker-build) |
| 22 | + - [wasm-pack](https://rustwasm.github.io/wasm-pack/) |
| 23 | + |
| 24 | +### Variables de Entorno |
| 25 | + |
| 26 | +- `ENDPOINT`: URL del punto final al que se enviarán los datos del reto diario. |
| 27 | + |
| 28 | +### Pruebas Locales |
| 29 | + |
| 30 | +Para probar el worker localmente, solo necesitas configurar la variable de entorno `ENDPOINT` en el archivo `wrangler.toml`. Esto es necesario solo si quieres usar un punto final diferente al que ya está configurado. |
| 31 | + |
| 32 | +### Despliegue Automático |
| 33 | + |
| 34 | +Este proyecto está configurado para desplegar automáticamente utilizando los flujos de trabajo de GitHub Actions. Para que funcione correctamente, debes configurar los siguientes secretos en GitHub: |
| 35 | + |
| 36 | +- `CLOUDFLARE_ACCOUNT_ID`: ID de tu cuenta de Cloudflare. |
| 37 | +- `CLOUDFLARE_API_TOKEN`: Token de API de Cloudflare. |
| 38 | +- `ENDPOINT`: URL de la API a la que se enviarán los datos del reto diario. |
0 commit comments