You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
!lyrics no funciona, y no ha funcionado nunca con la versión de lyricsgenius
que fija requirements.txt. Sale en producción cada vez que alguien lo usa:
quiet era de la serie 2.x. Tampoco existe verbose: la 3.x simplemente no
imprime, así que no hay nada que silenciar — el argumento sobra, no hay que
sustituirlo.
El TypeError se produce al construir el cliente, así que se lleva por delante
toda consulta. El comando responde "Couldn't find lyrics for ...", que hace
pensar en un fallo de búsqueda y no en uno de configuración.
Por qué no se había visto
Hasta el #32, el módulo hacía print(f"[Lyrics] Error: {e}"), sin nivel ni
nombre de logger. Cambiarlo a logging.warning es lo que lo puso a la vista en journalctl. El bug es anterior; lo nuevo es poder verlo.
Arreglo propuesto
Quitar quiet y pasar remove_section_headers=False al constructor, en vez
de asignarlo después.
Salir pronto si no hay GENIUS_TOKEN, en vez de construir un cliente
inservible. config.validate() ya avisa al arrancar.
Un test que construya el cliente de verdad contra la lyricsgenius
instalada. Los tests actuales no tocan este módulo, que es exactamente por lo
que un TypeError en el constructor pudo vivir aquí sin que nadie se enterase.
Cómo probarlo
pytest tests/test_lyrics_api.py
Y en Discord, con GENIUS_TOKEN puesto:
!lyrics Bohemian Rhapsody - Queen -> debe devolver la letra
!lyrics asdkjhaskdjh -> "Couldn't find lyrics", sin traza
!lyrics (con algo sonando) -> usa el título de la pista actual
En journalctl no debe quedar ningún Genius lookup failed.
!lyricsno funciona, y no ha funcionado nunca con la versión de lyricsgeniusque fija
requirements.txt. Sale en producción cada vez que alguien lo usa:La causa
services/lyrics_api.pyconstruye el cliente así:Pero
lyricsgenius==3.12.2no tienequiet. Su constructor acepta:quietera de la serie 2.x. Tampoco existeverbose: la 3.x simplemente noimprime, así que no hay nada que silenciar — el argumento sobra, no hay que
sustituirlo.
El
TypeErrorse produce al construir el cliente, así que se lleva por delantetoda consulta. El comando responde "Couldn't find lyrics for ...", que hace
pensar en un fallo de búsqueda y no en uno de configuración.
Por qué no se había visto
Hasta el #32, el módulo hacía
print(f"[Lyrics] Error: {e}"), sin nivel ninombre de logger. Cambiarlo a
logging.warninges lo que lo puso a la vista enjournalctl. El bug es anterior; lo nuevo es poder verlo.Arreglo propuesto
quiety pasarremove_section_headers=Falseal constructor, en vezde asignarlo después.
timeout, que sí existe. Hoy no se pasa ninguno, así que unaconsulta a Genius puede bloquear un hilo del executor indefinidamente — y un
hilo del executor colgado retrasa el cierre del loop al apagar (relacionado
con lo visto en Un reinicio tras reproducir música agota TimeoutStopSec y dispara una alerta falsa #35).
GENIUS_TOKEN, en vez de construir un clienteinservible.
config.validate()ya avisa al arrancar.instalada. Los tests actuales no tocan este módulo, que es exactamente por lo
que un
TypeErroren el constructor pudo vivir aquí sin que nadie se enterase.Cómo probarlo
Y en Discord, con
GENIUS_TOKENpuesto:En
journalctlno debe quedar ningúnGenius lookup failed.