Skip to content

Commit 19b9d36

Browse files
committed
Merge branch 'dev'
2 parents 840a6f9 + 6085d47 commit 19b9d36

162 files changed

Lines changed: 5614 additions & 2604 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/pylint.yml

Lines changed: 0 additions & 24 deletions
This file was deleted.

.github/workflows/ruff.yml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
name: Ruff
2+
3+
on: [push]
4+
5+
jobs:
6+
ruff:
7+
runs-on: ubuntu-latest
8+
steps:
9+
- uses: actions/checkout@v4
10+
- uses: astral-sh/ruff-action@v3
11+
with:
12+
args: check
13+
src: "."

.github/workflows/tests.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@ jobs:
77
runs-on: ubuntu-latest
88
strategy:
99
matrix:
10-
python-version: ["3.11"]
10+
python-version: ["3.11", "3.12", "3.13"]
1111
steps:
12-
- uses: actions/checkout@v2
12+
- uses: actions/checkout@v4
1313
- name: Configurando versión de Python ${{ matrix.python-version }}
14-
uses: actions/setup-python@v2
14+
uses: actions/setup-python@v5
1515
with:
1616
python-version: ${{ matrix.python-version }}
1717
- name: Instalando Dependencias
@@ -20,4 +20,4 @@ jobs:
2020
python -m pip install -r requirements.txt
2121
- name: Corriendo Tests
2222
run: |
23-
python -m unittest src.tests
23+
python -m unittest tests

.gitignore

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -591,3 +591,12 @@ FodyWeavers.xsd
591591
# End of https://www.toptal.com/developers/gitignore/api/python,visualstudio,visualstudiocode,git,windows
592592

593593
.vscode/
594+
595+
### Cosas Personales ###
596+
597+
# La DB ya no debería subirse
598+
**/*.sqlite3
599+
600+
# Notas personales como TODO
601+
notes.md
602+
todo.md

CHANGELOG.md

Lines changed: 200 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,200 @@
1+
# Changelog
2+
3+
Historial con detalles de cambios entre versiones del asistente.
4+
5+
| | | | | Version |
6+
|:----------------:|:----------------:|:----------------:|:----------------:|:----------------:|
7+
| | | | [1.4.1](#v141) |**[2.0.0](#v200)**|
8+
| | | | |**[1.4.0](#v140)**|
9+
| | | | [1.2.1](#v121) |**[1.3.0](#v130)**|
10+
| | | | |**[1.2.0](#v120)**|
11+
| [1.0.1](#v101) | [1.0.2](#v102) | [1.0.3](#v103) | [1.0.4](#v104) |**[1.1.0](#v110)**|
12+
| | | | |**[1.0.0](#v100)**|
13+
14+
<hr/>
15+
16+
## v2.0.0
17+
18+
* **El bot ahora se llama *"Asistente de Fundamentos"*, ya no *"Lector de Ejercicios"***. Esto es para ser más conforme con futuras características.
19+
* **¡Nuevo logo!** Los _assets_ de versiones anteriores todavía se encuentran bajo el nombre de [v1](./img/logo/v1/).
20+
* Cambiados los estilos de nombre de guías de `1c2024` a `2024C1`.
21+
* **Actualizada la versión de la guía** a la revisión del 7 de Marzo de 2024, bajo la denominación `2024C1`.
22+
- Ediciones en el enunciado del ejercicio **11.2**.
23+
- El enunciado del ejercicio **11.6** fue reemplazado por otro completamente distinto.
24+
- Nuevo ejercicios **11.7** y **11.8**.
25+
- El enunciado del ejercicio **17.11** fue reemplazado por otro diferente.
26+
- Nuevos ejercicios del **17.12** al **17.18**.
27+
* **Actualizadas las dependencias.**
28+
- discord.py (2.2.2 → **2.5.2**)
29+
- python-dotenv **fue eliminada**.
30+
* Remodularizados los módulos `main` y `tests` del proyecto. Ahora están como carpetas aparte en el directorio raíz.
31+
- `main` ahora se llama `asistente`, para ser consistente con la nueva forma de invocar al bot.
32+
* Limpiada toda mención de los "prefijos". Ahora el bot usa exclusivamente _app commands_ con `/`.
33+
* Mejores mensajes de error para los Cogs de comandos.
34+
* **La base de datos ya no se sube.** Ahora se crea sola y es única para cada instancia del bot.
35+
- Hace uso de un _script_ inicial para poblarse sola con las tablas necesarias.
36+
* **Mejoras al Logger:**
37+
- Ahora sigue un patrón _Singleton_, por lo que se puede instanciar en cualquier parte del proyecto sin miedo a guardar el mismo registro varias veces.
38+
- Distintos niveles de logueo de registros para la consola y para el archivo.
39+
- Ahora el asistente se puede ejecutar con los argumentos `-v` o `--verbose` para guardar registros en consola con el nivel `DEBUG`.
40+
- Ahora también guarda registros del _traceback_ de `discord.py`, no sólo los del asistente.
41+
* `/version` fue eliminado, y su funcionalidad quedó incluida en el comando `/info`.
42+
* El _workflow_ para GitHub de PyLint fue cambiado por el de Ruff.
43+
* `/reboot` y `/shutdown` ahora sólo están disponibles para el dueño de la aplicación ~~(yo)~~. Sino es un riesgo de seguridad importante.
44+
* Se agregaron algunos secciones extra en el [README](./README.md).
45+
- Explicación simple de los comandos más comunes.
46+
- Un caso de uso para `/ej`.
47+
* **Remodelado el comando `/ej`:**
48+
- Ahora todo ocurre en mensajes "efímeros" de Discord, con la posibilidad de todavía "imprimir" el mensaje en el canal con un nuevo botón.
49+
- Incluidos algunos fixes para que `/ej` _(así como comandos similares)_ puedan funcionar en canales privados o DMs.
50+
51+
52+
<hr style="height:4px" />
53+
54+
### v1.4.1
55+
56+
* **Actualizadas las dependencias.**
57+
- discord.py (2.1.0 → **2.2.2**)
58+
- python-dotenv (0.2.1 → **1.0.0**)
59+
60+
* **Uso de `typing.Union` en vez de `|`** para un poco retrocompatibilidad.
61+
62+
<hr style="height:2px" />
63+
64+
## v1.4.0
65+
66+
* Arreglados bugs con el menu de `/ej`, en donde el menu de unidades no funcionaba para las unidades `2` y `12`.
67+
* **Actualizada la versión de la guía.** Ahora utiliza la revisión del 6 de Marzo de 2022 bajo el nombre `1c2022`.
68+
- Cambiada *una* palabra del ejercicio **1.6.b)**.
69+
- Expandido el enunciado del ejercicio **7.11**.
70+
- Nuevo ejercicio **7.13**.
71+
* **Comando `/meme` removido.** Cayó en desuso y no era rentable mantener las claves.
72+
* **Comandos `/whatsnew` y `/rps` removidos.**
73+
* **Mejorada la lógica de archivos.** Ahora usan búsqueda recursiva e instancias de la clase `pathlib.Path`, en vez de las funciones de `os.path`.
74+
* **Ahora se usa una DB de SQLite3,** en vez de un módulo de constantes.
75+
76+
<hr style="height:4px" />
77+
78+
## v1.3.0
79+
80+
* Puesto que [discord.py](https://github.com/Rapptz/discord.py) ha continuado su mantenimiento, y las *features* que promete traer son preferidas, **se ha decidido en buena fe volver a usar esta librería.**
81+
82+
* **Agregados los *slash commands*.**
83+
84+
* **Agregado nuevo comando `reboot`.** Ahora se puede reiniciar el bot sin tener que apagarlo manualmente.
85+
86+
<hr style="height:4px" />
87+
88+
### v1.2.1
89+
90+
* **Simplificados algunos imports en las pruebas y en el main.** No deberían tener nombres redundantes.
91+
* **Agregados scripts ejecutables.** Ahora debería ser más intuitivo correr el bot.
92+
93+
<hr style="height:2px" />
94+
95+
## v1.2.0
96+
97+
* **Migración a Pycord.** La librería que se venía usando, [discord.py](https://github.com/Rapptz/discord.py), cesó su mantenimiento, y por lo
98+
tanto el bot migró a usar [pycord](https://github.com/Pycord-Development/pycord), un *fork* de discord.py casi idéntico y más actualizado.
99+
100+
* **Reformados los comandos.** Ahora hace uso de `Cogs` para mejor organización de los mismos.
101+
102+
* **Modularización.** Siguiendo la mejora de solidez técnica descrita arriba, muchas funciones
103+
y clases fueron separadas en sus propios módulos.
104+
105+
* **Algunos Comandos ahora usan `Embeds`.** Esto permite una presentación más prolija.
106+
107+
<hr style="height:4px" />
108+
109+
## v1.1.0
110+
111+
Esta versión introduce una nueva imagen para el bot, manejo de imágenes por
112+
Imgur, para mejor experiencia de memes. También se introducen menús contextuales para `ej` y `guia`.
113+
114+
* **¡Nuevo Logo!** Las referencias se encuentran en la carpeta de [imágenes](img).
115+
116+
* **Hace uso de [`imgur-python`](https://pypi.org/project/imgur-python/)** para manejar imágenes a través del bot de Discord.
117+
118+
* **Nuevo Archivo `cliente_imgur.py`** para guardar la lógica de la
119+
aplicación que representa el cliente de Imgur.
120+
121+
* **Ahora el comando `meme` ya no acepta ids de links.** Sin embargo, ahora
122+
acepta que se le pase el índice de meme si se quiere uno en concreto de la
123+
colección en Imgur.
124+
125+
* **Nuevo parámetro `add` para el comando `meme`**. Con esto, si el mensaje que envía el comando refiere a una imagen, se agrega esta a la colección de memes.
126+
127+
* **Nuevo Archivo `interfaces.py`** en donde guardar las interfaces usadas
128+
en los mensajes del bot.
129+
130+
* **Ahora `guia` tiene un menú contextual.** Permite seleccionar más
131+
intuitivamente las versiones de la guía, y se llama con `guia` sin
132+
parámetros.
133+
134+
* **Similarmente con `ej`,** ahora este tiene no sólo también un menú
135+
selector, si no también hace uso de botones para navegar por los ejercicios.
136+
137+
* **Agregado banco entero de palabras en español para el ahorcado.** Ahora
138+
hay `80946` combinaciones posibles. Unas pocas más.
139+
140+
* **El bot ahora es más** ¿...competitivo?
141+
142+
<hr style="height:4px" />
143+
144+
### v1.0.4
145+
146+
Esta versión tiene más que nada mantenimiento y mejoras internas:
147+
148+
* **Mejorada la forma de registrar eventos.** Ahora hace uso del módulo `logging` para registrar eventos en la ejecución del bot.
149+
150+
* **Nuevo archivo** `lector.log` para guardar dichos registros.
151+
152+
<hr style="height:2px" />
153+
154+
### v1.0.3
155+
156+
* **Agregado una actividad `!info`** en el estado del bot.
157+
158+
* **Agregados nuevos mensajes de error** para excepciones del comando `ej`.
159+
160+
<hr style="height:2px" />
161+
162+
### v1.0.2
163+
164+
* **Mejorado un poco el código.** Ahora el cuerpo del código sigue mejor las convenciones de python.
165+
* **Agregadas** algunas que otras palabras nuevas que pueden tocar en el ahorcado.
166+
167+
<hr style="height:2px" />
168+
169+
### v1.0.1
170+
171+
* **Agregado comando `clear`** para limpiar mensajes del bot.
172+
173+
<hr style="height:4px" />
174+
175+
## v1.0.0
176+
177+
* Ahora el bot proviene de una clase `CustomBot` que sobrecarga a la clase de Discord `commands.Bot`. Esto es para contener información persistente, pero los
178+
comandos siguen siendo definidos mediante decoradores.
179+
180+
* Mejoradas las *type hints* de varias funciones y la documentación en general.
181+
182+
* La estructura del lector de la guía es más flexible y configurable y no depende de valores *hardcodeados* como antes.
183+
184+
* **Nuevo comando `prefix`** con el que cambiar el prefijo del comando. Puede configurarse por separado para cada servidor.
185+
186+
* **Nuevo comando `guia`** con el que configurar la revisión de la guía de ejercicios a utilizar (por defecto actualmente se utiliza la versión `2c2019`).
187+
De nuevo, la configuración de cada servidor es independiente de las otras. Por ahora la única versión disponible es `2c2019`, pero añadido está el soporte para
188+
futuras revisiones de la guía.
189+
190+
* Ahora el comando `info` muestra también la versión de la guía.
191+
192+
* **Aún más** memes. *Muuuchos más*.
193+
194+
* **¡Introducido el juego 'hanged' (ahorcado)!**. Se invoca mediante el nuevo comando `hanged` o su alias `ahorcado`. Hace uso de los nuevos hilos en Discord,
195+
introducidos en la API 2.0.
196+
197+
* El juego de ahorcado tiene su propia clase, en un archivo separado, y los datos de las partidas se mantienen dentro de la clase `CustomBot`. Hace uso de un
198+
archivo `.txt` separado para generar las palabras.
199+
200+
* `meme` ahora soporta también que se le pase el ID del meme, por si se quiere uno en concreto (aunque no funciona si el link no comienza con `https://i.imgur.com`)

0 commit comments

Comments
 (0)